// File: /workspace/github_c_makefile_star2_O3/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 $0xe8, %rsp
movl %edx, %r14d
movq %rsi, 0xa8(%rsp)
movq %rdi, 0xa0(%rsp)
leaq 0x54a34(%rip), %rdi     # 0xaaca4
callq 0x54bec
movl %eax, 0x4c(%rsp)
leaq 0x7f5f0(%rip), %rax     # 0xd5870
movq (%rax), %rax
movslq 0x10(%rax), %rdi
shlq $0x3, %rdi
leaq 0x54a2a(%rip), %rsi     # 0xaacbc
movl $0x2, %edx
callq 0x3a0e1
movq %rax, 0x40(%rsp)
leaq 0x5450d(%rip), %rdi     # 0xaa7b5
callq 0x54bec
testl %eax, %eax
jne 0x562b8
xorl %eax, %eax
callq 0x2e342
leaq 0x35bdf9(%rip), %rax    # 0x3b20b8
movl 0xec(%rax), %ebx
leal 0x41(%rbx), %eax
movq %r14, 0x98(%rsp)
leal -0x3e8(%r14), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,4), %r14
leaq 0x7dedb(%rip), %r15     # 0xd41c0
movq 0x10(%r15,%r14,8), %rsi
movsbl %al, %edi
callq 0x2cbc4
movw $0x2e, 0xa(%rsp)
cmpl $0x0, 0x1c(%r15,%r14,8)
je 0x56348
leaq 0x150(%rsp), %rax
leaq 0x120(%rsp), %rcx
movq (%rcx), %rcx
movsd (%rcx), %xmm0
movsd %xmm0, 0x80(%rsp)
movsd 0x8(%rcx), %xmm0
movsd %xmm0, 0x88(%rsp)
movq (%rax), %r13
movsd (%r13), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x5634a
sqrtsd %xmm0, %xmm0
jmp 0x56353
jmp 0x56376
callq 0x4300
xorpd %xmm1, %xmm1
movsd %xmm0, 0x78(%rsp)
movsd 0x8(%r13), %xmm0
ucomisd %xmm1, %xmm0
jb 0x5636b
sqrtsd %xmm0, %xmm0
jmp 0x56370
callq 0x4300
movsd %xmm0, 0x70(%rsp)
leaq (%r15,%r14,8), %rbp
xorps %xmm0, %xmm0
cvtsi2sd %ebx, %xmm0
movsd %xmm0, 0x90(%rsp)
movl $0x3, %edi
callq 0x15391
movq %rax, 0x50(%rsp)
movl $0x1, %eax
movsd 0x4f17a(%rip), %xmm1    # 0xa5520
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movapd %xmm1, %xmm0
movq 0x50(%rsp), %r13
movq 0xa0(%rsp), %r12
movq 0x40(%rsp), %r15
movl %eax, 0x28(%rsp)
leaq 0x35bcec(%rip), %rax    # 0x3b20b8
movapd %xmm0, %xmm1
movsd 0x10(%rax), %xmm0
movsd 0x18(%rax), %xmm2
subsd %xmm0, %xmm2
divsd 0x51a32(%rip), %xmm2    # 0xa7e18
movsd %xmm1, 0x58(%rsp)
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
subsd 0x80(%rsp), %xmm2
divsd 0x78(%rsp), %xmm2
movsd %xmm2, 0x68(%rsp)
movl $0x1f3, %r14d           # imm = 0x1F3
movsd 0x4f103(%rip), %xmm0    # 0xa5520
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movl %ebx, 0x2c(%rsp)
cmpl $0x0, 0x1c(%rbp)
movsd 0x10(%rsp), %xmm0
je 0x56445
movsd 0x68(%rsp), %xmm0
movl %r14d, 0xc(%rsp)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x35bc5b(%rip), %rax    # 0x3b20b8
movsd 0x80(%rax), %xmm0
movsd 0x88(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x5199f(%rip), %xmm1    # 0xa7e18
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movq %rbp, %r9
cmpl $0x0, 0x1c(%rbp)
movapd %xmm1, %xmm0
je 0x564a3
movapd %xmm1, %xmm0
subsd 0x88(%rsp), %xmm0
divsd 0x70(%rsp), %xmm0
movsd %xmm1, 0x38(%rsp)
movq (%r13), %rax
movsd %xmm0, 0x8(%rax)
leaq 0xb0(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq 0xa8(%rsp), %rbx
movq %rbx, %rcx
movq %r15, %r8
movq %r9, %rbp
callq *0x8(%r9)
movl 0xb8(%rsp), %eax
movq (%r13), %rcx
movl %eax, 0x10(%rcx)
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %r15, %r8
callq *0x8(%rbp)
movl 0xb8(%rsp), %ebx
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
cmpl $0x1, 0x4c(%rsp)
jne 0x56556
leaq 0x7f354(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %r14d
jne 0x5655b
movq 0x40(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x5476a(%rip), %rdi     # 0xaacaa
callq 0x549ba
xorl %ebx, %ebx
movsd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x5655b
movl 0xc(%rsp), %r14d
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x5659e
cmpl 0x2c(%rsp), %ebx
je 0x5659e
movsd 0x7eafe(%rip), %xmm2    # 0xd5070
movsd 0x7eafe(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x10(%rsp), %xmm0
movsd 0x38(%rsp), %xmm1
movsd 0x90(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56658
leaq 0x7f2be(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x56658
movq 0x98(%rsp), %rdi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x3aa8c
testl %eax, %eax
je 0x56658
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f719(%rip), %xmm0    # 0xa5d08
jne 0x56603
jp 0x56603
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f707(%rip), %xmm0    # 0xa5d08
ja 0x56625
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f6f7(%rip), %xmm0    # 0xa5d08
jbe 0x56658
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f6e7(%rip), %xmm0    # 0xa5d08
jne 0x56658
jp 0x56658
movsd 0x7ea43(%rip), %xmm2    # 0xd5070
movsd 0x7ea43(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x10(%rsp), %xmm0
movsd 0x38(%rsp), %xmm1
movsd 0x515a2(%rip), %xmm4    # 0xa7bf0
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
movsd 0x4eec0(%rip), %xmm0    # 0xa5520
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
decl %r14d
jne 0x56423
movsd 0x58(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movl 0x28(%rsp), %eax
incl %eax
cmpl $0x1f4, %eax            # imm = 0x1F4
jne 0x563c1
movl $0x1, %eax
movsd 0x4ee7b(%rip), %xmm0    # 0xa5520
movq 0x50(%rsp), %r13
movq 0xa0(%rsp), %r12
movq 0x40(%rsp), %r15
movl %eax, 0x28(%rsp)
leaq 0x35b9f6(%rip), %rax    # 0x3b20b8
movapd %xmm0, %xmm1
movsd 0x18(%rax), %xmm0
movapd %xmm0, %xmm2
subsd 0x10(%rax), %xmm2
divsd 0x51724(%rip), %xmm2    # 0xa7e00
movsd %xmm1, 0x58(%rsp)
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
subsd 0x80(%rsp), %xmm2
divsd 0x78(%rsp), %xmm2
movsd %xmm2, 0x68(%rsp)
movl $0x1f3, %r14d           # imm = 0x1F3
movsd 0x4ee0d(%rip), %xmm0    # 0xa5520
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movl %ebx, 0x2c(%rsp)
cmpl $0x0, 0x1c(%rbp)
movsd 0x10(%rsp), %xmm0
je 0x5673b
movsd 0x68(%rsp), %xmm0
movl %r14d, 0xc(%rsp)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, (%rax)
leaq 0x35b965(%rip), %rax    # 0x3b20b8
movsd 0x88(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x80(%rax), %xmm1
divsd 0x51691(%rip), %xmm1    # 0xa7e00
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movq %rbp, %r9
cmpl $0x0, 0x1c(%rbp)
movapd %xmm1, %xmm0
je 0x56799
movapd %xmm1, %xmm0
subsd 0x88(%rsp), %xmm0
divsd 0x70(%rsp), %xmm0
movsd %xmm1, 0x38(%rsp)
movq (%r13), %rax
movsd %xmm0, 0x8(%rax)
leaq 0xb0(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq 0xa8(%rsp), %rbx
movq %rbx, %rcx
movq %r15, %r8
movq %r9, %rbp
callq *0x8(%r9)
movl 0xb8(%rsp), %eax
movq (%r13), %rcx
movl %eax, 0x10(%rcx)
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %r15, %r8
callq *0x8(%rbp)
movl 0xb8(%rsp), %ebx
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
cmpl $0x1, 0x4c(%rsp)
jne 0x5684c
leaq 0x7f05e(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %r14d
jne 0x56851
movq 0x40(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x54474(%rip), %rdi     # 0xaacaa
callq 0x549ba
xorl %ebx, %ebx
movsd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x56851
movl 0xc(%rsp), %r14d
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56894
cmpl 0x2c(%rsp), %ebx
je 0x56894
movsd 0x7e808(%rip), %xmm2    # 0xd5070
movsd 0x7e808(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x10(%rsp), %xmm0
movsd 0x38(%rsp), %xmm1
movsd 0x90(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x5694e
leaq 0x7efc8(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x5694e
movq 0x98(%rsp), %rdi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x3aa8c
testl %eax, %eax
je 0x5694e
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f423(%rip), %xmm0    # 0xa5d08
jne 0x568f9
jp 0x568f9
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f411(%rip), %xmm0    # 0xa5d08
ja 0x5691b
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f401(%rip), %xmm0    # 0xa5d08
jbe 0x5694e
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f3f1(%rip), %xmm0    # 0xa5d08
jne 0x5694e
jp 0x5694e
movsd 0x7e74d(%rip), %xmm2    # 0xd5070
movsd 0x7e74d(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x10(%rsp), %xmm0
movsd 0x38(%rsp), %xmm1
movsd 0x512ac(%rip), %xmm4    # 0xa7bf0
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
movsd 0x4ebca(%rip), %xmm0    # 0xa5520
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
decl %r14d
jne 0x56719
movsd 0x58(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movl 0x28(%rsp), %eax
incl %eax
cmpl $0x1f4, %eax            # imm = 0x1F4
jne 0x566b7
movl $0x1, %eax
movsd 0x4eb85(%rip), %xmm1    # 0xa5520
movapd %xmm1, %xmm0
movq 0xa0(%rsp), %r12
movq 0x40(%rsp), %r15
movl %eax, 0x28(%rsp)
leaq 0x35b701(%rip), %rax    # 0x3b20b8
movapd %xmm0, %xmm1
movsd 0x80(%rax), %xmm0
movsd 0x88(%rax), %xmm2
subsd %xmm0, %xmm2
divsd 0x51441(%rip), %xmm2    # 0xa7e18
movsd %xmm1, 0x58(%rsp)
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
subsd 0x88(%rsp), %xmm2
divsd 0x70(%rsp), %xmm2
movsd %xmm2, 0x68(%rsp)
movl $0x1f3, %r14d           # imm = 0x1F3
movsd 0x4eb12(%rip), %xmm0    # 0xa5520
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movl %ebx, 0x2c(%rsp)
cmpl $0x0, 0x1c(%rbp)
movsd 0x10(%rsp), %xmm0
je 0x56a36
movsd 0x68(%rsp), %xmm0
movl %r14d, 0xc(%rsp)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x35b669(%rip), %rax    # 0x3b20b8
movsd 0x10(%rax), %xmm0
movsd 0x18(%rax), %xmm1
subsd %xmm0, %xmm1
divsd 0x513b3(%rip), %xmm1    # 0xa7e18
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movq %rbp, %r9
cmpl $0x0, 0x1c(%rbp)
movapd %xmm1, %xmm0
je 0x56a8f
movapd %xmm1, %xmm0
subsd 0x80(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm1, 0x38(%rsp)
movq 0x50(%rsp), %r14
movq (%r14), %rax
movsd %xmm0, (%rax)
leaq 0xb0(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq 0xa8(%rsp), %rbx
movq %rbx, %rcx
movq %r15, %r8
movq %r9, %rbp
callq *0x8(%r9)
movl 0xb8(%rsp), %eax
movq (%r14), %rcx
movl %eax, 0x10(%rcx)
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %r15, %r8
callq *0x8(%rbp)
movl 0xb8(%rsp), %ebx
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
cmpl $0x1, 0x4c(%rsp)
jne 0x56b44
leaq 0x7ed66(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %r14d
jne 0x56b49
movq 0x40(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x5417c(%rip), %rdi     # 0xaacaa
callq 0x549ba
xorl %ebx, %ebx
movsd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x56b49
movl 0xc(%rsp), %r14d
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56b8c
cmpl 0x2c(%rsp), %ebx
je 0x56b8c
movsd 0x7e510(%rip), %xmm2    # 0xd5070
movsd 0x7e510(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x38(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x90(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56c46
leaq 0x7ecd0(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x56c46
movq 0x98(%rsp), %rdi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x3aa8c
testl %eax, %eax
je 0x56c46
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f12b(%rip), %xmm0    # 0xa5d08
jne 0x56bf1
jp 0x56bf1
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f119(%rip), %xmm0    # 0xa5d08
ja 0x56c13
movsd 0x20(%rsp), %xmm0
ucomisd 0x4f109(%rip), %xmm0    # 0xa5d08
jbe 0x56c46
movsd 0x30(%rsp), %xmm0
ucomisd 0x4f0f9(%rip), %xmm0    # 0xa5d08
jne 0x56c46
jp 0x56c46
movsd 0x7e455(%rip), %xmm2    # 0xd5070
movsd 0x7e455(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x38(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x50fb4(%rip), %xmm4    # 0xa7bf0
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
movsd 0x4e8d2(%rip), %xmm0    # 0xa5520
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
decl %r14d
jne 0x56a14
movsd 0x58(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movl 0x28(%rsp), %eax
incl %eax
cmpl $0x1f4, %eax            # imm = 0x1F4
jne 0x569ac
movl $0x1, %eax
movsd 0x4e88d(%rip), %xmm0    # 0xa5520
movq 0x50(%rsp), %r13
movq 0xa0(%rsp), %r12
movq 0x40(%rsp), %r15
movl %eax, 0x28(%rsp)
leaq 0x35b408(%rip), %rax    # 0x3b20b8
movapd %xmm0, %xmm1
movsd 0x88(%rax), %xmm0
movapd %xmm0, %xmm2
subsd 0x80(%rax), %xmm2
divsd 0x51130(%rip), %xmm2    # 0xa7e00
movsd %xmm1, 0x58(%rsp)
mulsd %xmm1, %xmm2
addsd %xmm0, %xmm2
movsd %xmm2, 0x10(%rsp)
subsd 0x88(%rsp), %xmm2
divsd 0x70(%rsp), %xmm2
movsd %xmm2, 0x68(%rsp)
movl $0x1f3, %r14d           # imm = 0x1F3
movsd 0x4e819(%rip), %xmm0    # 0xa5520
movsd %xmm0, 0x18(%rsp)
movsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movl %ebx, 0x2c(%rsp)
cmpl $0x0, 0x1c(%rbp)
movsd 0x10(%rsp), %xmm0
je 0x56d2f
movsd 0x68(%rsp), %xmm0
movl %r14d, 0xc(%rsp)
movq 0x50(%rsp), %rax
movq (%rax), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x35b370(%rip), %rax    # 0x3b20b8
movsd 0x18(%rax), %xmm0
movapd %xmm0, %xmm1
subsd 0x10(%rax), %xmm1
divsd 0x510a2(%rip), %xmm1    # 0xa7e00
mulsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movq %rbp, %r9
cmpl $0x0, 0x1c(%rbp)
movapd %xmm1, %xmm0
je 0x56d88
movapd %xmm1, %xmm0
subsd 0x80(%rsp), %xmm0
divsd 0x78(%rsp), %xmm0
movsd %xmm1, 0x38(%rsp)
movq (%r13), %rax
movsd %xmm0, (%rax)
leaq 0xb0(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq 0xa8(%rsp), %rbx
movq %rbx, %rcx
movq %r15, %r8
movq %r9, %rbp
callq *0x8(%r9)
movl 0xb8(%rsp), %eax
movq (%r13), %rcx
movl %eax, 0x10(%rcx)
movq %r14, %rdi
movq %r13, %rsi
movq %r12, %rdx
movq %rbx, %rcx
movq %r15, %r8
callq *0x8(%rbp)
movl 0xb8(%rsp), %ebx
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
cmpl $0x1, 0x4c(%rsp)
jne 0x56e3a
leaq 0x7ea70(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
movl 0xc(%rsp), %r14d
jne 0x56e3f
movq 0x40(%rsp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
leaq 0x53e86(%rip), %rdi     # 0xaacaa
callq 0x549ba
xorl %ebx, %ebx
movsd 0x60(%rsp), %xmm1
ucomisd %xmm0, %xmm1
setbe %bl
jmp 0x56e3f
movl 0xc(%rsp), %r14d
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56e82
cmpl 0x2c(%rsp), %ebx
je 0x56e82
movsd 0x7e21a(%rip), %xmm2    # 0xd5070
movsd 0x7e21a(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x38(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x90(%rsp), %xmm4
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
cmpl $0x1f3, %r14d           # imm = 0x1F3
je 0x56f3c
leaq 0x7e9da(%rip), %rax     # 0xd5870
movq (%rax), %rax
cmpl $0x2, 0x10(%rax)
jne 0x56f3c
movq 0x98(%rsp), %rdi
movl $0x2, %esi
movl $0x3f9, %edx            # imm = 0x3F9
movl $0x3fa, %ecx            # imm = 0x3FA
xorl %eax, %eax
callq 0x3aa8c
testl %eax, %eax
je 0x56f3c
movsd 0x20(%rsp), %xmm0
ucomisd 0x4ee35(%rip), %xmm0    # 0xa5d08
jne 0x56ee7
jp 0x56ee7
movsd 0x30(%rsp), %xmm0
ucomisd 0x4ee23(%rip), %xmm0    # 0xa5d08
ja 0x56f09
movsd 0x20(%rsp), %xmm0
ucomisd 0x4ee13(%rip), %xmm0    # 0xa5d08
jbe 0x56f3c
movsd 0x30(%rsp), %xmm0
ucomisd 0x4ee03(%rip), %xmm0    # 0xa5d08
jne 0x56f3c
jp 0x56f3c
movsd 0x7e15f(%rip), %xmm2    # 0xd5070
movsd 0x7e15f(%rip), %xmm3    # 0xd5078
movl $0x8, %edi
movsd 0x38(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x50cbe(%rip), %xmm4    # 0xa7bf0
leaq 0xa(%rsp), %rsi
callq 0x2cc6c
movsd 0x4e5dc(%rip), %xmm0    # 0xa5520
movsd 0x18(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
decl %r14d
jne 0x56d0d
movsd 0x58(%rsp), %xmm1
addsd %xmm0, %xmm1
movapd %xmm1, %xmm0
movl 0x28(%rsp), %eax
incl %eax
cmpl $0x1f4, %eax            # imm = 0x1F4
jne 0x56ca5
movq 0x40(%rsp), %rdi
callq 0x3a180
xorl %eax, %eax
callq 0x2e6d0
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq