// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/loadmodel.c
// Function: load_model_softtree
void load_model_softtree(FILE* infile, Datasetptr d, Decisionnodeptr rootnode)
{
	int leaftype;
 rootnode->left = NULL;
 rootnode->parent = NULL;
 rootnode->right = NULL;
 rootnode->string = NULL;
	rootnode->instances = NULL;
 rootnode->counts = NULL;
 rootnode->rule = 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->w0));
   else
     rootnode->w = load_matrix(infile, d->multifeaturecount, 1);  
  }
	else
  {
   rootnode->w = load_matrix(infile, d->multifeaturecount, 1);  
   rootnode->left = safemalloc(sizeof(Decisionnode), "load_model_softtree", 20);
   load_model_softtree(infile, d, rootnode->left);
   rootnode->left->parent = rootnode;
   rootnode->right = safemalloc(sizeof(Decisionnode), "load_model_softtree", 23);
   load_model_softtree(infile, d, rootnode->right);
   rootnode->right->parent = rootnode;   
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %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, 0xa0(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x58(%rax)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x30, %rdx
leaq 0x97c68(%rip), %rsi     # 0xed265
movb $0x0, %al
callq 0x4070
movq -0x18(%rbp), %rax
cmpl $-0x1, 0x30(%rax)
jne 0x5569c
movq -0x8(%rbp), %rdi
leaq 0x97c48(%rip), %rsi     # 0xed265
leaq -0x1c(%rbp), %rdx
movb $0x0, %al
callq 0x4070
movl -0x1c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x18(%rbp), %rax
cmpl $0x0, 0x60(%rax)
jne 0x55658
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x48, %rdx
leaq 0x91179(%rip), %rsi     # 0xe67c8
movb $0x0, %al
callq 0x4070
jmp 0x55697
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1c0(%rax), %esi
movl $0x1, %edx
callq 0x54cc0
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x30(%rbp)
movq %rdx, -0x28(%rbp)
movq -0x30(%rbp), %rcx
movq %rcx, 0x38(%rax)
movq -0x28(%rbp), %rcx
movq %rcx, 0x40(%rax)
jmp 0x55764
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x1c0(%rax), %esi
movl $0x1, %edx
callq 0x54cc0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, -0x40(%rbp)
movq %rdx, -0x38(%rbp)
movq -0x40(%rbp), %rcx
movq %rcx, 0x38(%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x40(%rax)
movl $0x160, %edi            # imm = 0x160
leaq 0x9115c(%rip), %rsi     # 0xe6843
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 0x55580
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movl $0x160, %edi            # imm = 0x160
leaq 0x91119(%rip), %rsi     # 0xe6843
movl $0x17, %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 0x55580
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)