// File: /workspace/github_cpp_makefile_star2_O1/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 0x12f59(%rip), %r14     # 0x17fd8
leaq 0xd38c(%rip), %rsi      # 0x12412
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 0x2b0(%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 0x328(%rsp), %rdi
callq 0x30a0
testb %al, %al
je 0x553b
movq 0x2b0(%rsp), %rax
movq -0x18(%rax), %rcx
testb $0x2, 0x2d0(%rsp,%rcx)
jne 0x552c
addq $-0x18, %rax
leaq 0x128(%rsp), %r12
leaq 0x80(%r12), %r13
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 0x54fa
xorpd %xmm0, %xmm0
movapd %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x58(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0xb203
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 0xb732
movq %rbp, %r15
movq %rbp, %rdi
callq 0xb2f9
movl %eax, %ebp
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x520e
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 0xb732
movq %rbp, %rdi
callq 0xb2f9
movl %eax, %ebp
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x5266
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 0xb732
movq $0x0, 0x10(%rsp)
movq %r12, %rdi
callq 0x3200
movq %r15, %rbp
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
leaq 0x138(%rsp), %rdi
callq 0x3340
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
callq 0x31c0
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq %r12, %rdi
movq 0x12cbd(%rip), %rsi     # 0x17fa8
callq 0x3220
movq %r13, %rdi
callq 0x30e0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x5312
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 0xb732
movq $0x0, 0x10(%rsp)
movq %r12, %rdi
callq 0x3200
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
leaq 0x138(%rsp), %rdi
callq 0x3340
movq %r12, %rdi
leaq 0x10(%rsp), %rsi
callq 0x31c0
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movq %r12, %rdi
movq 0x12c15(%rip), %rsi     # 0x17fa8
callq 0x3220
movq %r13, %rdi
callq 0x30e0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x53b7
callq 0x32c0
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movl 0xc(%rsp), %eax
movslq 0x8(%rsp), %rcx
cmpl %ecx, %eax
je 0x54f0
movslq %eax, %rdx
movq 0xd8(%rbx), %rsi
movsd (%rsi,%rdx,8), %xmm0
addsd 0xcd65(%rip), %xmm0     # 0x12150
movsd %xmm0, (%rsi,%rdx,8)
leaq 0x12f51(%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 0x5418
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x5422
leaq 0xc(%rsp), %rdx
callq 0xbdaa
leaq 0xf8(%rsp), %rdi
leaq 0xc(%rsp), %rsi
callq 0xbfa4
leaq 0xf8(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xbfa4
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
cmpq %rax, 0x8(%rcx)
je 0x560f
movq (%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 0x548b
movsd 0x50(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x5495
leaq 0x50(%rsp), %rdx
callq 0xc0b4
movq 0xae8(%rbx), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
subq %rax, %rdx
sarq $0x3, %rdx
cmpq $0x2, %rdx
jb 0x5603
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 0x54e6
movsd 0x48(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rdi)
jmp 0x54f0
leaq 0x48(%rsp), %rdx
callq 0xc0b4
leaq 0x20(%rsp), %rdi
callq 0xb404
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x550e
callq 0x32c0
movq 0x2b0(%rsp), %rax
movq -0x18(%rax), %rcx
addq $-0x18, %rax
testb $0x2, 0x2d0(%rsp,%rcx)
je 0x515a
leaq 0x2b0(%rsp), %rdi
callq 0x3090
jmp 0x5591
movq 0x12a96(%rip), %rdi     # 0x17fd8
leaq 0xced7(%rip), %rsi      # 0x12420
movl $0x1c, %edx
callq 0x3340
movq 0x20(%rbx), %rsi
movq 0x28(%rbx), %rdx
movq 0x12a76(%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 0x12a40(%rip), %rbx     # 0x17fd8
leaq 0xce9e(%rip), %rsi      # 0x1243d
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 0x12a0e(%rip), %rdi     # 0x17fd8
callq 0x3030
movq %rax, %rdi
callq 0x31e0
leaq 0xf8(%rsp), %rdi
callq 0xb6b0
leaq 0x2b0(%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 0x5611
xorl %edx, %edx
leaq 0xcf7f(%rip), %rdi      # 0x12597
movq 0x40(%rsp), %rsi
xorl %eax, %eax
callq 0x3490
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
jmp 0x56e0
movq %rax, %rbx
jmp 0x569d
jmp 0x56ec
jmp 0x56ec
jmp 0x56ec
movq %rax, %rbx
jmp 0x56d0
jmp 0x56ec
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
jmp 0x56e0
jmp 0x56ec
movq %rax, %rbx
jmp 0x570d
movq %rax, %rbx
movq 0x12925(%rip), %rsi     # 0x17fa8
leaq 0x128(%rsp), %rdi
callq 0x3220
leaq 0x1a8(%rsp), %rdi
callq 0x30e0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
jmp 0x56e0
movq %rax, %rbx
movq 0x128f2(%rip), %rsi     # 0x17fa8
leaq 0x128(%rsp), %rdi
callq 0x3220
leaq 0x1a8(%rsp), %rdi
callq 0x30e0
movq 0x98(%rsp), %rdi
leaq 0xa8(%rsp), %rax
cmpq %rax, %rdi
je 0x56ef
callq 0x32c0
jmp 0x56ef
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xb404
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x570d
callq 0x32c0
leaq 0xf8(%rsp), %rdi
callq 0xb6b0
leaq 0x2b0(%rsp), %rdi
callq 0x30b0
movq %rbx, %rdi
callq 0x35c0
movq %rax, %rbx
jmp 0x56f9