// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x320, %rsp            # imm = 0x320
leaq 0x40(%rbp), %rax
movq %rax, -0x300(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
leaq 0x6c1d1(%rip), %rdi     # 0xe7704
callq 0x79440
movl %eax, -0x18(%rbp)
leaq 0x8a2fe(%rip), %rax     # 0x105840
movq (%rax), %rax
movslq 0x10(%rax), %rdi
shlq $0x3, %rdi
leaq 0x6c1c8(%rip), %rsi     # 0xe771c
movl $0x2, %edx
callq 0x52d70
movq %rax, -0x30(%rbp)
movl $0xffffffff, -0xf0(%rbp) # imm = 0xFFFFFFFF
leaq 0x6bd95(%rip), %rdi     # 0xe7308
callq 0x79440
cmpl $0x0, %eax
jne 0x7b584
movb $0x0, %al
callq 0x41a40
leaq 0x366afd(%rip), %rax    # 0x3e2088
movl 0xec(%rax), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
addl $0x41, %eax
movl -0x14(%rbp), %ecx
subl $0x3e8, %ecx            # imm = 0x3E8
movslq %ecx, %rdx
leaq 0x88be3(%rip), %rcx     # 0x104190
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movq 0x10(%rcx), %rsi
movsbl %al, %edi
callq 0x3efa0
cvtsi2sdl -0x24(%rbp), %xmm0
movsd %xmm0, -0x78(%rbp)
movsd 0x69196(%rip), %xmm0    # 0xe4768
movsd %xmm0, -0x88(%rbp)
movb $0x2e, -0x26(%rbp)
movb $0x0, -0x25(%rbp)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88b9c(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7b652
movq -0x300(%rbp), %rax
movq -0x2f8(%rbp), %rcx
movq (%rcx), %rdx
movsd (%rdx), %xmm0
movsd %xmm0, -0x38(%rbp)
movq (%rcx), %rcx
movsd 0x8(%rcx), %xmm0
movsd %xmm0, -0x40(%rbp)
movq (%rax), %rax
movsd (%rax), %xmm0
callq 0x42a0
movq -0x300(%rbp), %rax
movsd %xmm0, -0x48(%rbp)
movq (%rax), %rax
movsd 0x8(%rax), %xmm0
callq 0x42a0
movsd %xmm0, -0x50(%rbp)
movl $0x3, %edi
callq 0x1e140
movq %rax, -0x58(%rbp)
movl $0x1, -0x1c(%rbp)
cmpl $0x1f4, -0x1c(%rbp)     # imm = 0x1F4
jge 0x7b9e9
leaq 0x366a0d(%rip), %rax    # 0x3e2088
movsd 0x10(%rax), %xmm1
cvtsi2sdl -0x1c(%rbp), %xmm0
leaq 0x3669fc(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm2
leaq 0x3669f0(%rip), %rax    # 0x3e2088
subsd 0x10(%rax), %xmm2
movsd 0x692db(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movl $0x1, -0x20(%rbp)
cmpl $0x1f4, -0x20(%rbp)     # imm = 0x1F4
jge 0x7b9d9
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88ab4(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7b705
movsd -0x68(%rbp), %xmm0
subsd -0x38(%rbp), %xmm0
divsd -0x48(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
jmp 0x7b715
movsd -0x68(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x36696c(%rip), %rax    # 0x3e2088
movsd 0x80(%rax), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
leaq 0x366958(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm2
leaq 0x366949(%rip), %rax    # 0x3e2088
subsd 0x80(%rax), %xmm2
movsd 0x69231(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88a1e(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7b79c
movsd -0x60(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x7b7ad
movsd -0x60(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x889d1(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x168(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0xb8(%rbp), %ecx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x10(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88973(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x1a0(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
cmpl $0x1, -0x18(%rbp)
jne 0x7b8b4
leaq 0x89fda(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7b8b4
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x308(%rbp)
leaq 0x6be84(%rip), %rdi     # 0xe770a
callq 0x79040
movaps %xmm0, %xmm1
movsd -0x308(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x7b8a8
movl $0x0, -0xb8(%rbp)
jmp 0x7b8b2
movl $0x1, -0xb8(%rbp)
jmp 0x7b8b4
movl -0xb8(%rbp), %eax
cmpl -0xf0(%rbp), %eax
je 0x7b8fa
cmpl $0x1, -0x20(%rbp)
je 0x7b8fa
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x89762(%rip), %xmm2    # 0x105040
movsd 0x89762(%rip), %xmm3    # 0x105048
movsd -0x78(%rbp), %xmm4
movsd -0x70(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq 0x89f3f(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7b9b3
cmpl $0x1, -0x20(%rbp)
je 0x7b9b3
movl -0x14(%rbp), %edi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0x7b9b3
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b95a
jp 0x7b95a
movsd -0xe8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0x7b97e
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7b9b3
movsd -0xe8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7b9b3
jp 0x7b9b3
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x896ac(%rip), %xmm2    # 0x105040
movsd 0x896ac(%rip), %xmm3    # 0x105048
movsd -0x88(%rbp), %xmm4
movsd -0x80(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq -0xf8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x7b6bd
jmp 0x7b9db
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7b667
movl $0x1, -0x1c(%rbp)
cmpl $0x1f4, -0x1c(%rbp)     # imm = 0x1F4
jge 0x7bda0
leaq 0x366684(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm1
cvtsi2sdl -0x1c(%rbp), %xmm0
leaq 0x366673(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm2
leaq 0x366667(%rip), %rax    # 0x3e2088
subsd 0x10(%rax), %xmm2
movsd 0x68f52(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movl $0x1, -0x20(%rbp)
cmpl $0x1f4, -0x20(%rbp)     # imm = 0x1F4
jge 0x7bd90
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88714(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7baa5
movsd -0x68(%rbp), %xmm0
subsd -0x38(%rbp), %xmm0
divsd -0x48(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
jmp 0x7bab5
movsd -0x68(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x3665cc(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
leaq 0x3665b8(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm2
leaq 0x3665a9(%rip), %rax    # 0x3e2088
subsd 0x80(%rax), %xmm2
movsd 0x68e91(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88667(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7bb53
movsd -0x60(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x7bb64
movsd -0x60(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x8861a(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x1d8(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0xb8(%rbp), %ecx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x10(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x885bc(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x210(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
cmpl $0x1, -0x18(%rbp)
jne 0x7bc6b
leaq 0x89c23(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7bc6b
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x310(%rbp)
leaq 0x6bacd(%rip), %rdi     # 0xe770a
callq 0x79040
movaps %xmm0, %xmm1
movsd -0x310(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x7bc5f
movl $0x0, -0xb8(%rbp)
jmp 0x7bc69
movl $0x1, -0xb8(%rbp)
jmp 0x7bc6b
movl -0xb8(%rbp), %eax
cmpl -0xf0(%rbp), %eax
je 0x7bcb1
cmpl $0x1, -0x20(%rbp)
je 0x7bcb1
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x893ab(%rip), %xmm2    # 0x105040
movsd 0x893ab(%rip), %xmm3    # 0x105048
movsd -0x78(%rbp), %xmm4
movsd -0x70(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq 0x89b88(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7bd6a
cmpl $0x1, -0x20(%rbp)
je 0x7bd6a
movl -0x14(%rbp), %edi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0x7bd6a
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7bd11
jp 0x7bd11
movsd -0xe8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0x7bd35
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7bd6a
movsd -0xe8(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7bd6a
jp 0x7bd6a
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x892f5(%rip), %xmm2    # 0x105040
movsd 0x892f5(%rip), %xmm3    # 0x105048
movsd -0x88(%rbp), %xmm4
movsd -0x80(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq -0xf8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x7ba5d
jmp 0x7bd92
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7b9f0
movl $0x1, -0x1c(%rbp)
cmpl $0x1f4, -0x1c(%rbp)     # imm = 0x1F4
jge 0x7c129
leaq 0x3662cd(%rip), %rax    # 0x3e2088
movsd 0x80(%rax), %xmm1
cvtsi2sdl -0x1c(%rbp), %xmm0
leaq 0x3662b9(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm2
leaq 0x3662aa(%rip), %rax    # 0x3e2088
subsd 0x80(%rax), %xmm2
movsd 0x68b92(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movl $0x1, -0x20(%rbp)
cmpl $0x1f4, -0x20(%rbp)     # imm = 0x1F4
jge 0x7c119
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x8836b(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7be4f
movsd -0x60(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x7be60
movsd -0x60(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x366221(%rip), %rax    # 0x3e2088
movsd 0x10(%rax), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
leaq 0x366210(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm2
leaq 0x366204(%rip), %rax    # 0x3e2088
subsd 0x10(%rax), %xmm2
movsd 0x68aef(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x882dc(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7bedd
movsd -0x68(%rbp), %xmm0
subsd -0x38(%rbp), %xmm0
divsd -0x48(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
jmp 0x7beed
movsd -0x68(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88291(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x248(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x248(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0xb8(%rbp), %ecx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x10(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x88233(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x280(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x280(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
cmpl $0x1, -0x18(%rbp)
jne 0x7bff4
leaq 0x8989a(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7bff4
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x318(%rbp)
leaq 0x6b744(%rip), %rdi     # 0xe770a
callq 0x79040
movaps %xmm0, %xmm1
movsd -0x318(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x7bfe8
movl $0x0, -0xb8(%rbp)
jmp 0x7bff2
movl $0x1, -0xb8(%rbp)
jmp 0x7bff4
movl -0xb8(%rbp), %eax
cmpl -0x128(%rbp), %eax
je 0x7c03a
cmpl $0x1, -0x20(%rbp)
je 0x7c03a
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x89022(%rip), %xmm2    # 0x105040
movsd 0x89022(%rip), %xmm3    # 0x105048
movsd -0x78(%rbp), %xmm4
movsd -0x70(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq 0x897ff(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7c0f3
cmpl $0x1, -0x20(%rbp)
je 0x7c0f3
movl -0x14(%rbp), %edi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0x7c0f3
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c09a
jp 0x7c09a
movsd -0x120(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0x7c0be
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7c0f3
movsd -0x120(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c0f3
jp 0x7c0f3
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x88f6c(%rip), %xmm2    # 0x105040
movsd 0x88f6c(%rip), %xmm3    # 0x105048
movsd -0x88(%rbp), %xmm4
movsd -0x80(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq -0x130(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x7be06
jmp 0x7c11b
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7bda7
movl $0x1, -0x1c(%rbp)
cmpl $0x1f4, -0x1c(%rbp)     # imm = 0x1F4
jge 0x7c4e0
leaq 0x365f44(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm1
cvtsi2sdl -0x1c(%rbp), %xmm0
leaq 0x365f30(%rip), %rax    # 0x3e2088
movsd 0x88(%rax), %xmm2
leaq 0x365f21(%rip), %rax    # 0x3e2088
subsd 0x80(%rax), %xmm2
movsd 0x68809(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x60(%rbp)
movl $0x1, -0x20(%rbp)
cmpl $0x1f4, -0x20(%rbp)     # imm = 0x1F4
jge 0x7c4d0
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x87fcb(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7c1ef
movsd -0x60(%rbp), %xmm0
subsd -0x40(%rbp), %xmm0
divsd -0x50(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x7c200
movsd -0x60(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x365e81(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm1
cvtsi2sdl -0x20(%rbp), %xmm0
leaq 0x365e70(%rip), %rax    # 0x3e2088
movsd 0x18(%rax), %xmm2
leaq 0x365e64(%rip), %rax    # 0x3e2088
subsd 0x10(%rax), %xmm2
movsd 0x6874f(%rip), %xmm3    # 0xe4980
divsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x68(%rbp)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x87f25(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x7c294
movsd -0x68(%rbp), %xmm0
subsd -0x38(%rbp), %xmm0
divsd -0x48(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
jmp 0x7c2a4
movsd -0x68(%rbp), %xmm0
movq -0x58(%rbp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x87eda(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x2b8(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0xb8(%rbp), %ecx
movq -0x58(%rbp), %rax
movq (%rax), %rax
movl %ecx, 0x10(%rax)
movl -0x14(%rbp), %eax
subl $0x3e8, %eax            # imm = 0x3E8
movslq %eax, %rcx
leaq 0x87e7c(%rip), %rax     # 0x104190
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rcx
movq -0x30(%rbp), %r8
leaq -0x2f0(%rbp), %rdi
callq *%rax
leaq -0xc0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
cmpl $0x1, -0x18(%rbp)
jne 0x7c3ab
leaq 0x894e3(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7c3ab
movq -0x30(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x320(%rbp)
leaq 0x6b38d(%rip), %rdi     # 0xe770a
callq 0x79040
movaps %xmm0, %xmm1
movsd -0x320(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x7c39f
movl $0x0, -0xb8(%rbp)
jmp 0x7c3a9
movl $0x1, -0xb8(%rbp)
jmp 0x7c3ab
movl -0xb8(%rbp), %eax
cmpl -0x128(%rbp), %eax
je 0x7c3f1
cmpl $0x1, -0x20(%rbp)
je 0x7c3f1
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x88c6b(%rip), %xmm2    # 0x105040
movsd 0x88c6b(%rip), %xmm3    # 0x105048
movsd -0x78(%rbp), %xmm4
movsd -0x70(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq 0x89448(%rip), %rax     # 0x105840
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x7c4aa
cmpl $0x1, -0x20(%rbp)
je 0x7c4aa
movl -0x14(%rbp), %edi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0x7c4aa
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c451
jp 0x7c451
movsd -0x120(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0x7c475
movsd -0xb0(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7c4aa
movsd -0x120(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7c4aa
jp 0x7c4aa
leaq -0x26(%rbp), %rsi
movsd -0x68(%rbp), %xmm0
movsd -0x60(%rbp), %xmm1
movsd 0x88bb5(%rip), %xmm2    # 0x105040
movsd 0x88bb5(%rip), %xmm3    # 0x105048
movsd -0x88(%rbp), %xmm4
movsd -0x80(%rbp), %xmm5
movl $0x8, %edi
callq 0x3f100
leaq -0x130(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
movl $0x38, %edx
callq 0x42b0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x7c1a6
jmp 0x7c4d2
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x7c130
movq -0x30(%rbp), %rdi
callq 0x52e80
movb $0x0, %al
callq 0x42280
addq $0x320, %rsp            # imm = 0x320
popq %rbp
retq
nopl (%rax)