// File: /workspace/github_c_makefile_star2_O2/olcaytaner[P]Isell/plot.c
// Function: plot_classification_model
void plot_classification_model(void* model, void* parameters, int algorithm, Instance mean, Instance variance)
{
 ON_OFF changedecisionthreshold = get_parameter_o("changedecisionthreshold");
 int i, j, color;
 char st[2];
 double* posteriors = safemalloc(current_dataset->classno * sizeof(double), "plot_model", 2);
 double meanx, meany, stdevx, stdevy;
 Instanceptr currentinstance;
 Point p, p3, p4;
 Prediction predicted, predictedy, predictedx;
 predictedy.classno = -1;
 if (!get_parameter_o("hold"))
   clear_image();
 color = img.imagelegend.legendcount;
 add_legend((char)('A' + color), classification_algorithms[algorithm - SELECTMAX].name);
 p3.x = color;
 p4.x = GRAY;
 st[0] = '.';
 st[1] = '\0';
 if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
  {
   meanx = mean.values[0].floatvalue;
   meany = mean.values[1].floatvalue;
   stdevx = sqrt(variance.values[0].floatvalue);
   stdevy = sqrt(variance.values[1].floatvalue);
  }
 currentinstance = empty_instance(3);
 for (i = 1; i < MESHDEPTH * PARTITIONS; i++)
  {
   p.x = img.xaxis.lim.min + i * ((img.xaxis.lim.max - img.xaxis.lim.min) / (MESHDEPTH * PARTITIONS));
   for (j = 1; j < MESHDEPTH * PARTITIONS; j++)
    {     
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[0].floatvalue = (p.x - meanx) / stdevx;
     else
       currentinstance->values[0].floatvalue = p.x;
     p.y = img.yaxis.lim.min + j * ((img.yaxis.lim.max - img.yaxis.lim.min) / (MESHDEPTH * PARTITIONS));
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[1].floatvalue = (p.y - meany) / stdevy;
     else
       currentinstance->values[1].floatvalue = p.y;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     currentinstance->values[2].stringindex = predicted.classno;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     if (changedecisionthreshold == ON && current_dataset->classno == 2)
      {
       if (posteriors[0] > get_parameter_f("decisionthreshold"))
         predicted.classno = 0;
       else
         predicted.classno = 1;
      }
     if (predicted.classno != predictedy.classno && j != 1)
       add_object(OBJECT_POINT, p, dummyp, p3, st);
     if (current_dataset->classno == 2 && j != 1 && in_list(algorithm, 2, SVM, SIMPLEXSVM) && ((predicted.hingeloss == 0.0 && predictedy.hingeloss > 0.0) || (predicted.hingeloss > 0.0 && predictedy.hingeloss == 0.0)))
       add_object(OBJECT_POINT, p, dummyp, p4, st);
     predictedy = predicted;
    }
  }
 for (i = 1; i < MESHDEPTH * PARTITIONS; i++)
  {
   p.x = img.xaxis.lim.max - i * ((img.xaxis.lim.max - img.xaxis.lim.min) / (MESHDEPTH * PARTITIONS));
   for (j = 1; j < MESHDEPTH * PARTITIONS; j++)
    {     
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[0].floatvalue = (p.x - meanx) / stdevx;
     else
       currentinstance->values[0].floatvalue = p.x;
     p.y = img.yaxis.lim.max - j * ((img.yaxis.lim.max - img.yaxis.lim.min) / (MESHDEPTH * PARTITIONS));
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[1].floatvalue = (p.y - meany) / stdevy;
     else
       currentinstance->values[1].floatvalue = p.y;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     currentinstance->values[2].stringindex = predicted.classno;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     if (changedecisionthreshold == ON && current_dataset->classno == 2)
      {
       if (posteriors[0] > get_parameter_f("decisionthreshold"))
         predicted.classno = 0;
       else
         predicted.classno = 1;
      }
     if (predicted.classno != predictedy.classno && j != 1)
       add_object(OBJECT_POINT, p, dummyp, p3, st);
     if (current_dataset->classno == 2 && j != 1 && in_list(algorithm, 2, SVM, SIMPLEXSVM) && ((predicted.hingeloss == 0.0 && predictedy.hingeloss > 0.0) || (predicted.hingeloss > 0.0 && predictedy.hingeloss == 0.0)))
       add_object(OBJECT_POINT, p, dummyp, p4, st);
     predictedy = predicted;
    }
  }
 for (i = 1; i < MESHDEPTH * PARTITIONS; i++)
  {
   p.y = img.yaxis.lim.min + i * ((img.yaxis.lim.max - img.yaxis.lim.min) / (MESHDEPTH * PARTITIONS));
   for (j = 1; j < MESHDEPTH * PARTITIONS; j++)
    {     
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[1].floatvalue = (p.y - meany) / stdevy;
     else
       currentinstance->values[1].floatvalue = p.y;
     p.x = img.xaxis.lim.min + j * ((img.xaxis.lim.max - img.xaxis.lim.min) / (MESHDEPTH * PARTITIONS));
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[0].floatvalue = (p.x - meanx) / stdevx;
     else
       currentinstance->values[0].floatvalue = p.x;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     currentinstance->values[2].stringindex = predicted.classno;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     if (changedecisionthreshold == ON && current_dataset->classno == 2)
      {
       if (posteriors[0] > get_parameter_f("decisionthreshold"))
         predicted.classno = 0;
       else
         predicted.classno = 1;
      }
     if (predicted.classno != predictedx.classno && j != 1)
       add_object(OBJECT_POINT, p, dummyp, p3, st);
     if (current_dataset->classno == 2 && j != 1 && in_list(algorithm, 2, SVM, SIMPLEXSVM) && ((predicted.hingeloss == 0.0 && predictedx.hingeloss > 0.0) || (predicted.hingeloss > 0.0 && predictedx.hingeloss == 0.0)))
       add_object(OBJECT_POINT, p, dummyp, p4, st);
     predictedx = predicted;
    }
  }
 for (i = 1; i < MESHDEPTH * PARTITIONS; i++)
  {
   p.y = img.yaxis.lim.max - i * ((img.yaxis.lim.max - img.yaxis.lim.min) / (MESHDEPTH * PARTITIONS));
   for (j = 1; j < MESHDEPTH * PARTITIONS; j++)
    {     
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[1].floatvalue = (p.y - meany) / stdevy;
     else
       currentinstance->values[1].floatvalue = p.y;
     p.x = img.xaxis.lim.max - j * ((img.xaxis.lim.max - img.xaxis.lim.min) / (MESHDEPTH * PARTITIONS));
     if (classification_algorithms[algorithm - SELECTMAX].mustnormalize)
       currentinstance->values[0].floatvalue = (p.x - meanx) / stdevx;
     else
       currentinstance->values[0].floatvalue = p.x;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     currentinstance->values[2].stringindex = predicted.classno;
     predicted = classification_algorithms[algorithm - SELECTMAX].test_algorithm(currentinstance, model, parameters, posteriors);
     if (changedecisionthreshold == ON && current_dataset->classno == 2)
      {
       if (posteriors[0] > get_parameter_f("decisionthreshold"))
         predicted.classno = 0;
       else
         predicted.classno = 1;
      }
     if (predicted.classno != predictedx.classno && j != 1)
       add_object(OBJECT_POINT, p, dummyp, p3, st);
     if (current_dataset->classno == 2 && j != 1 && in_list(algorithm, 2, SVM, SIMPLEXSVM) && ((predicted.hingeloss == 0.0 && predictedx.hingeloss > 0.0) || (predicted.hingeloss > 0.0 && predictedx.hingeloss == 0.0)))
       add_object(OBJECT_POINT, p, dummyp, p4, st);
     predictedx = predicted;
    }
  }
 safe_free(posteriors);
 export_image();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movl %edx, %r14d
movq %rsi, 0xb8(%rsp)
movq %rdi, 0xb0(%rsp)
leaq 0x4c6a9(%rip), %rdi     # 0x9abd4
callq 0x4cff1
movl %eax, 0x5c(%rsp)
leaq 0x7f335(%rip), %rax     # 0xcd870
movq (%rax), %rax
movslq 0x10(%rax), %rdi
shlq $0x3, %rdi
leaq 0x4c69f(%rip), %rsi     # 0x9abec
pushq $0x2
popq %rdx
callq 0x34f59
movq %rax, 0x50(%rsp)
leaq 0x4c184(%rip), %rdi     # 0x9a6e5
callq 0x4cff1
testl %eax, %eax
jne 0x4e571
xorl %eax, %eax
callq 0x2a510
leaq 0x35bb40(%rip), %rax    # 0x3aa0b8
movl 0xec(%rax), %ebx
leal 0x41(%rbx), %eax
movq %r14, 0xa0(%rsp)
leal -0x3e8(%r14), %ecx
movslq %ecx, %rcx
imulq $0x28, %rcx, %r14
leaq 0x7dc22(%rip), %r13     # 0xcc1c0
movq 0x10(%r13,%r14), %rsi
movsbl %al, %edi
callq 0x28ee8
movw $0x2e, 0xa(%rsp)
cmpl $0x0, 0x1c(%r13,%r14)
je 0x4e600
leaq 0x160(%rsp), %rax
leaq 0x130(%rsp), %rcx
movq (%rcx), %rcx
movsd (%rcx), %xmm0
movsd %xmm0, 0x88(%rsp)
movsd 0x8(%rcx), %xmm0
movsd %xmm0, 0x90(%rsp)
movq (%rax), %r15
movsd (%r15), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4e602
sqrtsd %xmm0, %xmm0
jmp 0x4e60b
jmp 0x4e631
callq 0x4300
xorpd %xmm1, %xmm1
movsd %xmm0, 0x80(%rsp)
movsd 0x8(%r15), %xmm0
ucomisd %xmm1, %xmm0
jb 0x4e626
sqrtsd %xmm0, %xmm0
jmp 0x4e62b
callq 0x4300
movsd %xmm0, 0x78(%rsp)
addq %r14, %r13
cvtsi2sd %ebx, %xmm0
movsd %xmm0, 0x98(%rsp)
pushq $0x3
popq %rdi
callq 0x140fd
movq %rax, 0x60(%rsp)
pushq $-0x1
popq %r12
pushq $0x1
popq %rax
movsd 0x46ec3(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movq %r13, 0xa8(%rsp)
movq 0x60(%rsp), %r15
movq 0xb0(%rsp), %rbp
cmpl $0x1f4, %eax            # imm = 0x1F4
je 0x4e96d
movl %eax, 0x3c(%rsp)
leaq 0x35ba2a(%rip), %rax    # 0x3aa0b8
movsd 0x10(%rax), %xmm0
movsd 0x18(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x496f4(%rip), %xmm1    # 0x97d98
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
subsd 0x88(%rsp), %xmm1
divsd 0x80(%rsp), %xmm1
movsd %xmm1, 0x70(%rsp)
movl $0x1f3, %eax            # imm = 0x1F3
movsd 0x46e47(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movl %eax, %ecx
subl $0x1, %eax
jb 0x4e942
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x1c(%r13)
movsd 0x28(%rsp), %xmm0
je 0x4e70d
movsd 0x70(%rsp), %xmm0
movl %r12d, 0x40(%rsp)
movl %ecx, 0xc(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x35b98f(%rip), %rax    # 0x3aa0b8
movsd 0x80(%rax), %xmm0
movsd 0x88(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x49653(%rip), %xmm1    # 0x97d98
mulsd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
cmpl $0x0, 0x1c(%r13)
movapd %xmm1, %xmm0
je 0x4e76d
movapd %xmm1, %xmm0
subsd 0x90(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm1, 0x48(%rsp)
movq (%r15), %rax
movsd %xmm0, 0x8(%rax)
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq 0xb8(%rsp), %r12
movq %r12, %rcx
movq 0x50(%rsp), %rbx
movq %rbx, %r8
movq 0xa8(%rsp), %r13
callq *0x8(%r13)
movl 0xc8(%rsp), %eax
movq (%r15), %rcx
movl %eax, 0x10(%rcx)
movq %r14, %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
callq *0x8(%r13)
movl 0xc8(%rsp), %r12d
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
cmpl $0x1, 0x5c(%rsp)
jne 0x4e82b
leaq 0x7f080(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %ebx
jne 0x4e82f
movq 0x50(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x4c3c7(%rip), %rdi     # 0x9abda
callq 0x4cdcf
xorl %r12d, %r12d
movsd 0x68(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %r12b
jmp 0x4e82f
movl 0xc(%rsp), %ebx
cmpl $0x1f3, %ebx            # imm = 0x1F3
je 0x4e870
cmpl 0x40(%rsp), %r12d
je 0x4e870
movsd 0x7e82a(%rip), %xmm2    # 0xcd070
movsd 0x7e82a(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x98(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x28f8d
cmpl $0x1f3, %ebx            # imm = 0x1F3
je 0x4e925
leaq 0x7efed(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x4e925
movq 0xa0(%rsp), %rdi
pushq $0x2
popq %rsi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x35812
testl %eax, %eax
je 0x4e925
movsd 0x10(%rsp), %xmm0
ucomisd 0x4745a(%rip), %xmm0    # 0x95d18
jne 0x4e8d2
jp 0x4e8d2
movsd 0x20(%rsp), %xmm0
ucomisd 0x47448(%rip), %xmm0    # 0x95d18
ja 0x4e8f4
movsd 0x10(%rsp), %xmm0
ucomisd 0x47438(%rip), %xmm0    # 0x95d18
jbe 0x4e925
movsd 0x20(%rsp), %xmm0
ucomisd 0x47428(%rip), %xmm0    # 0x95d18
jne 0x4e925
jp 0x4e925
movsd 0x7e774(%rip), %xmm2    # 0xcd070
movsd 0x7e774(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x49255(%rip), %xmm4    # 0x97b70
leaq 0xa(%rsp), %rsi
callq 0x28f8d
movsd 0x30(%rsp), %xmm0
addsd 0x46bed(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movl 0x44(%rsp), %eax
jmp 0x4e6df
movsd 0x18(%rsp), %xmm0
addsd 0x46bd0(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movl 0x3c(%rsp), %eax
incl %eax
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x4e678
pushq $0x1
popq %rax
movsd 0x46ba8(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movq 0x60(%rsp), %r14
movq 0xb0(%rsp), %rbp
cmpl $0x1f4, %eax            # imm = 0x1F4
je 0x4ec80
movl %eax, 0x3c(%rsp)
leaq 0x35b717(%rip), %rax    # 0x3aa0b8
movsd 0x18(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x10(%rax), %xmm1
divsd 0x493c9(%rip), %xmm1    # 0x97d80
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
subsd 0x88(%rsp), %xmm1
divsd 0x80(%rsp), %xmm1
movsd %xmm1, 0x70(%rsp)
movl $0x1f3, %eax            # imm = 0x1F3
movsd 0x46b34(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movl %eax, %ecx
subl $0x1, %eax
jb 0x4ec55
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x1c(%r13)
movsd 0x28(%rsp), %xmm0
je 0x4ea20
movsd 0x70(%rsp), %xmm0
movl %r12d, 0x40(%rsp)
movl %ecx, 0xc(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x35b67c(%rip), %rax    # 0x3aa0b8
movsd 0x88(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x80(%rax), %xmm1
divsd 0x49328(%rip), %xmm1    # 0x97d80
mulsd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
cmpl $0x0, 0x1c(%r13)
movapd %xmm1, %xmm0
je 0x4ea80
movapd %xmm1, %xmm0
subsd 0x90(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm1, 0x48(%rsp)
movq (%r14), %rax
movsd %xmm0, 0x8(%rax)
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq 0xb8(%rsp), %r12
movq %r12, %rcx
movq 0x50(%rsp), %rbx
movq %rbx, %r8
movq 0xa8(%rsp), %r13
callq *0x8(%r13)
movl 0xc8(%rsp), %eax
movq (%r14), %rcx
movl %eax, 0x10(%rcx)
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %r12, %rcx
movq %rbx, %r8
callq *0x8(%r13)
movl 0xc8(%rsp), %r12d
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
cmpl $0x1, 0x5c(%rsp)
jne 0x4eb3e
leaq 0x7ed6d(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %ebx
jne 0x4eb42
movq 0x50(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x4c0b4(%rip), %rdi     # 0x9abda
callq 0x4cdcf
xorl %r12d, %r12d
movsd 0x68(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %r12b
jmp 0x4eb42
movl 0xc(%rsp), %ebx
cmpl $0x1f3, %ebx            # imm = 0x1F3
je 0x4eb83
cmpl 0x40(%rsp), %r12d
je 0x4eb83
movsd 0x7e517(%rip), %xmm2    # 0xcd070
movsd 0x7e517(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x98(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x28f8d
cmpl $0x1f3, %ebx            # imm = 0x1F3
je 0x4ec38
leaq 0x7ecda(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x4ec38
movq 0xa0(%rsp), %rdi
pushq $0x2
popq %rsi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x35812
testl %eax, %eax
je 0x4ec38
movsd 0x10(%rsp), %xmm0
ucomisd 0x47147(%rip), %xmm0    # 0x95d18
jne 0x4ebe5
jp 0x4ebe5
movsd 0x20(%rsp), %xmm0
ucomisd 0x47135(%rip), %xmm0    # 0x95d18
ja 0x4ec07
movsd 0x10(%rsp), %xmm0
ucomisd 0x47125(%rip), %xmm0    # 0x95d18
jbe 0x4ec38
movsd 0x20(%rsp), %xmm0
ucomisd 0x47115(%rip), %xmm0    # 0x95d18
jne 0x4ec38
jp 0x4ec38
movsd 0x7e461(%rip), %xmm2    # 0xcd070
movsd 0x7e461(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x28(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x48f42(%rip), %xmm4    # 0x97b70
leaq 0xa(%rsp), %rsi
callq 0x28f8d
movsd 0x30(%rsp), %xmm0
addsd 0x468da(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movl 0x44(%rsp), %eax
jmp 0x4e9f2
movsd 0x18(%rsp), %xmm0
addsd 0x468bd(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movl 0x3c(%rsp), %eax
incl %eax
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x4e98b
pushq $0x1
popq %rax
movsd 0x46895(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movq 0x60(%rsp), %r14
movq 0x50(%rsp), %r12
cmpl $0x1f4, %eax            # imm = 0x1F4
je 0x4ef8e
movl %eax, 0x3c(%rsp)
leaq 0x35b407(%rip), %rax    # 0x3aa0b8
movsd 0x80(%rax), %xmm0
movsd 0x88(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x490cb(%rip), %xmm1    # 0x97d98
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
subsd 0x90(%rsp), %xmm1
divsd 0x78(%rsp), %xmm1
movsd %xmm1, 0x70(%rsp)
movl $0x1f3, %eax            # imm = 0x1F3
movsd 0x46821(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movl %eax, %ecx
subl $0x1, %eax
jb 0x4ef63
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x1c(%r13)
movsd 0x28(%rsp), %xmm0
je 0x4ed33
movsd 0x70(%rsp), %xmm0
movl %ebx, 0x40(%rsp)
movl %ecx, 0xc(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x35b369(%rip), %rax    # 0x3aa0b8
movsd 0x10(%rax), %xmm0
movsd 0x18(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x49033(%rip), %xmm1    # 0x97d98
mulsd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
cmpl $0x0, 0x1c(%r13)
movapd %xmm1, %xmm0
je 0x4ed90
movapd %xmm1, %xmm0
subsd 0x88(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm1, 0x48(%rsp)
movq (%r14), %rax
movsd %xmm0, (%rax)
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
movq 0xb0(%rsp), %rbp
movq %rbp, %rdx
movq 0xb8(%rsp), %rbx
movq %rbx, %rcx
movq %r12, %r8
movq 0xa8(%rsp), %r13
callq *0x8(%r13)
movl 0xc8(%rsp), %eax
movq (%r14), %rcx
movl %eax, 0x10(%rcx)
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
movq %r12, %r8
callq *0x8(%r13)
movl 0xc8(%rsp), %ebx
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
cmpl $0x1, 0x5c(%rsp)
jne 0x4ee4d
leaq 0x7ea5c(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %ebp
jne 0x4ee51
movq 0x50(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x4bda3(%rip), %rdi     # 0x9abda
callq 0x4cdcf
xorl %ebx, %ebx
movsd 0x68(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x4ee51
movl 0xc(%rsp), %ebp
cmpl $0x1f3, %ebp            # imm = 0x1F3
je 0x4ee91
cmpl 0x40(%rsp), %ebx
je 0x4ee91
movsd 0x7e209(%rip), %xmm2    # 0xcd070
movsd 0x7e209(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x48(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x98(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x28f8d
cmpl $0x1f3, %ebp            # imm = 0x1F3
je 0x4ef46
leaq 0x7e9cc(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x4ef46
movq 0xa0(%rsp), %rdi
pushq $0x2
popq %rsi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x35812
testl %eax, %eax
je 0x4ef46
movsd 0x10(%rsp), %xmm0
ucomisd 0x46e39(%rip), %xmm0    # 0x95d18
jne 0x4eef3
jp 0x4eef3
movsd 0x20(%rsp), %xmm0
ucomisd 0x46e27(%rip), %xmm0    # 0x95d18
ja 0x4ef15
movsd 0x10(%rsp), %xmm0
ucomisd 0x46e17(%rip), %xmm0    # 0x95d18
jbe 0x4ef46
movsd 0x20(%rsp), %xmm0
ucomisd 0x46e07(%rip), %xmm0    # 0x95d18
jne 0x4ef46
jp 0x4ef46
movsd 0x7e153(%rip), %xmm2    # 0xcd070
movsd 0x7e153(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x48(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x48c34(%rip), %xmm4    # 0x97b70
leaq 0xa(%rsp), %rsi
callq 0x28f8d
movsd 0x30(%rsp), %xmm0
addsd 0x465cc(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movl 0x44(%rsp), %eax
jmp 0x4ed05
movsd 0x18(%rsp), %xmm0
addsd 0x465af(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movl 0x3c(%rsp), %eax
incl %eax
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x4ec9b
pushq $0x1
popq %rax
movsd 0x46587(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movq 0x60(%rsp), %r14
movq 0x50(%rsp), %r12
cmpl $0x1f4, %eax            # imm = 0x1F4
je 0x4f29c
movl %eax, 0x3c(%rsp)
leaq 0x35b0f9(%rip), %rax    # 0x3aa0b8
movsd 0x88(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x80(%rax), %xmm1
divsd 0x48da5(%rip), %xmm1    # 0x97d80
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x28(%rsp)
subsd 0x90(%rsp), %xmm1
divsd 0x78(%rsp), %xmm1
movsd %xmm1, 0x70(%rsp)
movl $0x1f3, %eax            # imm = 0x1F3
movsd 0x46513(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movl %eax, %ecx
subl $0x1, %eax
jb 0x4f271
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x1c(%r13)
movsd 0x28(%rsp), %xmm0
je 0x4f041
movsd 0x70(%rsp), %xmm0
movl %ebx, 0x40(%rsp)
movl %ecx, 0xc(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x35b05b(%rip), %rax    # 0x3aa0b8
movsd 0x18(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x10(%rax), %xmm1
divsd 0x48d0d(%rip), %xmm1    # 0x97d80
mulsd 0x30(%rsp), %xmm1
addsd %xmm0, %xmm1
cmpl $0x0, 0x1c(%r13)
movapd %xmm1, %xmm0
je 0x4f09e
movapd %xmm1, %xmm0
subsd 0x88(%rsp), %xmm0
divsd 0x80(%rsp), %xmm0
movsd %xmm1, 0x48(%rsp)
movq (%r14), %rax
movsd %xmm0, (%rax)
leaq 0xc0(%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
movq 0xb0(%rsp), %rbp
movq %rbp, %rdx
movq 0xb8(%rsp), %rbx
movq %rbx, %rcx
movq %r12, %r8
movq 0xa8(%rsp), %r13
callq *0x8(%r13)
movl 0xc8(%rsp), %eax
movq (%r14), %rcx
movl %eax, 0x10(%rcx)
movq %r15, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %rbx, %rcx
movq %r12, %r8
callq *0x8(%r13)
movl 0xc8(%rsp), %ebx
movsd 0xd0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
cmpl $0x1, 0x5c(%rsp)
jne 0x4f15b
leaq 0x7e74e(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %ebp
jne 0x4f15f
movq 0x50(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x68(%rsp)
leaq 0x4ba95(%rip), %rdi     # 0x9abda
callq 0x4cdcf
xorl %ebx, %ebx
movsd 0x68(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x4f15f
movl 0xc(%rsp), %ebp
cmpl $0x1f3, %ebp            # imm = 0x1F3
je 0x4f19f
cmpl 0x40(%rsp), %ebx
je 0x4f19f
movsd 0x7defb(%rip), %xmm2    # 0xcd070
movsd 0x7defb(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x48(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x98(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x28f8d
cmpl $0x1f3, %ebp            # imm = 0x1F3
je 0x4f254
leaq 0x7e6be(%rip), %rax     # 0xcd870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x4f254
movq 0xa0(%rsp), %rdi
pushq $0x2
popq %rsi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x35812
testl %eax, %eax
je 0x4f254
movsd 0x10(%rsp), %xmm0
ucomisd 0x46b2b(%rip), %xmm0    # 0x95d18
jne 0x4f201
jp 0x4f201
movsd 0x20(%rsp), %xmm0
ucomisd 0x46b19(%rip), %xmm0    # 0x95d18
ja 0x4f223
movsd 0x10(%rsp), %xmm0
ucomisd 0x46b09(%rip), %xmm0    # 0x95d18
jbe 0x4f254
movsd 0x20(%rsp), %xmm0
ucomisd 0x46af9(%rip), %xmm0    # 0x95d18
jne 0x4f254
jp 0x4f254
movsd 0x7de45(%rip), %xmm2    # 0xcd070
movsd 0x7de45(%rip), %xmm3    # 0xcd078
pushq $0x8
popq %rdi
movsd 0x48(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x48926(%rip), %xmm4    # 0x97b70
leaq 0xa(%rsp), %rsi
callq 0x28f8d
movsd 0x30(%rsp), %xmm0
addsd 0x462be(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x30(%rsp)
movl 0x44(%rsp), %eax
jmp 0x4f013
movsd 0x18(%rsp), %xmm0
addsd 0x462a1(%rip), %xmm0    # 0x95520
movsd %xmm0, 0x18(%rsp)
movl 0x3c(%rsp), %eax
incl %eax
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x4efa9
movq 0x50(%rsp), %rdi
callq 0x34ff7
xorl %eax, %eax
callq 0x2a858
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq