// File: /workspace/github_cpp_makefile_star2_O2/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, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq %rsi, 0x20(%rsp)
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdi, %rbx
xorl %ecx, %ecx
leaq 0xb0(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
leaq 0x90(%rsp), %rsi
movq %rsi, -0x10(%rsi)
andq $0x0, -0x8(%rsi)
movb %cl, (%rax)
movb %cl, (%rdx)
movb %cl, (%rsi)
movq (%rdi), %rsi
leaq 0xe0(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x3430
leaq 0x158(%rsp), %rdi
callq 0x3080
testb %al, %al
je 0x9a64
leaq 0xe0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x3060
movq 0x8(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x30(%rsp)
leaq 0xe0(%rsp), %rbp
leaq 0x40(%rsp), %r14
leaq 0x2e8(%rsp), %r15
leaq 0xa0(%rsp), %r12
leaq 0x80(%rsp), %rbx
movq 0xe0(%rsp), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x100(%rsp,%rax)
jne 0x9a14
movq %rbp, %rdi
movq %r14, %rsi
callq 0x3060
cmpq $0x0, 0x48(%rsp)
je 0x98f5
movq %r15, %rdi
callq 0x31d0
leaq 0x2f8(%rsp), %rdi
movq %r14, %rsi
callq 0x3360
movq %r15, %rdi
movq %r12, %rsi
callq 0x32f0
movq %r15, %rdi
movq %rbx, %rsi
callq 0x32f0
movq %rbx, %rdi
leaq 0xf7d(%rip), %rsi       # 0xa8d7
callq 0x9691
testb %al, %al
je 0x9a07
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x7d4e
cmpq 0x30(%rsp), %rax
jne 0x9a07
movq 0x20(%rsp), %rdi
movq %r12, %rsi
callq 0x7c16
leaq 0xc0(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3320
movq %r13, %rdi
callq 0x9b18
movsd %xmm0, 0x38(%rsp)
movq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x7f58
leaq 0xc0(%rsp), %rdi
callq 0x3120
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x3320
leaq 0x60(%rsp), %rdi
callq 0x9b18
movsd %xmm0, 0x28(%rsp)
movq 0x10(%rsp), %rdi
movq %r12, %rsi
callq 0x670e
movsd 0x28(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x60(%rsp), %rdi
callq 0x3120
movq %r15, %rdi
callq 0x3130
jmp 0x98f5
leaq 0xe0(%rsp), %rdi
callq 0x3070
leaq 0xe0(%rsp), %rdi
callq 0x30a0
leaq 0x80(%rsp), %rdi
callq 0x3120
leaq 0xa0(%rsp), %rdi
callq 0x3120
leaq 0x40(%rsp), %rdi
callq 0x3120
addq $0x468, %rsp            # imm = 0x468
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x556d(%rip), %rdi      # 0xefd8
leaq 0x87e(%rip), %rsi       # 0xa2f0
callq 0x3250
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3230
leaq 0x877(%rip), %rsi       # 0xa300
movq %rax, %rdi
callq 0x3250
movq %rax, %rdi
callq 0x3140
pushq $0x1
popq %rdi
callq 0x32c0
movq %rax, %rbx
jmp 0x9aec
jmp 0x9aca
jmp 0x9acf
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x9abf
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x3120
jmp 0x9ad2
jmp 0x9acf
jmp 0x9aca
movq %rax, %rbx
jmp 0x9adf
movq %rax, %rbx
leaq 0x2e8(%rsp), %rdi
callq 0x3130
leaq 0xe0(%rsp), %rdi
callq 0x30a0
leaq 0x80(%rsp), %rdi
callq 0x3120
leaq 0xa0(%rsp), %rdi
callq 0x3120
leaq 0x40(%rsp), %rdi
callq 0x3120
movq %rbx, %rdi
callq 0x3410