// File: /workspace/github_cpp_makefile_star2_O3/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 0x4275(%rip), %rsi      # 0xdcd0
leaq 0x427d(%rip), %rdx      # 0xdcdf
movq %rsp, %rdi
callq 0xa6dc
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4265(%rip), %rsi      # 0xdce0
leaq 0x4262(%rip), %rdx      # 0xdce4
leaq 0x68(%rsp), %rdi
callq 0xa6dc
testq %r14, %r14
je 0x9c92
movq 0x38(%r14), %rsi
addq $0x10, %rsi
movq %rsp, %rdi
callq 0x40d0
testl %eax, %eax
je 0x9ac3
movq 0x38(%r14), %rsi
addq $0x10, %rsi
leaq 0x68(%rsp), %rdi
callq 0x40d0
testl %eax, %eax
jne 0x9c92
movq 0x38(%r14), %rsi
addq $0x10, %rsi
movq %rsp, %rdi
callq 0x40d0
testl %eax, %eax
je 0x9b1c
leaq 0x28(%rbx), %rdi
movq 0x30(%rbx), %rdx
leaq 0x376f(%rip), %rcx      # 0xd255
movl $0x4, %r8d
xorl %esi, %esi
callq 0x4390
leaq 0x48(%rbx), %rdi
movq 0x50(%rbx), %rdx
leaq 0x3753(%rip), %rcx      # 0xd255
movl $0x4, %r8d
xorl %esi, %esi
callq 0x4390
movq $0x0, 0x68(%rbx)
jmp 0x9c53
leaq 0x41e7(%rip), %rsi      # 0xdd0a
movq %r14, %rdi
callq 0x5546
leaq 0x88(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %rax, %rsi
callq 0xa52e
leaq 0x41c9(%rip), %rsi      # 0xdd10
movq %r14, %rdi
callq 0x5546
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
movq %rax, %rsi
callq 0xa52e
leaq 0x41b1(%rip), %rsi      # 0xdd19
movq %r14, %rdi
callq 0x5546
leaq 0x28(%rsp), %rdi
leaq 0x20(%rsp), %rdx
movq %rax, %rsi
callq 0xa52e
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 0x9cc0
movl (%r14), %eax
testl %eax, %eax
leaq 0x10(%rsp), %r15
movq %rbp, %r12
je 0x9bf4
cmpl $0x22, %eax
jne 0x9bf7
leaq 0x41e7(%rip), %rdi      # 0xddd6
callq 0x4340
movl %r13d, (%r14)
movsd %xmm0, 0x68(%rbx)
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c17
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c32
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c53
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x4250
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x9c6a
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x4250
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x9c80
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 0xa32f(%rip), %rdi      # 0x13fc8
leaq 0x4045(%rip), %rsi      # 0xdce5
movl $0x24, %edx
callq 0x42a0
movq 0xa317(%rip), %rdi      # 0x13fc8
callq 0x4140
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x42c0
leaq 0x410f(%rip), %rdi      # 0xddd6
callq 0x4170
jmp 0x9cce
movq %r12, %rbp
movq %rax, %rbx
jmp 0x9d10
jmp 0x9cd8
movq %r12, %rbp
movq %rax, %rbx
jmp 0x9d2b
jmp 0x9d53
jmp 0x9d53
movq %rax, %rbx
cmpl $0x0, (%r14)
jne 0x9cf5
movl %r13d, (%r14)
jmp 0x9cf5
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d10
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d2b
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x4250
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9d59
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x4250
jmp 0x9d59
movq %rax, %rbx
jmp 0x9d70
movq %r12, %rbp
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9d70
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x4250
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x9d8b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x4250
movq %rbx, %rdi
callq 0x4410
nop