// File: /workspace/github_cpp_makefile_star2_O1/tplinderoth[P]introDist/Dxyz.cpp
// Function: dxyzInfo(int, int, double)
void dxyzInfo (int winsize, int step, double maf) {
	int w1 = 12;
	int w2 = 8;

	std::cerr << "\nThis program calculates the Dxyz statistic in sliding windows\n"
	<< "\nTo run:\n"
	<< "Dxzy [arguments]\n\n"
	<< std::setw(w1) << std::left << "-vcf" << std::setw(w2) << std::left << "FILE" << "Input VCF (uncompressed, gzipped/bgzipped), '-' for STDIN\n"
	<< std::setw(w1) << std::left << "-poptable" << std::setw(w2) << std::left << "FILE" << "Population table\n"
	<< std::setw(w1) << std::left << "-out" << std::setw(w2) << std::left << "FILE" << "Output file name [STDOUT]\n"
	<< std::setw(w1) << std::left << "-winsize" << std::setw(w2) << std::left << "INT" << "Number of SNPs in a window [" << winsize << "]\n"
	<< std::setw(w1) << std::left << "-step" << std::setw(w2) << std::left << "INT" << "Window step size in terms of number of SNPs [" << step << "]\n"
	<< std::setw(w1) << std::left << "-maf" << std::setw(w2) << std::left << "FLOAT" << "Minimum MAF among all individuals combined [" << maf << "]\n"
	<< "\nPopulation table format:\n"
	<< "column 1: Sample name from input VCF\n"
	<< "column 2: Value indicating population: 0 = source, 1 = sink, 2 = outgroup\n"
	<< "\nOutput\n"
	<< "(1) Chromosome\n"
	<< "(2) Window start position\n"
	<< "(3) Window end position\n"
	<< "(4) Source-sink Dxy\n"
	<< "(5) Source-outgroup Dxy\n"
	<< "(6) Dxyz statistic\n"
	<< "(7) Average number of sequences with data per SNP\n"
	<< "(8) Number of SNPs used for calculation\n\n";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movsd %xmm0, 0x10(%rsp)
movl %esi, 0xc(%rsp)
movl %edi, %r12d
movq 0xf64e(%rip), %r14      # 0x16fe8
leaq 0x768f(%rip), %rsi      # 0xf030
movl $0x3f, %edx
movq %r14, %rdi
callq 0x6390
leaq 0x76bb(%rip), %rsi      # 0xf070
movl $0x9, %edx
movq %r14, %rdi
callq 0x6390
leaq 0x76b1(%rip), %rsi      # 0xf07a
movl $0x12, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movl $0xc, %edx
movq %rdx, 0x10(%r14,%rcx)
movl $0xc, %ebx
movq -0x18(%rax), %rax
movl $0xffffff4f, %r13d      # imm = 0xFFFFFF4F
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x7680(%rip), %rsi      # 0xf08d
movl $0x4, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movl $0x8, %ebp
movq %rbp, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x764c(%rip), %r15      # 0xf092
movl $0x4, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x6390
leaq 0x763a(%rip), %rsi      # 0xf097
movl $0x3a, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbx, 0x10(%r14,%rcx)
movl $0xc, %ebx
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x763c(%rip), %rsi      # 0xf0d2
movl $0x9, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbp, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movl $0x4, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x6390
leaq 0x7602(%rip), %rsi      # 0xf0dc
movl $0x11, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbx, 0x10(%r14,%rcx)
movl $0xc, %ebx
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x75db(%rip), %rsi      # 0xf0ee
movl $0x4, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbp, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movl $0x4, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x6390
leaq 0x759c(%rip), %rsi      # 0xf0f3
movl $0x1a, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbx, 0x10(%r14,%rcx)
movl $0xc, %ebx
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x757e(%rip), %rsi      # 0xf10e
movl $0x8, %edx
movq %r14, %rdi
callq 0x6390
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %rbp, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x7553(%rip), %r15      # 0xf117
movl $0x3, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x6390
leaq 0x7540(%rip), %rsi      # 0xf11b
movl $0x1c, %edx
movq %r14, %rdi
callq 0x6390
movq %r14, %rdi
movl %r12d, %esi
callq 0x6580
movq %rax, %r12
leaq 0x750e(%rip), %r14      # 0xf10b
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x6390
movq (%r12), %rax
movq -0x18(%rax), %rcx
movq %rbx, 0x10(%r12,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r12,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r12,%rax)
leaq 0x7503(%rip), %rsi      # 0xf138
movl $0x5, %edx
movq %r12, %rdi
callq 0x6390
movq (%r12), %rax
movq -0x18(%rax), %rcx
movq %rbp, 0x10(%r12,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r12,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r12,%rax)
movl $0x3, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x6390
leaq 0x74c4(%rip), %rsi      # 0xf13e
movl $0x2d, %edx
movq %r12, %rdi
callq 0x6390
movq %r12, %rdi
movl 0xc(%rsp), %esi
callq 0x6580
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x6390
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movl $0xc, %edx
movq %rdx, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r13d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
leaq 0x749c(%rip), %rsi      # 0xf16c
movl $0x4, %edx
movq %rbx, %rdi
callq 0x6390
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq %rbp, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
andl 0x18(%rbx,%rax), %r13d
orl $0x20, %r13d
movl %r13d, 0x18(%rbx,%rax)
leaq 0x746f(%rip), %rsi      # 0xf171
movl $0x5, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x7461(%rip), %rsi      # 0xf177
movl $0x2c, %edx
movq %rbx, %rdi
callq 0x6390
movq %rbx, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x6510
movq %rax, %rbx
movl $0x2, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x6390
leaq 0x7459(%rip), %rsi      # 0xf1a4
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x7460(%rip), %rsi      # 0xf1bf
movl $0x25, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x7472(%rip), %rsi      # 0xf1e5
movl $0x4a, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74a9(%rip), %rsi      # 0xf230
movl $0x8, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x749e(%rip), %rsi      # 0xf239
movl $0xf, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x749a(%rip), %rsi      # 0xf249
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74a1(%rip), %rsi      # 0xf264
movl $0x18, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74a6(%rip), %rsi      # 0xf27d
movl $0x14, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74a7(%rip), %rsi      # 0xf292
movl $0x18, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74ac(%rip), %rsi      # 0xf2ab
movl $0x13, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74ac(%rip), %rsi      # 0xf2bf
movl $0x32, %edx
movq %rbx, %rdi
callq 0x6390
leaq 0x74cb(%rip), %rsi      # 0xf2f2
movl $0x29, %edx
movq %rbx, %rdi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6390