// File: /workspace/github_cpp_makefile_star2_O3/JenTus[P]TCEM/src_TCEM/allocator.cc
// Function: Cide::allocator::readTICGraph()
void allocator::readTICGraph() {
        
        //string probGraphFile = opt->getValue("probGraphFile");
        cout << "Reading file " << probGraphFile << endl;
        ifstream myfile (probGraphFile.c_str(), ios::in);
        //double *itemProbs; //item-specific influence probabilities

        int nrEdges = 0;
        set<int> nodes; // for control
        
        if (myfile.is_open()) {
            while (! myfile.eof() )	{
                std::string line;
                getline (myfile,line);
                if (line.empty()) continue;

                std::vector<std::string> nodeids;
                split1(line, nodeids);
                 int u1 = strToInt(nodeids[0]);
                 int u2 = strToInt(nodeids[1]);
                double u3 = strToDouble(nodeids[2]); // the probability
                double u4 = strToDouble(nodeids[3]);
                
                if (u1 == u2)
                    continue;

                nodeDegree[u1] = nodeDegree[u1] + 1.0;

                nrEdges++;
                
                graphT[u2].push_back(u1); //insert to the transposed graph
                
                // for control
                nodes.insert(u1);
                nodes.insert(u2);

                rcList->at(0)->probT[u2].push_back(u3); // insert the probabilty
                rcList->at(1)->probT[u2].push_back(u4);

            }


            myfile.close();
        }
        
        else
            cout << "Can't open input graph file " << probGraphFile << endl;
        
        cout << "graph import complete " << endl;
        
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4b8, %rsp            # imm = 0x4B8
movq %rdi, %rbx
movq 0x12f71(%rip), %r14     # 0x17fd8
leaq 0xd39c(%rip), %rsi      # 0x1240a
movl $0xd, %edx
movq %r14, %rdi
callq 0x3340
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq %r14, %rdi
callq 0x3340
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31e0
movq 0x20(%rbx), %rsi
leaq 0x128(%rsp), %r14
movq %r14, %rdi
movl $0x8, %edx
callq 0x35f0
leaq 0x100(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
leaq 0x1a0(%rsp), %rdi
callq 0x30a0
testb %al, %al
je 0x5525
movq 0x128(%rsp), %rax
movq -0x18(%rax), %rcx
testb $0x2, 0x148(%rsp,%rcx)
jne 0x5516
addq $-0x18, %rax
leaq 0x330(%rsp), %r13
leaq 0x80(%r13), %r15
leaq 0xd8(%rsp), %rbp
movq $0x0, 0x40(%rsp)
leaq 0x68(%rsp), %rcx
movq %rcx, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movb $0x0, 0x68(%rsp)
movq (%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %edx
movq %r14, %rdi
leaq 0x58(%rsp), %rsi
callq 0x3600
cmpq $0x0, 0x60(%rsp)
je 0x54e4
xorpd %xmm0, %xmm0
movapd %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0xb1a5
movq 0x20(%rsp), %rax
leaq 0xe8(%rsp), %rcx
movq %rcx, 0xd8(%rsp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0xb6e0
movq %rbp, %r12
movq %rbp, %rdi
callq 0xb29b
movl %eax, %ebp
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x51f5
callq 0x32c0
movl %ebp, 0xc(%rsp)
movq 0x20(%rsp), %rax
leaq 0xc8(%rsp), %rcx
movq %rcx, 0xb8(%rsp)
movq 0x20(%rax), %rsi
movq 0x28(%rax), %rdx
addq %rsi, %rdx
leaq 0xb8(%rsp), %rbp
movq %rbp, %rdi
callq 0xb6e0
movq %rbp, %rdi
callq 0xb29b
movl %eax, %ebp
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x524d
callq 0x32c0
movl %ebp, 0x8(%rsp)
movq 0x20(%rsp), %rax
leaq 0xa8(%rsp), %rcx
movq %rcx, 0x98(%rsp)
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
addq %rsi, %rdx
leaq 0x98(%rsp), %rdi
callq 0xb6e0
movq $0x0, 0x10(%rsp)
movq %r13, %rdi
callq 0x3200
movq %r12, %rbp
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
leaq 0x340(%rsp), %rdi
callq 0x3340
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x31c0
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq %r13, %rdi
movq 0x12cd6(%rip), %rsi     # 0x17fa8
callq 0x3220
movq %r15, %rdi
callq 0x30e0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x52f9
callq 0x32c0
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movq 0x20(%rsp), %rax
leaq 0x88(%rsp), %rcx
movq %rcx, 0x78(%rsp)
movq 0x60(%rax), %rsi
movq 0x68(%rax), %rdx
addq %rsi, %rdx
leaq 0x78(%rsp), %rdi
callq 0xb6e0
movq $0x0, 0x10(%rsp)
movq %r13, %rdi
callq 0x3200
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
leaq 0x340(%rsp), %rdi
callq 0x3340
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x31c0
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq %r13, %rdi
movq 0x12c2e(%rip), %rsi     # 0x17fa8
callq 0x3220
movq %r15, %rdi
callq 0x30e0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x539e
callq 0x32c0
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0xc(%rsp), %eax
movslq 0x8(%rsp), %rcx
cmpl %ecx, %eax
je 0x54da
movslq %eax, %rdx
movq 0xd8(%rbx), %rsi
movsd (%rsi,%rdx,8), %xmm0
addsd 0xcd7e(%rip), %xmm0     # 0x12150
movsd %xmm0, (%rsi,%rdx,8)
leaq 0x12f6a(%rip), %rdx     # 0x18348
movq (%rdx), %rdx
leaq (%rcx,%rcx,2), %rcx
leaq (%rdx,%rcx,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x53ff
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x5409
leaq 0xc(%rsp), %rdx
callq 0xbd60
leaq 0xf8(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0xbf5a
leaq 0xf8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xbf5a
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
cmpq %rax, %rdx
je 0x55f9
movq (%rax), %rcx
movslq 0x8(%rsp), %rsi
movq (%rcx), %rcx
leaq (%rsi,%rsi,2), %rsi
leaq (%rcx,%rsi,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x5475
movsd 0x50(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x548d
leaq 0x50(%rsp), %rdx
callq 0xc068
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq $0x2, %rdx
jb 0x55ed
movq 0x8(%rax), %rax
movslq 0x8(%rsp), %rcx
movq (%rax), %rax
leaq (%rcx,%rcx,2), %rcx
leaq (%rax,%rcx,8), %rdi
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
je 0x54d0
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x54da
leaq 0x48(%rsp), %rdx
callq 0xc068
leaq 0x20(%rsp), %rdi
callq 0xb3a6
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x54f8
callq 0x32c0
movq 0x128(%rsp), %rax
movq -0x18(%rax), %rcx
addq $-0x18, %rax
testb $0x2, 0x148(%rsp,%rcx)
je 0x5141
leaq 0x128(%rsp), %rdi
callq 0x3090
jmp 0x557b
movq 0x12aac(%rip), %rdi     # 0x17fd8
leaq 0xcee5(%rip), %rsi      # 0x12418
movl $0x1c, %edx
callq 0x3340
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq 0x12a8c(%rip), %rdi     # 0x17fd8
callq 0x3340
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31e0
movq 0x12a56(%rip), %rbx     # 0x17fd8
leaq 0xceac(%rip), %rsi      # 0x12435
movl $0x16, %edx
movq %rbx, %rdi
callq 0x3340
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x32d0
movsbl %al, %esi
movq 0x12a24(%rip), %rdi     # 0x17fd8
callq 0x3030
movq %rax, %rdi
callq 0x31e0
leaq 0xf8(%rsp), %rdi
callq 0xb65e
leaq 0x128(%rsp), %rdi
callq 0x30b0
addq $0x4b8, %rsp            # imm = 0x4B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, %eax
movq %rax, 0x40(%rsp)
jmp 0x55fb
xorl %edx, %edx
leaq 0xcf8d(%rip), %rdi      # 0x1258f
movq 0x40(%rsp), %rsi
xorl %eax, %eax
callq 0x3490
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
jmp 0x56c0
movq %rax, %rbx
jmp 0x5682
jmp 0x56cc
jmp 0x56cc
jmp 0x56cc
movq %rax, %rbx
jmp 0x56b0
jmp 0x56cc
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
jmp 0x56c0
jmp 0x56cc
movq %rax, %rbx
jmp 0x56ed
movq %rax, %rbx
movq 0x1293b(%rip), %rsi     # 0x17fa8
leaq 0x330(%rsp), %rdi
callq 0x3220
movq %r15, %rdi
callq 0x30e0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
jmp 0x56c0
movq %rax, %rbx
movq 0x1290d(%rip), %rsi     # 0x17fa8
leaq 0x330(%rsp), %rdi
callq 0x3220
movq %r15, %rdi
callq 0x30e0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x56cf
callq 0x32c0
jmp 0x56cf
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xb3a6
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x56ed
callq 0x32c0
leaq 0xf8(%rsp), %rdi
callq 0xb65e
leaq 0x128(%rsp), %rdi
callq 0x30b0
movq %rbx, %rdi
callq 0x35c0
movq %rax, %rbx
jmp 0x56d9