// File: /workspace/github_cpp_makefile_star2_O2/auton1[P]viterbi/parameters.cpp
// Function: parameters::read_parameters()
void parameters::read_parameters()
{
	unsigned int i=1;
	string in_str;
	while (i<argv.size())
	{
		in_str = argv[i];
		if (in_str == "--vcf") // VCF file to process
		{
			vcf_format.push_back( true );
			vcf_compressed.push_back( false );
			if (!stream_in)
			{
				vcf_filenames.push_back(get_arg(i+1));
				i++;
			}
		}
		else if (in_str == "--bcf") // BCF file to process
		{
			vcf_format.push_back( false );
			vcf_compressed.push_back( false );
			if (!stream_in)
			{
				vcf_filenames.push_back(get_arg(i+1));
				i++;
			}
		}
		else if (in_str == "--bed") {
			if (BED_file == "")
			{
				BED_file = get_arg(i+1); i++; BED_exclude=false;
			}
			else
				LOG.error(" Multiple --bed/--exclude-bed options can not be used together.");
		}
		else if (in_str == "-c") {stream_out = true;}						// Write output to stream
		else if (in_str == "--chr") { chrs_to_keep.insert(get_arg(i+1)); i++; }					// Chromosome to process
		else if (in_str == "--contigs") { contigs_file = get_arg(i+1); i++;}	// Contigs file for header
		else if (in_str == "--exclude-bed") {
			if (BED_file == "")
			{
				BED_file = get_arg(i+1); i++; BED_exclude=true;
			}
			else
				LOG.error(" Multiple --bed/--exclude-bed options can not be used together.");
		}
		else if (in_str == "--exclude") { snps_to_exclude_file = get_arg(i+1); i++; }				// List of SNPs to exclude
		else if (in_str == "--exclude-positions") { exclude_positions_file = get_arg(i+1); i++; }
		else if (in_str == "--exclude-positions-overlap") { exclude_positions_overlap_file = get_arg(i+1); i++; }
		else if (in_str == "--from-bp") { start_pos = atoi(get_arg(i+1).c_str()); i++; }					// Start position
		else if (in_str == "--get-INFO") {
			if (INFO_to_extract.empty())
				num_outputs++;
			INFO_to_extract.push_back(get_arg(i+1)); i++;}	// Add to list of INFO fields to extract
		else if (in_str == "--gzvcf") // Compressed VCF file to process
		{
			vcf_format.push_back( true );
			vcf_compressed.push_back( true );
			if (!stream_in)
			{
				vcf_filenames.push_back(get_arg(i+1));
				i++;
			}
		}
		else if (in_str == "--hwe") { max_alleles = 2; min_HWE_pvalue = atof(get_arg(i+1).c_str()); i++; }					// Minimum per-site HWE p-value
		else if (in_str == "--indv") { indv_to_keep.insert(get_arg(i+1)); i++; }						// List of individuals to keep
		else if (in_str == "--invert-mask") { mask_file = get_arg(i+1); i++; invert_mask = true; }
		else if (in_str == "--keep-filtered") { site_filter_flags_to_keep.insert(get_arg(i+1)); i++; }	// Remove a specific filter flag
		else if (in_str == "--keep") { indv_keep_file = get_arg(i+1); i++; }						// List of individuals to keep
		else if (in_str == "--keep-only-indels") { keep_only_indels = true; }
		else if (in_str == "--keep-INFO") { site_INFO_flags_to_keep.insert(get_arg(i+1)); i++; }	// Filter sites by INFO flags
		else if (in_str == "--mac") { min_mac = atoi(get_arg(i+1).c_str()); i++; }								// Minimum Site MAC
		else if (in_str == "--maf") { min_maf = atof(get_arg(i+1).c_str()); i++; }								// Minimum Site MAF
		else if (in_str == "--mask-min") { min_kept_mask_value = atoi(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--mask") { mask_file = get_arg(i+1); i++; invert_mask = false; }
		else if (in_str == "--max-alleles") { max_alleles = atoi(get_arg(i+1).c_str()); i++; }				// Maximum number of alleles per-site
		else if (in_str == "--max-mac") { max_mac = atoi(get_arg(i+1).c_str()); i++; }						// Maximum site MAC
		else if (in_str == "--max-maf") { max_maf = atof(get_arg(i+1).c_str()); i++; }						// Maximum Site MAF
		else if (in_str == "--max-meanDP") { max_mean_depth = atof(get_arg(i+1).c_str()); i++; }			// Site Maximum mean depth across individuals
		else if (in_str == "--max-missing") { min_site_call_rate = atof(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--max-missing-count") { max_missing_call_count = atoi(get_arg(i+1).c_str()); i++; } // Site maximum missing genotypes
		else if (in_str == "--max-non-ref-ac") { max_non_ref_ac = atoi(get_arg(i+1).c_str()); i++; }		// Minimum Site non-ref AC
		else if (in_str == "--max-non-ref-af") { max_non_ref_af = atof(get_arg(i+1).c_str()); i++; }		// Minimum Site non-ref AF
		else if (in_str == "--maxDP") { max_genotype_depth = atoi(get_arg(i+1).c_str()); i++; }				// Maximum genotype depth
		else if (in_str == "--max-indv") {max_N_indv = atoi(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--min-alleles") { min_alleles = atoi(get_arg(i+1).c_str()); i++; }				// Minimum number of alleles per-site
		else if (in_str == "--min-meanDP") { min_mean_depth = atof(get_arg(i+1).c_str()); i++; }			// Site Minimum mean depth
		else if (in_str == "--min-r2") { min_r2 = atof(get_arg(i+1).c_str()); i++; }					// Min r^2 for LD output
		else if (in_str == "--minDP") { min_genotype_depth = atoi(get_arg(i+1).c_str()); i++; }				// Minimum genotype depth
		else if (in_str == "--minGQ") { min_genotype_quality = atof(get_arg(i+1).c_str()); i++; }			// Minimum genotype quality
		else if (in_str == "--minQ") { min_quality = atof(get_arg(i+1).c_str()); i++; }						// Minimum per-site quality
		else if (in_str == "--non-ref-ac") { min_non_ref_ac = atoi(get_arg(i+1).c_str()); i++; }				// Minimum Site non-ref AC
		else if (in_str == "--non-ref-af") { min_non_ref_af = atof(get_arg(i+1).c_str()); i++; }				// Minimum Site non-ref AF
		else if (in_str == "--not-chr") { chrs_to_exclude.insert(get_arg(i+1)); i++; }					// Chromosome to process
		else if (in_str == "--out") { output_prefix = get_arg(i+1); i++; }							// Output file prefix
		else if (in_str == "--phased") phased_only = true;								// Keep only phased individuals / sites
		else if (in_str == "--positions") { positions_file = get_arg(i+1); i++; }
		else if (in_str == "--positions-overlap") { positions_overlap_file = get_arg(i+1); i++; }
		else if (in_str == "--remove-filtered-all") remove_all_filtered_sites = true;							// Remove sites flagged as filtered
		else if (in_str == "--remove-filtered-geno-all") remove_all_filtered_genotypes = true;			// Remove genotypes flagged as filtered
		else if (in_str == "--remove-filtered-geno") { geno_filter_flags_to_exclude.insert(get_arg(i+1)); i++; }		// Remove genotypes flagged as filtered
		else if (in_str == "--remove-filtered") { site_filter_flags_to_exclude.insert(get_arg(i+1)); i++; }	// Remove a specific filter flag
		else if (in_str == "--remove-indels") { remove_indels = true; }
		else if (in_str == "--remove-indv") { indv_to_exclude.insert(get_arg(i+1)); i++; }						// List of individuals to keep
		else if (in_str == "--remove-INFO") { site_INFO_flags_to_remove.insert(get_arg(i+1)); i++; }	// Filter sites by INFO flags
		else if (in_str == "--remove") { indv_exclude_file = get_arg(i+1); i++; }					// List of individuals to exclude
		else if (in_str == "--seed") { seed = atoi(get_arg(i+1).c_str()); generator.seed(seed); i++; }
		else if (in_str == "--snp") { snps_to_keep.insert(get_arg(i+1)); i++; }						// SNP to keep
		else if (in_str == "--snps") { snps_to_keep_file = get_arg(i+1); i++; }						// List of SNPs to keep
		else if (in_str == "--stdout") {stream_out = true; }						// Write output to stream
		else if (in_str == "--temp") { temp_dir = get_arg(i+1); i++;}	// Directory for vcftools temporary files
		else if (in_str == "--to-bp") { end_pos = atoi(get_arg(i+1).c_str()); i++; }						// End position
		else if (in_str == "--thin") { min_interSNP_distance = atoi(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--Ne") { Ne = atof(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--map") { map_filename = get_arg(i+1); i++; }
		else if (in_str == "--recomb") { recomb_rate = atof(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--test-indv") { viterbi_indv.insert(get_arg(i+1)); i++; }
		else if (in_str == "--error") { p_error = atof(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--maxthreads") { max_threads = atoi(get_arg(i+1).c_str()); i++; }
		else if (in_str == "--fwdbck") { run_viterbi = false; }
		else
			error("Unknown option: " + string(in_str), 0);
		i++;
	}
	check_parameters();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movq %rdi, %rbx
leaq 0x10(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x4c0(%rdi), %rax
movq %rax, 0xd0(%rsp)
leaq 0x4f8(%rdi), %rax
movq %rax, 0xc8(%rsp)
leaq 0x438(%rdi), %rax
movq %rax, 0xc0(%rsp)
leaq 0x3e0(%rdi), %rax
movq %rax, 0xb8(%rsp)
leaq 0x400(%rdi), %rax
movq %rax, 0xb0(%rsp)
leaq 0x120(%rdi), %rax
movq %rax, 0xa8(%rsp)
leaq 0x390(%rdi), %rax
movq %rax, 0xa0(%rsp)
leaq 0x160(%rdi), %rax
movq %rax, 0x98(%rsp)
leaq 0x300(%rdi), %rax
movq %rax, 0x90(%rsp)
leaq 0xf0(%rdi), %rax
movq %rax, 0x88(%rsp)
leaq 0x2d8(%rdi), %rax
movq %rax, 0x80(%rsp)
leaq 0x2b8(%rdi), %rax
movq %rax, 0x78(%rsp)
leaq 0x290(%rdi), %rax
movq %rax, 0x70(%rsp)
leaq 0x28(%rdi), %rax
movq %rax, 0x68(%rsp)
leaq 0x1e8(%rdi), %rax
movq %rax, 0x60(%rsp)
leaq 0x360(%rdi), %rax
movq %rax, 0xd8(%rsp)
leaq 0x140(%rdi), %rax
movq %rax, 0xe0(%rsp)
leaq 0x330(%rdi), %rax
movq %rax, 0xe8(%rsp)
leaq 0x190(%rdi), %rax
movq %rax, 0xf0(%rsp)
leaq 0x470(%rdi), %rax
movq %rax, 0x58(%rsp)
leaq 0x498(%rdi), %rax
movq %rax, 0x50(%rsp)
leaq 0x458(%rdi), %rax
movq %rax, 0x48(%rsp)
leaq 0x1c0(%rdi), %rax
movq %rax, 0xf8(%rsp)
leaq 0xd0(%rdi), %rax
movq %rax, 0x100(%rsp)
leaq 0xb0(%rdi), %rax
movq %rax, 0x108(%rsp)
leaq 0x3c0(%rdi), %rax
movq %rax, 0x110(%rsp)
leaq 0x8(%rdi), %rax
movq %rax, 0x40(%rsp)
leaq 0x88(%rdi), %rax
movq %rax, 0x118(%rsp)
leaq 0x58(%rdi), %rax
movq %rax, 0x120(%rsp)
pushq $0x1
popq %r13
leaq 0x20(%rsp), %r14
leaq 0x168(%rsp), %rbp
leaq 0x148(%rsp), %r15
movl %r13d, %eax
movq 0x538(%rbx), %rsi
movq 0x540(%rbx), %rcx
subq %rsi, %rcx
sarq $0x5, %rcx
cmpq %rax, %rcx
jbe 0x28aa3
shlq $0x5, %rax
addq %rax, %rsi
movq %rsp, %rdi
callq 0x5210
movq %rsp, %r12
movq %r12, %rdi
leaq 0x758d(%rip), %rsi      # 0x2f096
callq 0x96f3
testb %al, %al
je 0x27b57
movq 0x58(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x9d32
movq 0x50(%rsp), %rdi
xorl %esi, %esi
callq 0x9d32
cmpb $0x0, (%rbx)
jne 0x27ccd
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x10122
jmp 0x27cc5
movq %r12, %rdi
leaq 0x753b(%rip), %rsi      # 0x2f09c
callq 0x96f3
testb %al, %al
je 0x27bae
movq 0x58(%rsp), %rdi
xorl %esi, %esi
callq 0x9d32
movq 0x50(%rsp), %rdi
xorl %esi, %esi
callq 0x9d32
cmpb $0x0, (%rbx)
jne 0x27ccd
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x10122
jmp 0x27cc5
movq %r12, %rdi
leaq 0x74ea(%rip), %rsi      # 0x2f0a2
callq 0x96f3
testb %al, %al
je 0x27c05
movq 0x40(%rsp), %rdi
leaq 0x726a(%rip), %rsi      # 0x2ee37
callq 0x96f3
testb %al, %al
je 0x27c24
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
movb $0x0, 0x1(%rbx)
jmp 0x27ccd
movq %r12, %rdi
leaq 0x74d9(%rip), %rsi      # 0x2f0e8
callq 0x96f3
testb %al, %al
je 0x27c5b
movb $0x1, 0x435(%rbx)
jmp 0x27ccd
movq %r14, %rdx
movq %rbp, %r14
movq %rbp, %rdi
leaq 0x7474(%rip), %rsi      # 0x2f0a8
movq %rdx, %r12
callq 0x5160
leaq 0x1988d(%rip), %rdi     # 0x414d0
movq %r14, %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
movq %r14, %rdi
callq 0x5908
movq %r12, %r14
jmp 0x27ccd
movq %r12, %rdi
leaq 0x7486(%rip), %rsi      # 0x2f0eb
callq 0x96f3
testb %al, %al
je 0x27c91
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x120(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %r12, %rdi
leaq 0x7456(%rip), %rsi      # 0x2f0f1
callq 0x96f3
testb %al, %al
je 0x27cd5
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x118(%rsp), %rdi
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
incl %r13d
jmp 0x27acc
movq %r12, %rdi
leaq 0x741c(%rip), %rsi      # 0x2f0fb
callq 0x96f3
testb %al, %al
je 0x27d29
movq 0x40(%rsp), %rdi
leaq 0x7143(%rip), %rsi      # 0x2ee37
callq 0x96f3
testb %al, %al
je 0x27d5a
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x40(%rsp), %rdi
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
movb $0x1, 0x1(%rbx)
jmp 0x27ccd
movq %r12, %rdi
leaq 0x73d6(%rip), %rsi      # 0x2f109
callq 0x96f3
testb %al, %al
je 0x27d89
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x110(%rsp), %rdi
jmp 0x27cbd
movq %r14, %rdx
movq %r15, %r14
movq %r15, %rdi
leaq 0x733e(%rip), %rsi      # 0x2f0a8
movq %rdx, %r12
callq 0x5160
leaq 0x19757(%rip), %rdi     # 0x414d0
movq %r14, %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
jmp 0x27c4e
movq %r12, %rdi
leaq 0x7380(%rip), %rsi      # 0x2f113
callq 0x96f3
testb %al, %al
je 0x27dba
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x108(%rsp), %rdi
jmp 0x27cbd
movq %r12, %rdi
leaq 0x7363(%rip), %rsi      # 0x2f127
callq 0x96f3
testb %al, %al
je 0x27deb
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x100(%rsp), %rdi
jmp 0x27cbd
movq %r12, %rdi
leaq 0x734e(%rip), %rsi      # 0x2f143
callq 0x96f3
testb %al, %al
je 0x27e24
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x430(%rbx)
jmp 0x27cc5
movq %r12, %rdi
leaq 0x731f(%rip), %rsi      # 0x2f14d
callq 0x96f3
testb %al, %al
je 0x27e73
movq 0x1c0(%rbx), %rax
cmpq 0x1c8(%rbx), %rax
jne 0x27e4d
incl 0x2b0(%rbx)
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xf8(%rsp), %rdi
movq %r14, %rsi
callq 0x10122
jmp 0x27cc5
movq %r12, %rdi
leaq 0x72db(%rip), %rsi      # 0x2f158
callq 0x96f3
testb %al, %al
je 0x27ecc
movq 0x58(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x9d32
movq 0x50(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x9d32
cmpb $0x0, (%rbx)
jne 0x27ccd
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x10122
jmp 0x27cc5
movq %r12, %rdi
leaq 0x728a(%rip), %rsi      # 0x2f160
callq 0x96f3
testb %al, %al
je 0x27f11
movl $0x2, 0x208(%rbx)
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x250(%rbx)
jmp 0x27cc5
movq %r12, %rdi
leaq 0x724b(%rip), %rsi      # 0x2f166
callq 0x96f3
testb %al, %al
je 0x27f4a
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xf0(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %r12, %rdi
leaq 0x7219(%rip), %rsi      # 0x2f16d
callq 0x96f3
testb %al, %al
je 0x27f8f
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
movb $0x1, 0x1d8(%rbx)
jmp 0x27ccd
movq %r12, %rdi
leaq 0x71e2(%rip), %rsi      # 0x2f17b
callq 0x96f3
testb %al, %al
je 0x27fc8
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xe8(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %r12, %rdi
leaq 0x71b9(%rip), %rsi      # 0x2f18b
callq 0x96f3
testb %al, %al
je 0x27ff9
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xe0(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x718f(%rip), %rsi      # 0x2f192
callq 0x96f3
testb %al, %al
je 0x28018
movb $0x1, 0x1d9(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x7183(%rip), %rsi      # 0x2f1a5
callq 0x96f3
testb %al, %al
je 0x28051
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xd8(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x7156(%rip), %rsi      # 0x2f1b1
callq 0x96f3
testb %al, %al
je 0x2808a
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x1dc(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x7123(%rip), %rsi      # 0x2f1b7
callq 0x96f3
testb %al, %al
je 0x280c5
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x1e0(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x70ee(%rip), %rsi      # 0x2f1bd
callq 0x96f3
testb %al, %al
je 0x280fe
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x25c(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x70c0(%rip), %rsi      # 0x2f1c8
callq 0x96f3
testb %al, %al
je 0x28143
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
movb $0x0, 0x1d8(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x7082(%rip), %rsi      # 0x2f1cf
callq 0x96f3
testb %al, %al
je 0x2817c
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x208(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x7057(%rip), %rsi      # 0x2f1dd
callq 0x96f3
testb %al, %al
je 0x281b5
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x210(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x7028(%rip), %rsi      # 0x2f1e7
callq 0x96f3
testb %al, %al
je 0x281f0
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x218(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6ff7(%rip), %rsi      # 0x2f1f1
callq 0x96f3
testb %al, %al
je 0x2822b
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x220(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6fc9(%rip), %rsi      # 0x2f1fe
callq 0x96f3
testb %al, %al
je 0x28266
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x288(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6f9c(%rip), %rsi      # 0x2f20c
callq 0x96f3
testb %al, %al
je 0x2829f
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x228(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6f77(%rip), %rsi      # 0x2f220
callq 0x96f3
testb %al, %al
je 0x282d8
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x22c(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6f4f(%rip), %rsi      # 0x2f231
callq 0x96f3
testb %al, %al
je 0x28313
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x230(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6f25(%rip), %rsi      # 0x2f242
callq 0x96f3
testb %al, %al
je 0x2834c
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x20c(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6ef4(%rip), %rsi      # 0x2f24a
callq 0x96f3
testb %al, %al
je 0x28385
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x238(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6ec6(%rip), %rsi      # 0x2f255
callq 0x96f3
testb %al, %al
je 0x283be
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x23c(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6e9b(%rip), %rsi      # 0x2f263
callq 0x96f3
testb %al, %al
je 0x283f9
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x260(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6e6d(%rip), %rsi      # 0x2f270
callq 0x96f3
testb %al, %al
je 0x28434
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x280(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6e3b(%rip), %rsi      # 0x2f279
callq 0x96f3
testb %al, %al
je 0x2846d
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x240(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6e0a(%rip), %rsi      # 0x2f281
callq 0x96f3
testb %al, %al
je 0x284a8
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x248(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6dd7(%rip), %rsi      # 0x2f289
callq 0x96f3
testb %al, %al
je 0x284e3
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x278(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6da3(%rip), %rsi      # 0x2f290
callq 0x96f3
testb %al, %al
je 0x2851c
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x268(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6d77(%rip), %rsi      # 0x2f29d
callq 0x96f3
testb %al, %al
je 0x28557
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x270(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6d49(%rip), %rsi      # 0x2f2aa
callq 0x96f3
testb %al, %al
je 0x2858d
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x68(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6d1d(%rip), %rsi      # 0x2f2b4
callq 0x96f3
testb %al, %al
je 0x285bb
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x70(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6cf5(%rip), %rsi      # 0x2f2ba
callq 0x96f3
testb %al, %al
je 0x285da
movb $0x1, 0x2b4(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x6cdf(%rip), %rsi      # 0x2f2c3
callq 0x96f3
testb %al, %al
je 0x28608
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x78(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6cbd(%rip), %rsi      # 0x2f2cf
callq 0x96f3
testb %al, %al
je 0x28639
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x80(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6ca0(%rip), %rsi      # 0x2f2e3
callq 0x96f3
testb %al, %al
je 0x28658
movb $0x1, 0x2f9(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x6c97(%rip), %rsi      # 0x2f2f9
callq 0x96f3
testb %al, %al
je 0x28677
movb $0x1, 0x2f8(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x6c93(%rip), %rsi      # 0x2f314
callq 0x96f3
testb %al, %al
je 0x286b0
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x88(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6c71(%rip), %rsi      # 0x2f32b
callq 0x96f3
testb %al, %al
je 0x286e9
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x90(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6c4a(%rip), %rsi      # 0x2f33d
callq 0x96f3
testb %al, %al
je 0x28708
movb $0x1, 0x2fa(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x6c3b(%rip), %rsi      # 0x2f34d
callq 0x96f3
testb %al, %al
je 0x28741
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6c10(%rip), %rsi      # 0x2f35b
callq 0x96f3
testb %al, %al
je 0x2877a
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xa0(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6be5(%rip), %rsi      # 0x2f369
callq 0x96f3
testb %al, %al
je 0x287ab
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xa8(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6bbd(%rip), %rsi      # 0x2f372
callq 0x96f3
testb %al, %al
je 0x2880c
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x2fc(%rbx)
movq %r14, %rdi
callq 0x5908
movslq 0x2fc(%rbx), %rax
xorl %edx, %edx
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
divq %rcx
cmpq $0x1, %rdx
adcq $0x0, %rdx
movq %rdx, 0x530(%rbx)
jmp 0x27ccd
movq %rsp, %rdi
leaq 0x6b63(%rip), %rsi      # 0x2f379
callq 0x96f3
testb %al, %al
je 0x28845
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xb0(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6b30(%rip), %rsi      # 0x2f37f
callq 0x96f3
testb %al, %al
je 0x28876
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xb8(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6b06(%rip), %rsi      # 0x2f386
callq 0x96f3
testb %al, %al
jne 0x27c18
movq %rsp, %rdi
leaq 0x6af8(%rip), %rsi      # 0x2f38f
callq 0x96f3
testb %al, %al
je 0x288be
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xc0(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6ace(%rip), %rsi      # 0x2f396
callq 0x96f3
testb %al, %al
je 0x288f7
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0xa8(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6a9d(%rip), %rsi      # 0x2f39e
callq 0x96f3
testb %al, %al
je 0x28930
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x258(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6a6b(%rip), %rsi      # 0x2f3a5
callq 0x96f3
testb %al, %al
je 0x2896b
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x4f0(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6a35(%rip), %rsi      # 0x2f3aa
callq 0x96f3
testb %al, %al
je 0x2899c
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xc8(%rsp), %rdi
jmp 0x27cbd
movq %rsp, %rdi
leaq 0x6a0a(%rip), %rsi      # 0x2f3b0
callq 0x96f3
testb %al, %al
je 0x289d7
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x518(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x69d8(%rip), %rsi      # 0x2f3b9
callq 0x96f3
testb %al, %al
je 0x28a10
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0xd0(%rsp), %rdi
movq %r14, %rsi
callq 0x2bcf4
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x69ab(%rip), %rsi      # 0x2f3c5
callq 0x96f3
testb %al, %al
je 0x28a4b
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x55a0
movsd %xmm0, 0x520(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x6978(%rip), %rsi      # 0x2f3cd
callq 0x96f3
testb %al, %al
je 0x28a84
incl %r13d
movq %r14, %rdi
movq %rbx, %rsi
movl %r13d, %edx
callq 0x28c58
movq 0x20(%rsp), %rdi
callq 0x56d0
movl %eax, 0x528(%rbx)
jmp 0x27cc5
movq %rsp, %rdi
leaq 0x694c(%rip), %rsi      # 0x2f3da
callq 0x96f3
testb %al, %al
je 0x28ac5
movb $0x0, 0x52c(%rbx)
jmp 0x27ccd
movq %rbx, %rdi
callq 0x28d52
movq %rsp, %rdi
callq 0x5908
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x5630
leaq 0x690a(%rip), %rsi      # 0x2f3e3
leaq 0x128(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x98d5
leaq 0x128(%rsp), %rdi
xorl %esi, %esi
callq 0x28cce
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x5908
jmp 0x28c36
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c33
jmp 0x28c44
jmp 0x28c33
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
jmp 0x28c44
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
jmp 0x28c3b
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
jmp 0x28c44
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
jmp 0x28c3b
jmp 0x28c44
jmp 0x28c44
jmp 0x28c33
jmp 0x28c44
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x5908
jmp 0x28c47
jmp 0x28c44
movq %rax, %rbx
movq %rsp, %rdi
callq 0x5908
movq %rbx, %rdi
callq 0x5800
nop