// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/rise.c
// Function: create_rule_from_instance
Decisionruleptr create_rule_from_instance(Instanceptr inst)
{
 int i;
 Decisionruleptr result;
 Decisionconditionptr newcondition;
 result = empty_rule(give_classno(inst));
 for (i = 0; i < current_dataset->featurecount; i++)
   if (current_dataset->features[i].type != CLASSDEF)
    {
     newcondition = empty_condition();
     newcondition->conditiontype = UNIVARIATE_CONDITION;
     newcondition->featureindex = i;
     newcondition->freeparam = 1;
     switch (current_dataset->features[i].type)
      {
       case INTEGER:newcondition->lowerlimit = inst->values[i].intvalue;
                    newcondition->upperlimit = inst->values[i].intvalue;
                    newcondition->comparison = '*';
                    break;
       case    REAL:newcondition->lowerlimit = inst->values[i].floatvalue;
                    newcondition->upperlimit = inst->values[i].floatvalue;
                    newcondition->comparison = '*';
                    break;
       case  STRING:newcondition->comparison = '=';
                    newcondition->value = inst->values[i].stringindex;
                    break;
      }
     add_condition(result, newcondition);
    }
 return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x43530
movl %eax, %edi
callq 0xad8b0
movq %rax, -0x18(%rbp)
movl $0x0, -0xc(%rbp)
movl -0xc(%rbp), %eax
leaq 0x5a9bf(%rip), %rcx     # 0x105840
movq (%rcx), %rcx
cmpl 0x1bc(%rcx), %eax
jge 0xaafd7
leaq 0x5a9a9(%rip), %rax     # 0x105840
movq (%rax), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0xc(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
cmpl $0x3, (%rax)
je 0xaafc7
xorl %eax, %eax
callq 0xadea0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl $0x0, 0x40(%rax)
movl -0xc(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x20(%rbp), %rax
movl $0x1, 0x3c(%rax)
leaq 0x5a958(%rip), %rax     # 0x105840
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
movl 0x30f08(%rax,%rcx), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0xaaf21
jmp 0xaaf06
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0xaaf99
jmp 0xaaf14
movl -0x24(%rbp), %eax
subl $0x2, %eax
je 0xaaf5d
jmp 0xaafba
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
cvtsi2sdl (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
cvtsi2sdl (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x10(%rax)
movq -0x20(%rbp), %rax
movb $0x2a, 0x4(%rax)
jmp 0xaafba
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x10(%rax)
movq -0x20(%rbp), %rax
movb $0x2a, 0x4(%rax)
jmp 0xaafba
movq -0x20(%rbp), %rax
movb $0x3d, 0x4(%rax)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movslq -0xc(%rbp), %rcx
cvtsi2sdl (%rax,%rcx,8), %xmm0
movq -0x20(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xad950
jmp 0xaafc9
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xaae77
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)