// File: /workspace/github_cpp_makefile_star2_O3/tplinderoth[P]introDist/introDist.cpp
// Function: comp2DistInfo(unsigned int, unsigned int, int)
void comp2DistInfo (unsigned int windsize, unsigned int stepsize, int useAvg) {
	int w = 12;
	std::cerr << "\nintroDist comp2Dist [-freq] [-geno]\n"
	<< "\nInput:\n"
	<< std::setw(w) << std::left << "-freq" << std::setw(w) << "FILE" << "file with (1) chr, (2) position, (3) population1 allele frequency, (4) population2 allele frequency\n"
	<< std::setw(w) << std::left << "-geno" << std::setw(w) << "FILE" << "file with (1) chr, (2) position, (3) individual genotypes\n"
	<< std::setw(w) << std::left << "-window" << std::setw(w) << "INT" << "Window size in number of sites " << "[" << windsize << "]" << "\n"
	<< std::setw(w) << std::left << "-step" << std::setw(w) << "INT" << "step size in number of sites " << "[" << stepsize << "]" << "\n"
	<< std::setw(w) << std::left << "-useAverage" << std::setw(w) << "INT" << "compare region to distance between (0) populations within window, (1) populations across the genome, (2) individual and pop2 across the genome " << "[" << useAvg << "]" << "\n"
	<< std::setw(w) << std::left << "-distance" << std::setw(w) << "FLOAT" << "use provided instead of calculated genome-wide genetic distance for -useAverage 1 and 2\n"
	<< "\nIt is assumed that the individual belongs to population 1\n"
	<< "-useAverage 1 should use -distance calculated with avgDist -avgtype 0\n"
	<< "-useAverage 2 should use -distance calculated with avgDist -avgtype 1\n"
	<< "\nOutput:\n"
	<< "(1) chr\n"
	<< "(2) window start\n"
	<< "(3) window stop\n"
	<< "(4) window position midpoint\n"
	<< "(5) genetic distance statistic\n"
	<< "(6) number of sites with data in window\n"
	<< "\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, -0x30(%rbp)
movl %esi, -0x2c(%rbp)
movl %edi, %r15d
movq 0x95b9(%rip), %r14      # 0xdff0
leaq 0x5c78(%rip), %rsi      # 0xa6b6
movl $0x25, %edx
movq %r14, %rdi
callq 0x3250
leaq 0x5c8a(%rip), %rsi      # 0xa6dc
movl $0x8, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rcx
movl $0xc, %r13d
movq %r13, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl $0xffffff4f, %r12d      # imm = 0xFFFFFF4F
movl 0x18(%r14,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x5613(%rip), %rsi      # 0xa0a5
movl $0x5, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%r14,%rax)
leaq 0x5c33(%rip), %rbx      # 0xa6e5
movl $0x4, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3250
leaq 0x5c21(%rip), %rsi      # 0xa6ea
movl $0x64, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %r13, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x55d4(%rip), %rsi      # 0xa0d1
movl $0x5, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%r14,%rax)
movl $0x4, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3250
leaq 0x5c22(%rip), %rsi      # 0xa74f
movl $0x3a, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq %r13, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
leaq 0x5594(%rip), %rsi      # 0xa0f5
movl $0x7, %edx
movq %r14, %rdi
callq 0x3250
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%r14,%rax)
leaq 0x5c09(%rip), %rsi      # 0xa78a
movl $0x3, %edx
movq %r14, %rdi
callq 0x3250
leaq 0x5bf9(%rip), %rsi      # 0xa78e
movl $0x1f, %edx
movq %r14, %rdi
callq 0x3250
leaq 0x5c05(%rip), %rbx      # 0xa7ae
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3250
movl %r15d, %esi
movq %r14, %rdi
callq 0x3150
movq %rax, %r15
leaq 0x5be2(%rip), %rsi      # 0xa7b0
movl $0x1, %edx
movq %rax, %rdi
callq 0x3250
leaq 0x5fd0(%rip), %r14      # 0xabb2
movl $0x1, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x3250
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq %r13, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r15,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r15,%rax)
leaq 0x54e4(%rip), %rsi      # 0xa0fd
movl $0x5, %edx
movq %r15, %rdi
callq 0x3250
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%r15,%rax)
movl $0x3, %edx
movq %r15, %rdi
leaq 0x5b49(%rip), %rsi      # 0xa78a
callq 0x3250
leaq 0x5b65(%rip), %rsi      # 0xa7b2
movl $0x1d, %edx
movq %r15, %rdi
callq 0x3250
movl $0x1, %edx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3250
movl -0x2c(%rbp), %esi
movq %r15, %rdi
callq 0x3150
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5b29(%rip), %rsi      # 0xa7b0
callq 0x3250
movl $0x1, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x3250
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq %r13, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r15,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r15,%rax)
leaq 0x54a5(%rip), %rsi      # 0xa168
movl $0xb, %edx
movq %r15, %rdi
callq 0x3250
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%r15,%rax)
movl $0x3, %edx
movq %r15, %rdi
leaq 0x5a9f(%rip), %rsi      # 0xa78a
callq 0x3250
leaq 0x5ad9(%rip), %rsi      # 0xa7d0
movl $0x8f, %edx
movq %r15, %rdi
callq 0x3250
movl $0x1, %edx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x3250
movq %r15, %rdi
movl -0x30(%rbp), %esi
callq 0x3360
movq %rax, %rbx
movl $0x1, %edx
movq %rax, %rdi
leaq 0x5a7f(%rip), %rsi      # 0xa7b0
callq 0x3250
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq %r13, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
andl 0x18(%rbx,%rax), %r12d
orl $0x20, %r12d
movl %r12d, 0x18(%rbx,%rax)
leaq 0x5478(%rip), %rsi      # 0xa1e3
movl $0x9, %edx
movq %rbx, %rdi
callq 0x3250
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %r13, 0x10(%rbx,%rax)
leaq 0x5ad5(%rip), %rsi      # 0xa860
movl $0x5, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5ac7(%rip), %rsi      # 0xa866
movl $0x58, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b0c(%rip), %rsi      # 0xa8bf
movl $0x3b, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b34(%rip), %rsi      # 0xa8fb
movl $0x46, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b67(%rip), %rsi      # 0xa942
movl $0x46, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b9a(%rip), %rsi      # 0xa989
movl $0x9, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b90(%rip), %rsi      # 0xa993
movl $0x8, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b85(%rip), %rsi      # 0xa99c
movl $0x11, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b83(%rip), %rsi      # 0xa9ae
movl $0x10, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b80(%rip), %rsi      # 0xa9bf
movl $0x1d, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b8a(%rip), %rsi      # 0xa9dd
movl $0x1f, %edx
movq %rbx, %rdi
callq 0x3250
leaq 0x5b96(%rip), %rsi      # 0xa9fd
movl $0x28, %edx
movq %rbx, %rdi
callq 0x3250
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3250