// File: /workspace/github_cpp_makefile_star2_O2/MiWitt[P]HLAbaits/CMultiFasta.cpp
// Function: CMultiFasta::readSequence(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void CMultiFasta::readSequence(const string& filename)
{
    try
    {
        ifstream in(filename.c_str());
        if(!in)
            throw string("Can't open ")+filename;
        string strLine;
        string strHeader = "";
        ostringstream strSeq("");

        while(getline(in,strLine))
        {
            if(strLine.size() == 0)
                continue;
            if(strLine[0] == '>')
            {

                if(strHeader!="")
                {
                    m_mapSequences[strHeader]=strSeq.str();
                }
                else
                    CMyException("empty header. discard entries and continue with ")+strLine;
                strHeader=strLine.substr(1,strLine.size());
                strSeq.str("");
            }
            else
                strSeq << strLine;
        }
        in.close();
        if(strHeader!="")
        {
            m_mapSequences[strHeader]=strSeq.str();
        }

    }
    catch(const string& err)
    {
        throw CMyException(err);
    }
    catch(const CMyException& err)
    {
        throw err;
    }
    catch(...)
    {
        throw CMyException("unknown error in CMultiFasta::readSequence ");
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x428, %rsp            # imm = 0x428
movq %rsi, %rbx
movq %rdi, 0x10(%rsp)
movq (%rsi), %rsi
leaq 0x220(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x3410
movq 0x220(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x240(%rsp,%rax)
jne 0x5fe4
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x1262(%rip), %rsi      # 0x7026
leaq 0x40(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x4e06
leaq 0x1249(%rip), %rsi      # 0x7026
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4e06
leaq 0xa8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
pushq $0x10
popq %rdx
callq 0x3300
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x3478
leaq 0xb0(%rsp), %r14
addq $0x8, 0x10(%rsp)
leaq 0x220(%rsp), %r15
leaq 0x60(%rsp), %r13
leaq 0x11f6(%rip), %rbp      # 0x7026
leaq 0x40(%rsp), %rbx
movq %r15, %rdi
movq %r13, %rsi
callq 0x3060
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x5f4e
cmpq $0x0, 0x68(%rsp)
je 0x5e35
movq 0x60(%rsp), %rax
cmpb $0x3e, (%rax)
jne 0x5ea0
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x6284
testb %al, %al
je 0x5eb2
movq %r12, %rdi
movq %r14, %rsi
callq 0x33b0
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x4f2c
movq %rax, %rdi
movq %r12, %rsi
callq 0x32b0
movq %r12, %rdi
callq 0x3478
jmp 0x5f00
leaq 0xa8(%rsp), %rdi
movq %r13, %rsi
callq 0x3200
jmp 0x5e35
movq %rbp, %rbx
movq %r14, %rbp
movq %r12, %rdi
leaq 0x1712(%rip), %rsi      # 0x75d4
callq 0x62f8
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x63b0
movq %r14, %rdi
callq 0x4fd0
movq %r12, %rdi
callq 0x4fd0
movq %rbp, %r14
movq %rbx, %rbp
leaq 0x40(%rsp), %rbx
leaq 0x220(%rsp), %r15
movq 0x68(%rsp), %rcx
movq %r12, %rdi
movq %r13, %rsi
pushq $0x1
popq %rdx
callq 0x3250
movq %rbx, %rdi
movq %r12, %rsi
callq 0x32b0
movq %r12, %rdi
callq 0x3478
movq %r12, %rdi
movq %rbp, %rsi
leaq 0xf(%rsp), %rdx
callq 0x4e06
movq %r14, %rdi
movq %r12, %rsi
callq 0x3360
movq %r12, %rdi
callq 0x3478
jmp 0x5e35
leaq 0x220(%rsp), %rdi
callq 0x3070
leaq 0x10c4(%rip), %rsi      # 0x7026
leaq 0x40(%rsp), %rdi
callq 0x6284
testb %al, %al
je 0x5fa4
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x33b0
leaq 0x40(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x4f2c
leaq 0x18(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x32b0
movq %rbx, %rdi
callq 0x3478
leaq 0xa8(%rsp), %rdi
callq 0x3090
leaq 0x40(%rsp), %rdi
callq 0x3478
leaq 0x60(%rsp), %rdi
callq 0x3478
leaq 0x220(%rsp), %rdi
callq 0x30a0
addq $0x428, %rsp            # imm = 0x428
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x20
popq %rdi
callq 0x3140
movq %rax, %r15
leaq 0x1023(%rip), %rsi      # 0x7019
leaq 0xa8(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x4e06
movb $0x1, %bpl
leaq 0xa8(%rsp), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x6265
xorl %ebp, %ebp
leaq 0x4d39(%rip), %rsi      # 0xad60
movq 0x4f82(%rip), %rdx      # 0xafb0
movq %r15, %rdi
callq 0x33d0
jmp 0x6199
jmp 0x60b1
jmp 0x60c7
movq %rdx, %rbx
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0x3478
testb %bpl, %bpl
jne 0x6065
jmp 0x60ee
movq %rdx, %rbx
movq %rax, %r14
movq %r15, %rdi
callq 0x31b0
jmp 0x60ee
movq %rdx, %rbx
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x3478
jmp 0x60da
movq %rdx, %rbx
movq %rax, %r14
jmp 0x60da
movq %rdx, %rbx
movq %rax, %r14
jmp 0x60e4
movq %rdx, %rbx
movq %rax, %r14
jmp 0x60fb
jmp 0x60c7
movq %rdx, %rbx
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x4fd0
jmp 0x60cd
jmp 0x60b1
jmp 0x60c7
movq %rdx, %rbx
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0x3478
jmp 0x60cd
jmp 0x60c7
jmp 0x60c7
movq %rdx, %rbx
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0x3090
leaq 0x40(%rsp), %rdi
callq 0x3478
leaq 0x60(%rsp), %rdi
callq 0x3478
leaq 0x220(%rsp), %rdi
callq 0x30a0
movq %r14, %rdi
cmpl $0x3, %ebx
jne 0x6139
callq 0x3100
movq %rax, %rbx
pushq $0x28
popq %rdi
callq 0x3140
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
callq 0x632a
leaq 0x4c60(%rip), %rsi      # 0xad88
leaq -0x115f(%rip), %rdx     # 0x4fd0
movq %r14, %rdi
callq 0x33d0
jmp 0x6199
callq 0x3100
movq %rax, %r15
pushq $0x28
popq %rdi
callq 0x3140
movq %rax, %r14
cmpl $0x2, %ebx
jne 0x6174
movq %r14, %rdi
movq %r15, %rsi
callq 0x635c
leaq 0x4c25(%rip), %rsi      # 0xad88
leaq -0x119a(%rip), %rdx     # 0x4fd0
movq %r14, %rdi
callq 0x33d0
jmp 0x6199
leaq 0x148a(%rip), %rsi      # 0x7605
movq %r14, %rdi
callq 0x62f8
leaq 0x4bfe(%rip), %rsi      # 0xad88
leaq -0x11c1(%rip), %rdx     # 0x4fd0
movq %r14, %rdi
callq 0x33d0
movq %rax, %rbx
callq 0x33c0
jmp 0x61b5
movq %rax, %rbx
callq 0x33c0
jmp 0x61b5
movq %rax, %rbx
callq 0x33c0
movq %rbx, %rdi
callq 0x33f0
movq %rax, %rdi
callq 0x4e63
nop