// File: yuanboli233[P]interdyck_graph_reduce/./SummaryEdge.h
// Function: SummaryGraph::readNodes[abi:cxx11]()
unordered_map<string, unsigned> readNodes(){
        unordered_map<string, unsigned> result;
        unsigned nid = 0;

        string line;
        ifstream in(filename.c_str(), ifstream::in);

        while(getline(in, line)){
            if(!isEdge(line)){
                continue;
            } 
            string from, to;
            pair<string, string> nodesstr = getNodePair(line);
            from = nodesstr.first;
            to = nodesstr.second;

            if(result.find(from) == result.end()){
                result[from] = nid;
                unsigned orignodeid;
                stringstream nodestr(from);
                nodestr >> orignodeid;
                node2orignodeid[nid] = orignodeid;
                // cout << "node " << nid << " has original id " << orignodeid << " == " << from << endl;
                nid ++;
            }

            if(result.find(to) == result.end()){
                result[to] = nid;
                unsigned orignodeid;
                stringstream nodestr(to);
                nodestr >> orignodeid;
                node2orignodeid[nid] = orignodeid;
                // cout << "node " << nid << " has original id " << orignodeid << " == " << to << endl;
                nid ++;
            }
        }
        return result;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6b0, %rsp            # imm = 0x6B0
movq %rdi, -0x648(%rbp)
movq %rdi, %rax
movq %rax, -0x640(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x638(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x9d70
movl $0x0, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3310
movq -0x638(%rbp), %rdi
addq $0x88, %rdi
callq 0x30d0
movq %rax, %rsi
leaq -0x240(%rbp), %rdi
movl $0x8, %edx
callq 0x33c0
jmp 0x8dd1
jmp 0x8dd3
leaq -0x240(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x3070
movq %rax, -0x650(%rbp)
jmp 0x8dec
movq -0x650(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x32d0
movb %al, -0x651(%rbp)
jmp 0x8e0a
movb -0x651(%rbp), %al
testb $0x1, %al
jne 0x8e19
jmp 0x920a
movq -0x638(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x9d90
movb %al, -0x652(%rbp)
jmp 0x8e31
movb -0x652(%rbp), %al
testb $0x1, %al
jne 0x8e6d
jmp 0x8e3d
jmp 0x8dd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
jmp 0x9237
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
jmp 0x922b
leaq -0x270(%rbp), %rdi
callq 0x3310
leaq -0x290(%rbp), %rdi
callq 0x3310
leaq -0x2f0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x30e0
jmp 0x8e97
movq -0x638(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
leaq -0x2f0(%rbp), %rdx
callq 0x9dd0
jmp 0x8eb3
leaq -0x2f0(%rbp), %rdi
callq 0x3408
leaq -0x270(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x3030
jmp 0x8ed4
leaq -0x2b0(%rbp), %rsi
leaq -0x290(%rbp), %rdi
callq 0x3030
jmp 0x8ee9
movq -0x648(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0xa040
movq %rax, -0x660(%rbp)
jmp 0x8f05
movq -0x648(%rbp), %rdi
movq -0x660(%rbp), %rax
movq %rax, -0x2f8(%rbp)
callq 0xa070
movq %rax, -0x300(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0xa010
testb $0x1, %al
jne 0x8f42
jmp 0x907c
movq -0x648(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, -0x66c(%rbp)
leaq -0x270(%rbp), %rsi
callq 0xa0a0
movq %rax, -0x668(%rbp)
jmp 0x8f67
movq -0x668(%rbp), %rax
movl -0x66c(%rbp), %ecx
movl %ecx, (%rax)
movl $0x10, %edi
movl $0x8, %esi
callq 0xa0d0
movl %eax, -0x670(%rbp)
jmp 0x8f8d
movl -0x670(%rbp), %edx
leaq -0x490(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x3360
jmp 0x8fa8
leaq -0x490(%rbp), %rdi
leaq -0x304(%rbp), %rsi
callq 0x3050
jmp 0x8fbd
movq -0x638(%rbp), %rdi
movl -0x304(%rbp), %eax
movl %eax, -0x67c(%rbp)
leaq -0x18(%rbp), %rsi
callq 0x5270
movq %rax, -0x678(%rbp)
jmp 0x8fe2
movq -0x678(%rbp), %rax
movl -0x67c(%rbp), %ecx
movl %ecx, (%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x3180
jmp 0x907c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
jmp 0x91f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x3408
jmp 0x91f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
jmp 0x91e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x3180
jmp 0x91e4
movq -0x648(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0xa040
movq %rax, -0x688(%rbp)
jmp 0x9098
movq -0x648(%rbp), %rdi
movq -0x688(%rbp), %rax
movq %rax, -0x498(%rbp)
callq 0xa070
movq %rax, -0x4a0(%rbp)
leaq -0x498(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0xa010
testb $0x1, %al
jne 0x90d5
jmp 0x91bb
movq -0x648(%rbp), %rdi
movl -0x18(%rbp), %eax
movl %eax, -0x694(%rbp)
leaq -0x290(%rbp), %rsi
callq 0xa0a0
movq %rax, -0x690(%rbp)
jmp 0x90fa
movq -0x690(%rbp), %rax
movl -0x694(%rbp), %ecx
movl %ecx, (%rax)
movl $0x10, %edi
movl $0x8, %esi
callq 0xa0d0
movl %eax, -0x698(%rbp)
jmp 0x9120
movl -0x698(%rbp), %edx
leaq -0x630(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x3360
jmp 0x913b
leaq -0x630(%rbp), %rdi
leaq -0x4a4(%rbp), %rsi
callq 0x3050
jmp 0x9150
movq -0x638(%rbp), %rdi
movl -0x4a4(%rbp), %eax
movl %eax, -0x6a4(%rbp)
leaq -0x18(%rbp), %rsi
callq 0x5270
movq %rax, -0x6a0(%rbp)
jmp 0x9175
movq -0x6a0(%rbp), %rax
movl -0x6a4(%rbp), %ecx
movl %ecx, (%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x3180
jmp 0x91bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x248(%rbp)
movl %eax, -0x24c(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x3180
jmp 0x91e4
leaq -0x2d0(%rbp), %rdi
callq 0xa0f0
leaq -0x290(%rbp), %rdi
callq 0x3408
leaq -0x270(%rbp), %rdi
callq 0x3408
jmp 0x8dd3
leaq -0x2d0(%rbp), %rdi
callq 0xa0f0
leaq -0x290(%rbp), %rdi
callq 0x3408
leaq -0x270(%rbp), %rdi
callq 0x3408
jmp 0x922b
movb $0x1, -0x11(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x3090
leaq -0x38(%rbp), %rdi
callq 0x3408
testb $0x1, -0x11(%rbp)
jne 0x925a
jmp 0x924e
leaq -0x240(%rbp), %rdi
callq 0x3090
leaq -0x38(%rbp), %rdi
callq 0x3408
movq -0x648(%rbp), %rdi
callq 0x9d50
jmp 0x926a
movq -0x648(%rbp), %rdi
callq 0x9d50
movq -0x640(%rbp), %rax
addq $0x6b0, %rsp            # imm = 0x6B0
popq %rbp
retq
movq -0x248(%rbp), %rdi
callq 0x3390
nopw %cs:(%rax,%rax)