// File: 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
movq %rsp, %rbp
subq $0x5d0, %rsp            # imm = 0x5D0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x528(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3150
movq %rax, %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x3560
jmp 0xa7cd
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x31a0
movb %al, -0x529(%rbp)
jmp 0xa7ed
movb -0x529(%rbp), %al
testb $0x1, %al
jne 0xa7fc
jmp 0xa90a
movb $0x1, -0x24a(%rbp)
movl $0x20, %edi
callq 0x31b0
movq %rax, -0x540(%rbp)
leaq -0x249(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x3540
movq -0x538(%rbp), %rdx
leaq 0x17e4(%rip), %rsi      # 0xc019
leaq -0x248(%rbp), %rdi
callq 0x62c0
jmp 0xa843
movq -0x540(%rbp), %rdi
movq -0x10(%rbp), %rdx
leaq -0x248(%rbp), %rsi
callq 0xb0e0
jmp 0xa85c
movq -0x540(%rbp), %rdi
movb $0x0, -0x24a(%rbp)
leaq 0x74e7(%rip), %rsi      # 0x11d58
movq 0x7740(%rip), %rdx      # 0x11fb8
callq 0x3510
jmp 0xaf6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xadf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xade5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xa8e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x35d8
leaq -0x249(%rbp), %rdi
callq 0x3330
testb $0x1, -0x24a(%rbp)
jne 0xa8f9
jmp 0xa905
movq -0x540(%rbp), %rdi
callq 0x3230
jmp 0xade5
leaq -0x270(%rbp), %rdi
callq 0x3440
leaq -0x291(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x3540
movq -0x548(%rbp), %rdx
leaq 0x16ef(%rip), %rsi      # 0xc026
leaq -0x290(%rbp), %rdi
callq 0x62c0
jmp 0xa945
leaq -0x291(%rbp), %rdi
callq 0x3330
leaq -0x431(%rbp), %rdi
movq %rdi, -0x550(%rbp)
callq 0x3540
movq -0x550(%rbp), %rdx
leaq 0x16b4(%rip), %rsi      # 0xc026
leaq -0x430(%rbp), %rdi
callq 0x62c0
jmp 0xa980
leaq -0x410(%rbp), %rdi
leaq -0x430(%rbp), %rsi
movl $0x10, %edx
callq 0x3450
jmp 0xa99a
leaq -0x430(%rbp), %rdi
callq 0x35d8
leaq -0x431(%rbp), %rdi
callq 0x3330
leaq -0x218(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3080
movq %rax, -0x558(%rbp)
jmp 0xa9ce
movq -0x558(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x33f0
movb %al, -0x559(%rbp)
jmp 0xa9ec
movb -0x559(%rbp), %al
testb $0x1, %al
jne 0xa9fb
jmp 0xace1
leaq -0x270(%rbp), %rdi
callq 0x3210
cmpq $0x0, %rax
jne 0xaa8c
jmp 0xa9b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x291(%rbp), %rdi
callq 0x3330
jmp 0xadd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xaa64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x35d8
leaq -0x431(%rbp), %rdi
callq 0x3330
jmp 0xadcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xadc1
xorl %eax, %eax
movl %eax, %esi
leaq -0x270(%rbp), %rdi
callq 0x35c0
movq %rax, -0x568(%rbp)
jmp 0xaaa5
movq -0x568(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0xacc5
leaq 0x1567(%rip), %rsi      # 0xc026
leaq -0x290(%rbp), %rdi
callq 0xb130
movb %al, -0x569(%rbp)
jmp 0xaad3
movb -0x569(%rbp), %al
testb $0x1, %al
jne 0xaadf
jmp 0xab5b
leaq -0x458(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x32e0
jmp 0xaaf4
movq -0x528(%rbp), %rdi
addq $0x8, %rdi
leaq -0x290(%rbp), %rsi
callq 0x6840
movq %rax, -0x578(%rbp)
jmp 0xab14
movq -0x578(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x33c0
leaq -0x458(%rbp), %rdi
callq 0x35d8
jmp 0xabce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x458(%rbp), %rdi
callq 0x35d8
jmp 0xadc1
leaq 0x1a72(%rip), %rsi      # 0xc5d4
leaq -0x4a8(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0xb2a0
movq -0x580(%rbp), %rsi
leaq -0x480(%rbp), %rdi
leaq -0x270(%rbp), %rdx
callq 0xb3d0
jmp 0xab91
leaq -0x480(%rbp), %rdi
callq 0x6be0
leaq -0x4a8(%rbp), %rdi
callq 0x6be0
jmp 0xabce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x4a8(%rbp), %rdi
callq 0x6be0
jmp 0xadc1
leaq -0x270(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x3210
movq -0x588(%rbp), %rsi
movq %rax, %rcx
leaq -0x4c8(%rbp), %rdi
movl $0x1, %edx
callq 0x32f0
jmp 0xabfe
leaq -0x290(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
movq %rsi, -0x598(%rbp)
callq 0x33c0
movq -0x598(%rbp), %rdi
callq 0x35d8
leaq -0x4e9(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x3540
movq -0x590(%rbp), %rdx
leaq 0x13e1(%rip), %rsi      # 0xc026
leaq -0x4e8(%rbp), %rdi
callq 0x62c0
jmp 0xac53
leaq -0x410(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
callq 0x3190
jmp 0xac68
leaq -0x4e8(%rbp), %rdi
callq 0x35d8
leaq -0x4e9(%rbp), %rdi
callq 0x3330
jmp 0xacdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xacb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x4e8(%rbp), %rdi
callq 0x35d8
leaq -0x4e9(%rbp), %rdi
callq 0x3330
jmp 0xadc1
leaq -0x410(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3290
jmp 0xacda
jmp 0xacdc
jmp 0xa9b2
leaq -0x218(%rbp), %rdi
callq 0x3090
jmp 0xacef
leaq 0x1330(%rip), %rsi      # 0xc026
leaq -0x290(%rbp), %rdi
callq 0xb130
movb %al, -0x599(%rbp)
jmp 0xad0a
movb -0x599(%rbp), %al
testb $0x1, %al
jne 0xad16
jmp 0xad8c
leaq -0x510(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x32e0
jmp 0xad2b
movq -0x528(%rbp), %rdi
addq $0x8, %rdi
leaq -0x290(%rbp), %rsi
callq 0x6840
movq %rax, -0x5a8(%rbp)
jmp 0xad4b
movq -0x5a8(%rbp), %rdi
leaq -0x510(%rbp), %rsi
callq 0x33c0
leaq -0x510(%rbp), %rdi
callq 0x35d8
jmp 0xad8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x510(%rbp), %rdi
callq 0x35d8
jmp 0xadc1
leaq -0x410(%rbp), %rdi
callq 0x30c0
leaq -0x290(%rbp), %rdi
callq 0x35d8
leaq -0x270(%rbp), %rdi
callq 0x35d8
leaq -0x218(%rbp), %rdi
callq 0x30d0
jmp 0xaf52
leaq -0x410(%rbp), %rdi
callq 0x30c0
leaq -0x290(%rbp), %rdi
callq 0x35d8
leaq -0x270(%rbp), %rdi
callq 0x35d8
leaq -0x218(%rbp), %rdi
callq 0x30d0
movl -0x224(%rbp), %eax
movl %eax, -0x5ac(%rbp)
movl $0x3, %ecx
cmpl %ecx, %eax
jne 0xae58
movq -0x220(%rbp), %rdi
callq 0x3140
movq %rax, -0x520(%rbp)
movl $0x28, %edi
callq 0x31b0
movq %rax, %rdi
movq %rdi, -0x5b8(%rbp)
movq -0x520(%rbp), %rsi
callq 0xb2f0
movq -0x5b8(%rbp), %rdi
leaq 0x6f39(%rip), %rsi      # 0x11d80
leaq -0x426e(%rip), %rdx     # 0x6be0
callq 0x3510
jmp 0xaf6f
movl -0x5ac(%rbp), %eax
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0xaeb9
movq -0x220(%rbp), %rdi
callq 0x3140
movq %rax, -0x518(%rbp)
movl $0x28, %edi
callq 0x31b0
movq %rax, %rdi
movq %rdi, -0x5c0(%rbp)
movq -0x518(%rbp), %rsi
callq 0xb340
movq -0x5c0(%rbp), %rdi
leaq 0x6ed8(%rip), %rsi      # 0x11d80
leaq -0x42cf(%rip), %rdx     # 0x6be0
callq 0x3510
jmp 0xaf6f
movq -0x220(%rbp), %rdi
callq 0x3140
movl $0x28, %edi
callq 0x31b0
movq %rax, %rdi
movq %rdi, -0x5c8(%rbp)
leaq 0x1725(%rip), %rsi      # 0xc605
callq 0xb2a0
movq -0x5c8(%rbp), %rdi
leaq 0x6e8d(%rip), %rsi      # 0x11d80
leaq -0x431a(%rip), %rdx     # 0x6be0
callq 0x3510
jmp 0xaf6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x3500
jmp 0xaf1a
jmp 0xaf5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x3500
jmp 0xaf35
jmp 0xaf5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x3500
jmp 0xaf50
jmp 0xaf5b
addq $0x5d0, %rsp            # imm = 0x5D0
popq %rbp
retq
movq -0x220(%rbp), %rdi
callq 0x3530
movq %rax, %rdi
callq 0x6520
nop