// File: zeeev[P]DASVC/src/annotate.cpp
// Function: loadFai(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, long, 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, long>>>&)
bool loadFai(std::string & fastaName,
             std::map<std::string, long int> & dat)
{
    std::string fai = fastaName + ".fai";
    std::string line;
    std::ifstream myfile (fai);

    if(myfile){
        while(getline(myfile, line)){
            std::vector<std::string> splitDat = split(line, "\t");
            if(splitDat.size() < 2){
                return false;
            }
            dat[splitDat[0]] = atol(splitDat[1].c_str());
        }
    }
    else{
        return false;
    }

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x6f915(%rip), %rdx     # 0x80163
leaq -0x38(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x125c0
leaq -0x58(%rbp), %rdi
callq 0x6820
movq -0x2b8(%rbp), %rsi
leaq -0x260(%rbp), %rdi
movl $0x8, %edx
callq 0x6940
jmp 0x10881
movq -0x260(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x260(%rbp,%rax), %rdi
callq 0x6730
movb %al, -0x2b9(%rbp)
jmp 0x108a1
movb -0x2b9(%rbp), %al
testb $0x1, %al
jne 0x108b0
jmp 0x10aae
jmp 0x108b2
leaq -0x260(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x6100
movq %rax, -0x2c8(%rbp)
jmp 0x108cb
movq -0x2c8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x6730
movb %al, -0x2c9(%rbp)
jmp 0x108e9
movb -0x2c9(%rbp), %al
testb $0x1, %al
jne 0x108f8
jmp 0x10aac
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0x6a20
movq -0x2d8(%rbp), %rdx
leaq 0x7045e(%rip), %rsi     # 0x80d77
leaq -0x2a8(%rbp), %rdi
callq 0x11570
jmp 0x10927
leaq -0x288(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x2a8(%rbp), %rdx
callq 0x212c0
jmp 0x10940
leaq -0x2a8(%rbp), %rdi
callq 0x6ba8
leaq -0x2a9(%rbp), %rdi
callq 0x6600
leaq -0x288(%rbp), %rdi
callq 0x12640
cmpq $0x2, %rax
jae 0x109f2
movb $0x0, -0x1(%rbp)
movl $0x1, -0x2b0(%rbp)
jmp 0x10a6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x10b04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x10af8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x109e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x6ba8
leaq -0x2a9(%rbp), %rdi
callq 0x6600
jmp 0x10af8
leaq -0x288(%rbp), %rdi
movq %rdi, -0x2f8(%rbp)
movl $0x1, %esi
callq 0x12660
movq %rax, %rdi
callq 0x61f0
movq %rax, %rdi
callq 0x66e0
movq -0x2f8(%rbp), %rdi
movq %rax, -0x2f0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x2e8(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0x12660
movq -0x2e8(%rbp), %rdi
movq %rax, %rsi
callq 0x12060
movq %rax, -0x2e0(%rbp)
jmp 0x10a54
movq -0x2e0(%rbp), %rax
movq -0x2f0(%rbp), %rcx
movq %rcx, (%rax)
movl $0x0, -0x2b0(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x12680
movl -0x2b0(%rbp), %eax
testl %eax, %eax
jne 0x10acc
jmp 0x10a87
jmp 0x108b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x12680
jmp 0x10af8
jmp 0x10abe
movb $0x0, -0x1(%rbp)
movl $0x1, -0x2b0(%rbp)
jmp 0x10acc
movb $0x1, -0x1(%rbp)
movl $0x1, -0x2b0(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x6150
leaq -0x58(%rbp), %rdi
callq 0x6ba8
leaq -0x38(%rbp), %rdi
callq 0x6ba8
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
leaq -0x260(%rbp), %rdi
callq 0x6150
leaq -0x58(%rbp), %rdi
callq 0x6ba8
leaq -0x38(%rbp), %rdi
callq 0x6ba8
movq -0x268(%rbp), %rdi
callq 0x6a10
nopw %cs:(%rax,%rax)