// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/loadmodel.c
// Function: load_model_regtree
void load_model_regtree(FILE* infile, Datasetptr d, Regressionnodeptr rootnode)
{
	int leaftype;
 rootnode->left = NULL;
 rootnode->parent = NULL;
 rootnode->right = NULL;
 rootnode->string = NULL;
	rootnode->instances = NULL;
 rootnode->cvinstances = NULL;
 fscanf(infile, "%d", &(rootnode->featureno));
	if (rootnode->featureno == LEAF_NODE)
  {
   fscanf(infile, "%d", &leaftype);
   rootnode->leaftype = leaftype;
   if (rootnode->leaftype == CONSTANTLEAF)
     fscanf(infile, "%lf", &(rootnode->regressionvalue));
   else
     rootnode->w = load_matrix(infile, d->multifeaturecount, 1);  
  }
	else
  {
   if (rootnode->featureno >= 0)
     fscanf(infile, "%lf", &(rootnode->split));
   else
     if (rootnode->featureno == LINEAR)
      {
       rootnode->leftcenter = safemalloc(sizeof(Instance), "load_model_regtree", 14);
       *(rootnode->leftcenter) = load_instance(infile, d, BOOLEAN_FALSE);
       rootnode->rightcenter = safemalloc(sizeof(Instance), "load_model_regtree", 16);
       *(rootnode->rightcenter) = load_instance(infile, d, BOOLEAN_FALSE);
      }
     else
       if (rootnode->featureno == SOFTLIN)
         rootnode->w = load_matrix(infile, d->multifeaturecount, 1);
   rootnode->left = safemalloc(sizeof(Regressionnode), "load_model_regtree", 20);
   load_model_regtree(infile, d, rootnode->left);
   rootnode->left->parent = rootnode;
   rootnode->right = safemalloc(sizeof(Regressionnode), "load_model_regtree", 22);
   load_model_regtree(infile, d, rootnode->right);
   rootnode->right->parent = rootnode;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x68, %rdx
leaq 0x95d74(%rip), %rsi     # 0xed265
movb $0x0, %al
callq 0x4070
movq -0x18(%rbp), %rax
cmpl $-0x1, 0x68(%rax)
jne 0x57596
movq -0x8(%rbp), %rdi
leaq 0x95d54(%rip), %rsi     # 0xed265
leaq -0x1c(%rbp), %rdx
movb $0x0, %al
callq 0x4070
movl -0x1c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x6c(%rax)
movq -0x18(%rbp), %rax
cmpl $0x0, 0x6c(%rax)
jne 0x5754c
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x70, %rdx
leaq 0x8f285(%rip), %rsi     # 0xe67c8
movb $0x0, %al
callq 0x4070
jmp 0x57591
movq -0x18(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1c0(%rax), %esi
movl $0x1, %edx
callq 0x54cc0
movq %rax, %rcx
movq -0xa8(%rbp), %rax
movq %rcx, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rcx
movq %rcx, 0x30(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x38(%rax)
jmp 0x57779
movq -0x18(%rbp), %rax
cmpl $0x0, 0x68(%rax)
jl 0x575bf
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x50, %rdx
leaq 0x8f215(%rip), %rsi     # 0xe67c8
movb $0x0, %al
callq 0x4070
jmp 0x576f0
movq -0x18(%rbp), %rax
cmpl $-0x2, 0x68(%rax)
jne 0x57691
movl $0x30, %edi
leaq 0x8f403(%rip), %rsi     # 0xe69dc
movl $0xe, %edx
callq 0x52d70
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x80(%rax)
movq -0x18(%rbp), %rax
movq 0x80(%rax), %rax
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x60(%rbp), %rdi
xorl %ecx, %ecx
callq 0x550d0
movq -0xb8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0x30, %edx
callq 0x42b0
movl $0x30, %edi
leaq 0x8f3a5(%rip), %rsi     # 0xe69dc
movl $0x10, %edx
callq 0x52d70
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x88(%rax)
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x90(%rbp), %rdi
xorl %ecx, %ecx
callq 0x550d0
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
movl $0x30, %edx
callq 0x42b0
jmp 0x576ee
movq -0x18(%rbp), %rax
cmpl $-0x6, 0x68(%rax)
jne 0x576ec
movq -0x18(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1c0(%rax), %esi
movl $0x1, %edx
callq 0x54cc0
movq %rax, %rcx
movq -0xc0(%rbp), %rax
movq %rcx, -0xa0(%rbp)
movq %rdx, -0x98(%rbp)
movq -0xa0(%rbp), %rcx
movq %rcx, 0x30(%rax)
movq -0x98(%rbp), %rcx
movq %rcx, 0x38(%rax)
jmp 0x576ee
jmp 0x576f0
movl $0x98, %edi
leaq 0x8f2e0(%rip), %rsi     # 0xe69dc
movl $0x14, %edx
callq 0x52d70
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq (%rax), %rdx
callq 0x57480
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movl $0x98, %edi
leaq 0x8f29d(%rip), %rsi     # 0xe69dc
movl $0x16, %edx
callq 0x52d70
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x57480
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)