// File: millanek[P]evo/process_vcf_print_routines.cpp
// Function: print_privateFixedVarsSummary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<int, std::allocator<int>> const&)
void print_privateFixedVarsSummary(const string& fileRoot, const std::vector<std::string>& header, const string& populationsFile,  const std::vector<int>& privateVarCounts) {
    string privateVarFileName = fileRoot + "_" + stripExtension(populationsFile) + ".privateFixedVars.txt";
    std::ofstream* pPrivateVarFile = new std::ofstream(privateVarFileName.c_str());
    *pPrivateVarFile << "# Counts of private fixed variants:" << std::endl;
    *pPrivateVarFile << "# Input file:" << fileRoot << ".vcf" << std::endl;
    *pPrivateVarFile << "# Groups defined in:" << populationsFile << std::endl;
    
    // print het counts
    print_vector(header, *pPrivateVarFile);
    print_vector(privateVarCounts, *pPrivateVarFile);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rsi
leaq 0xaec1a(%rip), %rdx     # 0x13fd90
leaq -0x80(%rbp), %rdi
callq 0x3da80
movq -0x18(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x7be70
jmp 0x91191
leaq -0x60(%rbp), %rdi
leaq -0x80(%rbp), %rsi
leaq -0xa0(%rbp), %rdx
callq 0x3e070
jmp 0x911a7
leaq 0xab10a(%rip), %rdx     # 0x13c2b8
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3e020
jmp 0x911bd
leaq -0x60(%rbp), %rdi
callq 0xac88
leaq -0xa0(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0xac88
movl $0x200, %edi            # imm = 0x200
callq 0xa5d0
movq %rax, -0xf0(%rbp)
jmp 0x911ee
leaq -0x40(%rbp), %rdi
callq 0xa220
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0xa650
jmp 0x9120d
movq -0xf0(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
leaq 0xab0a5(%rip), %rsi     # 0x13c2ce
callq 0xa5c0
movq %rax, -0xf8(%rbp)
jmp 0x91237
movq -0xf8(%rbp), %rdi
movq 0x107d43(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x9124c
movq -0xb8(%rbp), %rdi
leaq 0xaaf2e(%rip), %rsi     # 0x13c188
callq 0xa5c0
movq %rax, -0x100(%rbp)
jmp 0x91268
movq -0x100(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0xa520
movq %rax, -0x108(%rbp)
jmp 0x91281
movq -0x108(%rbp), %rdi
leaq 0xb5561(%rip), %rsi     # 0x1467f0
callq 0xa5c0
movq %rax, -0x110(%rbp)
jmp 0x9129d
movq -0x110(%rbp), %rdi
movq 0x107cdd(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x912b2
movq -0xb8(%rbp), %rdi
leaq 0xab032(%rip), %rsi     # 0x13c2f2
callq 0xa5c0
movq %rax, -0x118(%rbp)
jmp 0x912ce
movq -0x118(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xa520
movq %rax, -0x120(%rbp)
jmp 0x912e7
movq -0x120(%rbp), %rdi
movq 0x107c93(%rip), %rsi    # 0x198f88
callq 0xa610
jmp 0x912fc
movq -0x10(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
callq 0x3fee0
jmp 0x9130e
movq -0xb8(%rbp), %rsi
leaq -0xd0(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x50da0
jmp 0x9132d
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
movq -0x20(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
callq 0x4cf20
jmp 0x9134b
movq -0xb8(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
movl $0x9, %edx
movl $0x1, %ecx
callq 0x5f9b0
jmp 0x9136a
leaq -0xe8(%rbp), %rdi
callq 0x48290
leaq -0x40(%rbp), %rdi
callq 0xac88
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x913d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x913cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xac88
leaq -0xa0(%rbp), %rdi
callq 0xac88
leaq -0x80(%rbp), %rdi
callq 0xac88
jmp 0x91465
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
jmp 0x9145c
movq -0xf0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
movl $0x200, %esi            # imm = 0x200
callq 0xa5e0
jmp 0x9145c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3dfa0
jmp 0x9145c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x48290
leaq -0x40(%rbp), %rdi
callq 0xac88
movq -0xa8(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)