// File: jianxinzhou[P]Smart/./include/MyCache.h
// Function: MyCache::read_from_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void read_from_file(const std::string &fileName)
        {
            std::ifstream infile(fileName.c_str());
            if(!infile)
            {
                std::cout << "cache file: " << fileName << std::endl ; 
                throw std::runtime_error("open cache file fail !");
            }
            std::string query , result;
            while(infile >> query >> result)
            {
                hashmap_.insert(std::make_pair(query, result));
            }
            infile.close();
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x310, %rsp            # imm = 0x310
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x3150
movq %rax, %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x3560
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x3180
movb %al, -0x2b9(%rbp)
jmp 0xd93b
movb -0x2b9(%rbp), %al
testb $0x1, %al
jne 0xd94a
jmp 0xda12
movq 0xf67f(%rip), %rdi      # 0x1cfd0
leaq 0x5882(%rip), %rsi      # 0x131da
callq 0x32c0
movq %rax, -0x2d0(%rbp)
jmp 0xd966
movq -0x2d0(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x32a0
movq %rax, -0x2d8(%rbp)
jmp 0xd97f
movq -0x2d8(%rbp), %rdi
movq 0xf62b(%rip), %rsi      # 0x1cfb8
callq 0x3310
jmp 0xd994
movl $0x10, %edi
callq 0x31a0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x2e0(%rbp)
leaq 0x5835(%rip), %rsi      # 0x131e7
callq 0x3130
jmp 0xd9b9
movq -0x2e0(%rbp), %rdi
movq 0xf629(%rip), %rsi      # 0x1cff0
movq 0xf5fa(%rip), %rdx      # 0x1cfc8
callq 0x3510
jmp 0xdba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xdb8d
movq -0x2e0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x3230
jmp 0xdb8d
leaq -0x248(%rbp), %rdi
callq 0x3420
leaq -0x268(%rbp), %rdi
callq 0x3420
leaq -0x218(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x33c0
movq %rax, -0x2e8(%rbp)
jmp 0xda46
movq -0x2e8(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x33c0
movq %rax, -0x2f0(%rbp)
jmp 0xda62
movq -0x2f0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x33b0
movb %al, -0x2f1(%rbp)
jmp 0xda80
movb -0x2f1(%rbp), %al
testb $0x1, %al
jne 0xda8f
jmp 0xdb3a
movq -0x2c8(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
leaq -0x268(%rbp), %rdx
callq 0x4d80
jmp 0xdab9
movq -0x300(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0xddb0
movb %dl, -0x309(%rbp)
movq %rax, -0x308(%rbp)
jmp 0xdadb
movb -0x309(%rbp), %al
movq -0x308(%rbp), %rcx
movq %rcx, -0x2b8(%rbp)
movb %al, -0x2b0(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x4dc0
jmp 0xda2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xdb75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x4dc0
jmp 0xdb75
leaq -0x218(%rbp), %rdi
callq 0x30c0
jmp 0xdb48
leaq -0x268(%rbp), %rdi
callq 0x31f0
leaq -0x248(%rbp), %rdi
callq 0x31f0
leaq -0x218(%rbp), %rdi
callq 0x30f0
addq $0x310, %rsp            # imm = 0x310
popq %rbp
retq
leaq -0x268(%rbp), %rdi
callq 0x31f0
leaq -0x248(%rbp), %rdi
callq 0x31f0
leaq -0x218(%rbp), %rdi
callq 0x30f0
movq -0x220(%rbp), %rdi
callq 0x3530
nopw %cs:(%rax,%rax)
nop