// File: /workspace/github_cpp_makefile_star2_O3/drarwood[P]gags/PhenotypeProcessor.cpp
// Function: ReadPhenotypeFileMinusExclusions(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 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>>>>&, std::vector<double, std::allocator<double>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, double>>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>&)
void ReadPhenotypeFileMinusExclusions(string f, vector<string>& i, vector<double>& v, map<string,double>& m, map<string,int>& e) {
    string line, id, pheno;
    ifstream inFile(f.c_str());
    if (inFile.is_open()) {
        getline (inFile, line); // skip header
        while (inFile.good()) {
            getline (inFile, line);
            if (!line.empty()) {
                istringstream iss;
                iss.str(line);
                iss >> id;
                iss >> pheno;
                if (pheno != "NA" && e.find(id) == e.end()) {
                    i.push_back(id);
                    v.push_back(stringToDouble(pheno));
                    m[id] = stringToDouble(pheno);
                }
            }
        }
        inFile.close();
    }
    else {
        cout << "Unable to open " << f << " for reading" << endl;
        exit(EXIT_FAILURE);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x468, %rsp            # imm = 0x468
movq %r8, 0x8(%rsp)
movq %rcx, 0x90(%rsp)
movq %rdx, 0x98(%rsp)
movq %rsi, 0xa0(%rsp)
movq %rdi, %rbx
leaq 0x60(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0xd0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x20(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq (%rdi), %rsi
leaq 0xe0(%rsp), %r14
movq %r14, %rdi
movl $0x8, %edx
callq 0x3470
leaq 0x158(%rsp), %rdi
callq 0x3080
testb %al, %al
je 0xb4dc
movq 0xe0(%rsp), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x3260
movsbl %al, %edx
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x3480
movq 0xe0(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x100(%rsp,%rax)
jne 0xb453
leaq (%rsp,%rax), %rdi
addq $0xe0, %rdi
movq 0x8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0xb0(%rsp)
leaq 0xe0(%rsp), %r14
leaq 0x50(%rsp), %r12
leaq 0x2e8(%rsp), %r13
leaq 0xc0(%rsp), %rbp
leaq 0x10(%rsp), %rbx
movl $0xa, %esi
callq 0x3260
movsbl %al, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x3480
cmpq $0x0, 0x58(%rsp)
je 0xb432
movq %r13, %rdi
callq 0x31e0
leaq 0x2f8(%rsp), %rdi
movq %r12, %rsi
callq 0x3380
movq %r13, %rdi
movq %rbp, %rsi
callq 0x3310
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3310
movq %rbx, %rdi
leaq 0x15f3(%rip), %rsi      # 0xc8dd
callq 0x30c0
testl %eax, %eax
je 0xb416
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
callq 0x8c5a
cmpq 0xb0(%rsp), %rax
jne 0xb416
movq 0xa0(%rsp), %rdi
movq %rbp, %rsi
callq 0x8b0e
leaq 0x80(%rsp), %rax
movq %rax, 0x70(%rsp)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq %rsi, %rdx
leaq 0x70(%rsp), %r15
movq %r15, %rdi
callq 0x5c48
movq %r15, %rdi
callq 0xb618
movsd %xmm0, 0xb8(%rsp)
movq 0x98(%rsp), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0xb37a
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0xb387
leaq 0xb8(%rsp), %rdx
callq 0x8ebe
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xb3a9
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x3280
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq %rsi, %rdx
leaq 0x30(%rsp), %rdi
callq 0x5c48
leaq 0x30(%rsp), %rdi
callq 0xb618
movsd %xmm0, 0xa8(%rsp)
movq 0x90(%rsp), %rdi
movq %rbp, %rsi
callq 0x72f6
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xb416
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3280
movq %r13, %rdi
movq 0x5ba8(%rip), %rsi      # 0x10fc8
callq 0x3350
leaq 0x360(%rsp), %rdi
callq 0x30d0
movq 0xe0(%rsp), %rax
movq -0x18(%rax), %rax
leaq (%rsp,%rax), %rdi
addq $0xe0, %rdi
cmpl $0x0, 0x20(%rdi)
je 0xb28e
leaq 0xe0(%rsp), %rdi
callq 0x3070
leaq 0xe0(%rsp), %rdi
callq 0x3090
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb489
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3280
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xb4ae
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x3280
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb4ca
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3280
addq $0x468, %rsp            # imm = 0x468
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x5af5(%rip), %rdi      # 0x10fd8
leaq 0xe36(%rip), %rsi       # 0xc320
movl $0xf, %edx
callq 0x32c0
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x5ad6(%rip), %rdi      # 0x10fd8
callq 0x32c0
movq %rax, %rbx
leaq 0xe1f(%rip), %rsi       # 0xc330
movl $0xc, %edx
movq %rax, %rdi
callq 0x32c0
movq %rbx, %rdi
callq 0x3120
movl $0x1, %edi
callq 0x32e0
movq %rax, %rbx
jmp 0xb5b3
jmp 0xb582
movq %rax, %rbx
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0xb585
movq 0x80(%rsp), %rsi
jmp 0xb56d
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xb585
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3280
jmp 0xb585
jmp 0xb57d
jmp 0xb582
jmp 0xb57d
movq %rax, %rbx
jmp 0xb5a6
movq %rax, %rbx
movq 0x5a3c(%rip), %rsi      # 0x10fc8
leaq 0x2e8(%rsp), %rdi
callq 0x3350
leaq 0x360(%rsp), %rdi
callq 0x30d0
leaq 0xe0(%rsp), %rdi
callq 0x3090
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xb5cf
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3280
movq 0xc0(%rsp), %rdi
leaq 0xd0(%rsp), %rax
cmpq %rax, %rdi
je 0xb5f4
movq 0xd0(%rsp), %rsi
incq %rsi
callq 0x3280
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0xb610
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3280
movq %rbx, %rdi
callq 0x3450