// File: /workspace/github_cpp_makefile_star2_O1/muk343[P]pmml/GraphGenerator.cpp
// Function: GraphGenerator::populatePredicate(Node*, TiXmlElement*)
void GraphGenerator::populatePredicate(Node* node, TiXmlElement* pElement) 
    {
        //Just for doubleCheck
        string nodeTag = "SimplePredicate";
        string trueTag = "True";
        if(!pElement || (nodeTag.compare(pElement->Value()) != 0 && trueTag.compare(pElement->Value()) !=0 )) 
        {
            cout<<"Expected predicate but didn't get it"<<endl;
            exit(-1);
            //nodeToReturn = getNodeDataFromThisNode
            //Add to the vector here
        }

        if (nodeTag.compare(pElement->Value()) == 0) {
            string field = pElement->Attribute("field");
            string currOperator = pElement->Attribute("operator");
            string value = pElement->Attribute("value");

            node->predicate_feature = field;
            node->predicate_operator = currOperator;
            node->predicate_value = stod(value);
            //cout<<"The loaded predicate values are field: "<<field<<" "<<" operator: "<<currOperator<<" value:  "<<value;    
        } else {
            node->predicate_feature = "true";
            node->predicate_operator = "true";
            node->predicate_value = 0.0;
        }

    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rdx, %r14
movq %rsi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4094(%rip), %rsi      # 0xdcbb
leaq 0x409c(%rip), %rdx      # 0xdcca
movq %rsp, %rdi
callq 0xa888
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4084(%rip), %rsi      # 0xdccb
leaq 0x4081(%rip), %rdx      # 0xdccf
leaq 0x68(%rsp), %rdi
callq 0xa888
testq %r14, %r14
je 0x9e5e
movq 0x38(%r14), %rsi
addq $0x10, %rsi
movq %rsp, %rdi
callq 0x40d0
testl %eax, %eax
je 0x9c8f
movq 0x38(%r14), %rsi
addq $0x10, %rsi
leaq 0x68(%rsp), %rdi
callq 0x40d0
testl %eax, %eax
jne 0x9e5e
movq 0x38(%r14), %rsi
addq $0x10, %rsi
movq %rsp, %rdi
callq 0x40d0
testl %eax, %eax
je 0x9ce8
leaq 0x28(%rbx), %rdi
movq 0x30(%rbx), %rdx
leaq 0x35a3(%rip), %rcx      # 0xd255
movl $0x4, %r8d
xorl %esi, %esi
callq 0x4390
leaq 0x48(%rbx), %rdi
movq 0x50(%rbx), %rdx
leaq 0x3587(%rip), %rcx      # 0xd255
movl $0x4, %r8d
xorl %esi, %esi
callq 0x4390
movq $0x0, 0x68(%rbx)
jmp 0x9e1f
leaq 0x4006(%rip), %rsi      # 0xdcf5
movq %r14, %rdi
callq 0x5590
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %rax, %rsi
callq 0xa6f0
leaq 0x3fe8(%rip), %rsi      # 0xdcfb
movq %r14, %rdi
callq 0x5590
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rax, %rsi
callq 0xa6f0
leaq 0x3fd0(%rip), %rsi      # 0xdd04
movq %r14, %rdi
callq 0x5590
leaq 0x28(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %rax, %rsi
callq 0xa6f0
movq %r12, %rbp
leaq 0x28(%rbx), %rdi
leaq 0x88(%rsp), %rsi
callq 0x4160
leaq 0x48(%rbx), %rdi
leaq 0x48(%rsp), %rsi
callq 0x4160
movq 0x28(%rsp), %r15
callq 0x4070
movq %rax, %r14
movl (%rax), %r13d
movl $0x0, (%rax)
leaq 0x20(%rsp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x41c0
cmpq %r15, (%r12)
je 0x9e8c
movl (%r14), %eax
testl %eax, %eax
leaq 0x10(%rsp), %r15
movq %rbp, %r12
je 0x9dc0
cmpl $0x22, %eax
jne 0x9dc3
leaq 0x4006(%rip), %rdi      # 0xddc1
callq 0x4340
movl %r13d, (%r14)
movsd %xmm0, 0x68(%rbx)
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9de3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9dfe
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9e1f
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x4250
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x9e36
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x4250
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x9e4c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4250
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xa163(%rip), %rdi      # 0x13fc8
leaq 0x3e64(%rip), %rsi      # 0xdcd0
movl $0x24, %edx
callq 0x42a0
movq 0xa14b(%rip), %rdi      # 0x13fc8
callq 0x4140
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x42c0
leaq 0x3f2e(%rip), %rdi      # 0xddc1
callq 0x4170
jmp 0x9e9a
movq %r12, %rbp
movq %rax, %rbx
jmp 0x9edc
jmp 0x9ea4
movq %r12, %rbp
movq %rax, %rbx
jmp 0x9ef7
jmp 0x9f1f
jmp 0x9f1f
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x9ec1
movl %r13d, (%r14)
jmp 0x9ec1
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9edc
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ef7
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f25
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x4250
jmp 0x9f25
movq %rax, %rbx
jmp 0x9f3c
movq %r12, %rbp
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9f3c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x4250
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x9f57
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4250
movq %rbx, %rdi
callq 0x4410
nop