// File: /workspace/github_cpp_makefile_star2_O2/tomfunkhouser[P]gaps/apps/prpview/prpview.cpp
// Function: GLUTRedraw()
void GLUTRedraw(void)
{
  // Set viewing transformation
  viewer->Camera().Load();

  // Clear window 
  glClearColor(1, 1, 1, 1);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  // Set backface culling
  if (show_backfacing) glDisable(GL_CULL_FACE);
  else glEnable(GL_CULL_FACE);

  // Set overhead light
  static GLfloat light2_position[] = { 3.0, 4.0, 5.0, 0.0 };
  glLightfv(GL_LIGHT2, GL_POSITION, light2_position);
  // glEnable(GL_LIGHT2);

  // Draw faces
  if (show_faces) {
    if (show_values) {
      glEnable(GL_LIGHTING);
      glEnable(GL_POLYGON_OFFSET_FILL);
      glPolygonOffset(2, 1);
      RNGrfxBegin(RN_GRFX_TRIANGLES);
      for (int i = 0; i < mesh->NFaces(); i++) {
        R3MeshFace *face = mesh->Face(i);
        for (int j = 0; j < 3; j++) {
          R3MeshVertex *vertex = mesh->VertexOnFace(face, j);
          RNLoadRgb(NormalizedColor(vertex));
          R3LoadNormal(mesh->VertexNormal(vertex));
          R3LoadPoint(mesh->VertexPosition(vertex));
        }
      }
      RNGrfxEnd();
      glDisable(GL_POLYGON_OFFSET_FILL);
    }
    else {
      glEnable(GL_LIGHTING);
      RNLoadRgb(0.8, 0.8, 0.8);
      RNGrfxBegin(RN_GRFX_TRIANGLES);
      for (int i = 0; i < mesh->NFaces(); i++) {
        R3MeshFace *face = mesh->Face(i);
        R3LoadNormal(mesh->FaceNormal(face));
        for (int j = 0; j < 3; j++) {
          R3MeshVertex *vertex = mesh->VertexOnFace(face, j);
          R3LoadNormal(mesh->VertexNormal(vertex));
          R3LoadPoint(mesh->VertexPosition(vertex));
        }
      }
      RNGrfxEnd();
    }
  }

  // Draw vertices
  if (show_vertices) {
    if (show_values) {
      glDisable(GL_LIGHTING);
      RNGrfxBegin(RN_GRFX_POINTS);
      for (int i = 0; i < mesh->NVertices(); i++) {
        R3MeshVertex *vertex = mesh->Vertex(i);
        RNLoadRgb(NormalizedColor(vertex));
        R3LoadNormal(mesh->VertexNormal(vertex));
        R3LoadPoint(mesh->VertexPosition(vertex));
      }
      RNGrfxEnd();
    }
    else {
      glEnable(GL_LIGHTING);
      RNLoadRgb(0.8, 0.8, 0.8);
      RNGrfxBegin(RN_GRFX_POINTS);
      for (int i = 0; i < mesh->NVertices(); i++) {
        R3MeshVertex *vertex = mesh->Vertex(i);
        R3LoadNormal(mesh->VertexNormal(vertex));
        R3LoadNormal(mesh->VertexNormal(vertex));
        R3LoadPoint(mesh->VertexPosition(vertex));
      }
      RNGrfxEnd();
    }
  }

  // Draw points
  if (points && show_points) {
    // Draw points
    glEnable(GL_LIGHTING);
    if (color_with_redness) RNLoadRgb(0, 0, 1);
    else RNLoadRgb(1, 1, 0);
    RNLength radius = 0.008 * mesh->BBox().LongestAxisLength();
    for (int i = 0; i < points->NEntries(); i++) {
      Point *point = points->Kth(i);
      R3Sphere(point->position, radius).Draw();
    }
  }

  // Draw isocontours
  if (show_isocontours) {
    glDisable(GL_LIGHTING);
    RNLoadRgb(1, 1, 1);
    glLineWidth(1);
    RNGrfxBegin(RN_GRFX_LINES);
    for (int isostep = 1; isostep < nisosteps; isostep++) {
      double isolevel = (double) isostep / (double) nisosteps;
      for (int i = 0; i < mesh->NFaces(); i++) {
        R3MeshFace *face = mesh->Face(i);
        for (int j = 0; j < 3; j++) {
          R3MeshVertex *vertex = mesh->VertexOnFace(face, j);
          RNScalar value = NormalizedValue(vertex);
          R3MeshVertex *vertex1 = mesh->VertexOnFace(face, (j+1)%3);
          RNScalar value1 = NormalizedValue(vertex1);
          R3MeshVertex *vertex2 = mesh->VertexOnFace(face, (j+2)%3);
          RNScalar value2 = NormalizedValue(vertex2);
          RNScalar t1, t2;
          if (value < isolevel) {
            if ((value1 <= isolevel) || (value2 <= isolevel)) continue;
            t1 = (isolevel - value) / (value1 - value);
            t2 = (isolevel - value) / (value2 - value);
          }
          else if (value > isolevel) {
            if ((value1 >= isolevel) || (value2 >= isolevel)) continue;
            t1 = (value - isolevel) / (value - value1);
            t2 = (value - isolevel) / (value - value2);
          }
          else continue;
          R3Point position = mesh->VertexPosition(vertex);
          R3Point position1 = mesh->VertexPosition(vertex1);
          R3Point position2 = mesh->VertexPosition(vertex2);
          R3Vector vector1 = t1 * (position1 - position);
          R3Vector vector2 = t2 * (position2 - position);
          R3Point point1 = position + vector1;
          R3Point point2 = position + vector2;
          R3LoadPoint(point1);
          R3LoadPoint(point2);
        }
      }
    }
    RNGrfxEnd();
    glLineWidth(1);
  }

  // Draw extrema
  if (show_global_maxima || show_global_minima || show_local_maxima || show_local_minima) {
    glEnable(GL_LIGHTING);
    for (int i = 0; i < mesh->NVertices(); i++) {
      R3MeshVertex *vertex = mesh->Vertex(i);
      R3Point position = mesh->VertexPosition(vertex);
      RNScalar value = Value(vertex);
      if (show_global_minima && (value == current_property->Minimum())) {
        RNLoadRgb(1, 1, 1);
        RNScalar radius = 0.01 * mesh->BBox().DiagonalLength();
        R3Sphere(position, radius).Draw();
      }
      if (show_global_maxima && (value == current_property->Maximum())) {
        RNLoadRgb(1, 1, 1);
        RNScalar radius = 0.01 * mesh->BBox().DiagonalLength();
        R3Sphere(position, radius).Draw();
      }
      if (show_local_minima && (current_property->IsLocalMinimum(vertex))) {
        RNLoadRgb(0.5, 1, 1);
        RNScalar radius = 0.005 * mesh->BBox().DiagonalLength();
        R3Sphere(position, radius).Draw();
      }
      if (show_local_maxima && (current_property->IsLocalMaximum(vertex))) {
        RNLoadRgb(0, 0.5, 0);
        RNScalar radius = 0.005 * mesh->BBox().DiagonalLength();
        R3Sphere(position, radius).Draw();
      }
    }
  }

  // Draw text
  if (show_text) {
    char buffer[1024];
    glDisable(GL_LIGHTING);
    RNLength d = 0.004 * mesh->BBox().DiagonalRadius();
    for (int i = 0; i < mesh->NVertices(); i++) {
      R3MeshVertex *vertex = mesh->Vertex(i);
      R3Point position = mesh->VertexPosition(vertex);
      const R3Vector normal = mesh->VertexNormal(vertex);
      sprintf(buffer, "%g", Value(vertex));
      R3DrawText(position + d * normal, buffer);
    }
  }

  // Draw statistics
  if (show_statistics) {
    glDisable(GL_LIGHTING);
    RNLoadRgb(0, 0, 0);
    double y = GLUTwindow_height - 20;
    viewer->DrawText(10, y, current_property->Name()); y-= 20;
    DrawText(10, y, "Index", properties->PropertyIndex(current_property)); y-= 20;
    DrawText(10, y, "Mean", current_property->Mean()); y-= 20;
    DrawText(10, y, "Min", current_property->Minimum()); y-= 20;
    DrawText(10, y, "Max", current_property->Maximum()); y-= 20;
    DrawText(10, y, "Stddev", current_property->StandardDeviation()); y-= 20;
    DrawText(10, y, "Entropy", current_property->Entropy()); y-= 20;
    DrawText(10, y, "Min Display Value", value_range.Min()); y-= 20;
    DrawText(10, y, "Max Display Value", value_range.Max()); y-= 20;
    DrawText(10, y, "Min Display Percentile", percentile_range.Min()); y-= 20;
    DrawText(10, y, "Max Display Percentile", percentile_range.Max()); y-= 20;
  }

  // Capture image and exit
  if (image_name) {
    R2Image image(GLUTwindow_width, GLUTwindow_height, 3);
    image.Capture();
    image.Write(image_name);
    GLUTStop();
  }

  // Swap buffers 
  glutSwapBuffers();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x4d8, %rsp            # imm = 0x4D8
movq 0x1150ed(%rip), %rdi    # 0x139958
addq $0x8, %rdi
xorl %esi, %esi
callq 0x28d3e
movss 0xa4786(%rip), %xmm0    # 0xc9004
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
movapd %xmm0, %xmm3
callq 0x21e20
movl $0x4100, %edi           # imm = 0x4100
callq 0x211f0
cmpl $0x0, 0x1150c4(%rip)    # 0x139964
je 0x248ae
movl $0xb44, %edi            # imm = 0xB44
callq 0x21200
jmp 0x248b8
movl $0xb44, %edi            # imm = 0xB44
callq 0x21810
leaq 0x1100f1(%rip), %rdx    # 0x1349b0
movl $0x4002, %edi           # imm = 0x4002
movl $0x1203, %esi           # imm = 0x1203
callq 0x220a0
cmpl $0x0, 0x1100eb(%rip)    # 0x1349c0
je 0x24a2e
movl 0x1100e3(%rip), %ebx    # 0x1349c4
movl $0xb50, %edi            # imm = 0xB50
callq 0x21810
testl %ebx, %ebx
je 0x249a3
pushq $0x1
popq %r15
movl $0x8037, %edi           # imm = 0x8037
callq 0x21810
movss 0xa46ff(%rip), %xmm0    # 0xc9008
movss 0xa46f3(%rip), %xmm1    # 0xc9004
callq 0x21f90
pushq $0x4
popq %rdi
callq 0x21180
xorl %r12d, %r12d
leaq 0xd0(%rsp), %rbx
movq 0x115038(%rip), %rax    # 0x139968
movslq 0x34(%rax), %rcx
cmpq %rcx, %r12
jge 0x2498f
movq 0x28(%rax), %rax
movq (%rax,%r12,8), %r13
movq %r15, %rbp
cmpq $0x4, %rbp
je 0x2498a
movq (%r13,%rbp,8), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x254dc
movq %rbx, %rdi
callq 0x269cb
movq 0x114fff(%rip), %rdi    # 0x139968
movq %r14, %rsi
callq 0x269de
movq %rax, %rdi
callq 0x21e00
addq $0x18, %r14
movq %r14, %rdi
callq 0x211a0
incq %rbp
jmp 0x24944
incq %r12
jmp 0x24929
callq 0x21c40
movl $0x8037, %edi           # imm = 0x8037
callq 0x21200
jmp 0x24a2e
movsd 0xa4665(%rip), %xmm0    # 0xc9010
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x21e70
pushq $0x4
popq %rdi
callq 0x21180
xorl %r15d, %r15d
pushq $0x1
popq %r12
movq 0x114f9a(%rip), %rdi    # 0x139968
movslq 0x34(%rdi), %rax
cmpq %rax, %r15
jge 0x24a29
movq 0x28(%rdi), %rax
movq (%rax,%r15,8), %rbx
movq %rbx, %rsi
callq 0x26a30
movq %rax, %rdi
callq 0x21e00
movq %r12, %r13
cmpq $0x4, %r13
je 0x24a24
movq (%rbx,%r13,8), %r14
movq 0x114f65(%rip), %rdi    # 0x139968
movq %r14, %rsi
callq 0x269de
movq %rax, %rdi
callq 0x21e00
addq $0x18, %r14
movq %r14, %rdi
callq 0x211a0
incq %r13
jmp 0x249f2
incq %r15
jmp 0x249c7
callq 0x21c40
cmpl $0x0, 0x114f3b(%rip)    # 0x139970
je 0x24b35
cmpl $0x0, 0x10ff82(%rip)    # 0x1349c4
je 0x24ab7
movl $0xb50, %edi            # imm = 0xB50
callq 0x21200
xorl %r15d, %r15d
xorl %edi, %edi
callq 0x21180
leaq 0xd0(%rsp), %rbx
movq 0x114f01(%rip), %rax    # 0x139968
movslq 0x14(%rax), %rcx
cmpq %rcx, %r15
jge 0x24b30
movq 0x8(%rax), %rax
movq (%rax,%r15,8), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x254dc
movq %rbx, %rdi
callq 0x269cb
movq 0x114ed2(%rip), %rdi    # 0x139968
movq %r14, %rsi
callq 0x269de
movq %rax, %rdi
callq 0x21e00
addq $0x18, %r14
movq %r14, %rdi
callq 0x211a0
incq %r15
jmp 0x24a60
movl $0xb50, %edi            # imm = 0xB50
callq 0x21810
movsd 0xa4547(%rip), %xmm0    # 0xc9010
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x21e70
xorl %r14d, %r14d
xorl %edi, %edi
callq 0x21180
movq 0x114e81(%rip), %rdi    # 0x139968
movslq 0x14(%rdi), %rax
cmpq %rax, %r14
jge 0x24b30
movq 0x8(%rdi), %rax
movq (%rax,%r14,8), %rbx
movq %rbx, %rsi
callq 0x269de
movq %rax, %rdi
callq 0x21e00
movq 0x114e59(%rip), %rdi    # 0x139968
movq %rbx, %rsi
callq 0x269de
movq %rax, %rdi
callq 0x21e00
addq $0x18, %rbx
movq %rbx, %rdi
callq 0x211a0
incq %r14
jmp 0x24ae0
callq 0x21c40
cmpq $0x0, 0x114e3b(%rip)    # 0x139978
je 0x24bf1
cmpl $0x0, 0x114e36(%rip)    # 0x139980
je 0x24bf1
movl $0xb50, %edi            # imm = 0xB50
callq 0x21810
cmpb $0x1, 0x114e23(%rip)    # 0x139984
jne 0x24b75
movss 0xa4499(%rip), %xmm2    # 0xc9004
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
jmp 0x24b85
movss 0xa4487(%rip), %xmm0    # 0xc9004
xorpd %xmm2, %xmm2
movapd %xmm0, %xmm1
callq 0x22300
movl $0xf8, %edi
addq 0x114dd2(%rip), %rdi    # 0x139968
callq 0x6812a
mulsd 0xa4475(%rip), %xmm0    # 0xc9018
movsd %xmm0, (%rsp)
xorl %r14d, %r14d
leaq 0xd0(%rsp), %rbx
movq 0x114dbe(%rip), %rax    # 0x139978
movslq 0xc(%rax), %rcx
cmpq %rcx, %r14
jge 0x24bf1
movq (%rax), %rax
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
movsd (%rsp), %xmm0
callq 0x657f8
movl $0x772, %esi            # imm = 0x772
movq %rbx, %rdi
callq 0x40ea2
movq %rbx, %rdi
callq 0x687f2
incq %r14
jmp 0x24bb3
cmpl $0x0, 0x114d90(%rip)    # 0x139988
je 0x24e92
movl $0xb50, %edi            # imm = 0xB50
callq 0x21200
movss 0xa43f4(%rip), %xmm0    # 0xc9004
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x22300
movss 0xa43df(%rip), %xmm0    # 0xc9004
callq 0x22140
pushq $0x1
popq %rbx
movl %ebx, %edi
callq 0x21180
movsd 0xa43e4(%rip), %xmm0    # 0xc9020
movsd %xmm0, 0x10(%rsp)
cmpl $0x14, %ebx
je 0x24e80
movl %ebx, 0x1c(%rsp)
movsd 0x10(%rsp), %xmm1
divsd 0xa43cb(%rip), %xmm1    # 0xc9028
xorl %edx, %edx
movsd %xmm1, 0x28(%rsp)
movq 0x114cfc(%rip), %rax    # 0x139968
movslq 0x34(%rax), %rcx
cmpq %rcx, %rdx
jge 0x24e61
movq 0x28(%rax), %rax
movq %rdx, 0x20(%rsp)
movq (%rax,%rdx,8), %r13
pushq $0x1
popq %rbx
xorl %r14d, %r14d
cmpq $0x4, %rbx
je 0x24e54
movq %r14, %r15
movq (%r13,%rbx,8), %r12
movq %r12, %rdi
callq 0x255fc
movapd %xmm0, (%rsp)
incq %r14
cmpq $0x3, %r14
movl %r14d, %eax
movl $0x0, %ecx
cmovneq %rax, %rcx
movq 0x8(%r13,%rcx,8), %rbp
movq %rbp, %rdi
callq 0x255fc
movapd %xmm0, 0x30(%rsp)
leal -0x1(%r15), %eax
testq %r15, %r15
cltq
pushq $0x2
popq %rcx
cmoveq %rcx, %rax
movq 0x8(%r13,%rax,8), %r15
movq %r15, %rdi
callq 0x255fc
movapd (%rsp), %xmm3
movsd 0x28(%rsp), %xmm1
ucomisd %xmm3, %xmm1
jbe 0x24d38
movapd 0x30(%rsp), %xmm2
ucomisd %xmm2, %xmm1
jae 0x24e4c
ucomisd %xmm0, %xmm1
jae 0x24e4c
subsd %xmm3, %xmm1
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
subpd %xmm3, %xmm2
unpcklpd %xmm1, %xmm1            # xmm1 = xmm1[0,0]
divpd %xmm2, %xmm1
movapd %xmm1, (%rsp)
jmp 0x24d7d
ucomisd %xmm1, %xmm3
movapd 0x30(%rsp), %xmm4
jbe 0x24e4c
ucomisd %xmm1, %xmm4
jae 0x24e4c
ucomisd %xmm1, %xmm0
jae 0x24e4c
movapd %xmm3, %xmm2
subsd %xmm1, %xmm2
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
unpcklpd %xmm0, %xmm4            # xmm4 = xmm4[0],xmm0[0]
subpd %xmm4, %xmm3
unpcklpd %xmm2, %xmm2            # xmm2 = xmm2[0,0]
divpd %xmm3, %xmm2
movapd %xmm2, (%rsp)
addq $0x18, %r12
leaq 0xd0(%rsp), %rdi
movq %r12, %rsi
callq 0x6f6dc
addq $0x18, %rbp
leaq 0x70(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rsi
callq 0x6f6dc
addq $0x18, %r15
leaq 0x58(%rsp), %rdi
movq %r15, %rsi
callq 0x6f6dc
leaq 0x88(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
leaq 0xd0(%rsp), %rbp
movq %rbp, %rdx
callq 0x6f8a9
leaq 0x40(%rsp), %rdi
movq %r15, %rsi
movaps (%rsp), %xmm0
callq 0x70582
leaq 0xb8(%rsp), %r12
movq %r12, %rdi
leaq 0x58(%rsp), %rsi
movq %rbp, %rdx
callq 0x6f8a9
movapd (%rsp), %xmm0
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
movq %r15, %rdi
movq %r12, %rsi
callq 0x70582
movq %r12, %rdi
movq %rbp, %rsi
leaq 0x40(%rsp), %rdx
callq 0x6f993
leaq 0xa0(%rsp), %rbp
movq %rbp, %rdi
leaq 0xd0(%rsp), %rsi
movq %r15, %rdx
callq 0x6f993
movq %r12, %rdi
callq 0x211a0
movq %rbp, %rdi
callq 0x211a0
incq %rbx
jmp 0x24c8c
movq 0x20(%rsp), %rdx
incq %rdx
jmp 0x24c65
movsd 0x10(%rsp), %xmm0
addsd 0xa41b1(%rip), %xmm0    # 0xc9020
movsd %xmm0, 0x10(%rsp)
movl 0x1c(%rsp), %ebx
incl %ebx
jmp 0x24c42
callq 0x21c40
movss 0xa4177(%rip), %xmm0    # 0xc9004
callq 0x22140
cmpl $0x0, 0x114af3(%rip)    # 0x13998c
jne 0x25255
cmpl $0x0, 0x114aea(%rip)    # 0x139990
jne 0x25255
cmpl $0x0, 0x114ae1(%rip)    # 0x139994
jne 0x25255
cmpl $0x0, 0x114ad8(%rip)    # 0x139998
jne 0x25255
cmpl $0x0, 0x114adb(%rip)    # 0x1399a8
je 0x24fb9
movl $0xb50, %edi            # imm = 0xB50
callq 0x21200
movl $0xf8, %edi
addq 0x114a7f(%rip), %rdi    # 0x139968
callq 0x269fe
mulsd 0xa413a(%rip), %xmm0    # 0xc9030
movsd %xmm0, (%rsp)
xorl %ebx, %ebx
leaq 0x88(%rsp), %r13
leaq 0x40(%rsp), %rbp
movq 0x114a57(%rip), %rax    # 0x139968
movslq 0x14(%rax), %rcx
cmpq %rcx, %rbx
jge 0x24fb9
movq 0x8(%rax), %rax
movq (%rax,%rbx,8), %r15
leaq 0x18(%r15), %rsi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x6f6dc
movq 0x114a2a(%rip), %rdi    # 0x139968
movq %r15, %rsi
callq 0x269de
leaq 0x58(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
callq 0x6fe9c
movq 0x114a43(%rip), %rax    # 0x1399a0
movslq 0x70(%r15), %rcx
movq 0x410(%rax), %rax
movsd (%rax,%rcx,8), %xmm0
leaq 0xd0(%rsp), %r15
movq %r15, %rdi
leaq 0xa4224(%rip), %rsi     # 0xc91a3
movb $0x1, %al
callq 0x21130
movq %r13, %rdi
movq %r12, %rsi
movsd (%rsp), %xmm0
callq 0x70582
movq %rbp, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x6f993
movq %rbp, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x26a0e
incq %rbx
jmp 0x24f0a
cmpl $0x0, 0x10fa08(%rip)    # 0x1349c8
je 0x25230
movl $0xb50, %edi            # imm = 0xB50
callq 0x21200
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
callq 0x22300
movl 0x10f9e5(%rip), %eax    # 0x1349cc
addl $-0x14, %eax
cvtsi2sd %eax, %xmm1
movsd %xmm1, (%rsp)
movq 0x11495e(%rip), %rdi    # 0x139958
movq 0x11499f(%rip), %rsi    # 0x1399a0
addq $0x8, %rsi
movsd 0xa402b(%rip), %xmm0    # 0xc9038
xorl %edx, %edx
callq 0x280e6
movsd (%rsp), %xmm0
addsd 0xa401f(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x114983(%rip), %rdi    # 0x1399b0
movq 0x11496c(%rip), %rsi    # 0x1399a0
callq 0x41364
cvtsi2sd %eax, %xmm2
leaq 0xa6b05(%rip), %rdi     # 0xcbb49
movsd 0xa3fec(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm0
addsd 0xa3fdd(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x114931(%rip), %rdi    # 0x1399a0
callq 0x4315a
movapd %xmm0, %xmm2
leaq 0xa4127(%rip), %rdi     # 0xc91a6
movsd 0xa3fb1(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm0
addsd 0xa3fa2(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x1148f6(%rip), %rdi    # 0x1399a0
callq 0x431e8
movapd %xmm0, %xmm2
leaq 0xa40f1(%rip), %rdi     # 0xc91ab
movsd 0xa3f76(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm0
addsd 0xa3f67(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x1148bb(%rip), %rdi    # 0x1399a0
callq 0x43268
movapd %xmm0, %xmm2
leaq 0xa40ba(%rip), %rdi     # 0xc91af
movsd 0xa3f3b(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm0
addsd 0xa3f2c(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x114880(%rip), %rdi    # 0x1399a0
callq 0x432e8
movapd %xmm0, %xmm2
leaq 0xa4083(%rip), %rdi     # 0xc91b3
movsd 0xa3f00(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm0
addsd 0xa3ef1(%rip), %xmm0    # 0xc9040
movsd %xmm0, (%rsp)
movq 0x114845(%rip), %rdi    # 0x1399a0
callq 0x433ea
movapd %xmm0, %xmm2
leaq 0xa404f(%rip), %rdi     # 0xc91ba
movsd 0xa3ec5(%rip), %xmm0    # 0xc9038
movsd (%rsp), %xmm1
callq 0x247ec
movsd (%rsp), %xmm1
addsd 0xa3eb6(%rip), %xmm1    # 0xc9040
movsd %xmm1, (%rsp)
movsd 0x114799(%rip), %xmm2   # 0x139930
leaq 0xa4024(%rip), %rdi     # 0xc91c2
movsd 0xa3e92(%rip), %xmm0    # 0xc9038
callq 0x247ec
movsd (%rsp), %xmm1
addsd 0xa3e88(%rip), %xmm1    # 0xc9040
movsd %xmm1, (%rsp)
movsd 0x114773(%rip), %xmm2   # 0x139938
leaq 0xa4008(%rip), %rdi     # 0xc91d4
movsd 0xa3e64(%rip), %xmm0    # 0xc9038
callq 0x247ec
movsd (%rsp), %xmm1
addsd 0xa3e5a(%rip), %xmm1    # 0xc9040
movsd %xmm1, (%rsp)
movsd 0x11472d(%rip), %xmm2   # 0x139920
leaq 0xa3fec(%rip), %rdi     # 0xc91e6
movsd 0xa3e36(%rip), %xmm0    # 0xc9038
callq 0x247ec
movsd (%rsp), %xmm1
addsd 0xa3e2c(%rip), %xmm1    # 0xc9040
movsd 0x11470c(%rip), %xmm2   # 0x139928
leaq 0xa3fda(%rip), %rdi     # 0xc91fd
movsd 0xa3e0d(%rip), %xmm0    # 0xc9038
callq 0x247ec
cmpq $0x0, 0x114780(%rip)    # 0x1399b8
jne 0x2546a
callq 0xbc636
addq $0x4d8, %rsp            # imm = 0x4D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xb50, %edi            # imm = 0xB50
callq 0x21810
xorl %r12d, %r12d
leaq 0x70(%rsp), %rbx
movl $0xf8, %r13d
leaq 0xd0(%rsp), %r14
movq 0x1146ec(%rip), %rax    # 0x139968
movslq 0x14(%rax), %rcx
cmpq %rcx, %r12
jge 0x24ec6
movq 0x8(%rax), %rax
movq (%rax,%r12,8), %r15
leaq 0x18(%r15), %rsi
movq %rbx, %rdi
callq 0x6f6dc
movq 0x1146fc(%rip), %rdi    # 0x1399a0
movslq 0x70(%r15), %rax
movq 0x410(%rdi), %rcx
movsd (%rcx,%rax,8), %xmm0
movsd %xmm0, (%rsp)
cmpl $0x0, 0x1146d0(%rip)    # 0x139990
je 0x25320
callq 0x431e8
movsd (%rsp), %xmm1
ucomisd %xmm0, %xmm1
jne 0x25320
jp 0x25320
movss 0xa3d28(%rip), %xmm0    # 0xc9004
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x22300
movq 0x114678(%rip), %rdi    # 0x139968
addq %r13, %rdi
callq 0x68154
mulsd 0xa3d48(%rip), %xmm0    # 0xc9048
movq %r14, %rdi
movq %rbx, %rsi
callq 0x657f8
movl $0x772, %esi            # imm = 0x772
movq %r14, %rdi
callq 0x40ea2
movq %r14, %rdi
callq 0x687f2
cmpl $0x0, 0x114665(%rip)    # 0x13998c
je 0x2538e
movq 0x114670(%rip), %rdi    # 0x1399a0
callq 0x43268
movsd (%rsp), %xmm1
ucomisd %xmm0, %xmm1
jne 0x2538e
jp 0x2538e
movss 0xa3cba(%rip), %xmm0    # 0xc9004
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
callq 0x22300
movq 0x11460a(%rip), %rdi    # 0x139968
addq %r13, %rdi
callq 0x68154
mulsd 0xa3cda(%rip), %xmm0    # 0xc9048
movq %r14, %rdi
movq %rbx, %rsi
callq 0x657f8
movl $0x772, %esi            # imm = 0x772
movq %r14, %rdi
callq 0x40ea2
movq %r14, %rdi
callq 0x687f2
cmpl $0x0, 0x114603(%rip)    # 0x139998
je 0x253fa
movq 0x114602(%rip), %rdi    # 0x1399a0
movq %r15, %rsi
callq 0x4303e
testl %eax, %eax
je 0x253fa
movsd 0xa3c9e(%rip), %xmm0    # 0xc9050
movsd 0xa3c66(%rip), %xmm1    # 0xc9020
movapd %xmm1, %xmm2
callq 0x21e70
movq 0x11459e(%rip), %rdi    # 0x139968
addq %r13, %rdi
callq 0x68154
mulsd 0xa3c7e(%rip), %xmm0    # 0xc9058
movq %r14, %rdi
movq %rbx, %rsi
callq 0x657f8
movl $0x772, %esi            # imm = 0x772
movq %r14, %rdi
callq 0x40ea2
movq %r14, %rdi
callq 0x687f2
cmpl $0x0, 0x114593(%rip)    # 0x139994
je 0x25462
movq 0x114596(%rip), %rdi    # 0x1399a0
movq %r15, %rsi
callq 0x430cc
testl %eax, %eax
je 0x25462
xorpd %xmm0, %xmm0
xorpd %xmm2, %xmm2
movsd 0xa3c2a(%rip), %xmm1    # 0xc9050
callq 0x21e70
movq 0x114536(%rip), %rdi    # 0x139968
addq %r13, %rdi
callq 0x68154
mulsd 0xa3c16(%rip), %xmm0    # 0xc9058
movq %r14, %rdi
movq %rbx, %rsi
callq 0x657f8
movl $0x772, %esi            # imm = 0x772
movq %r14, %rdi
callq 0x40ea2
movq %r14, %rdi
callq 0x687f2
incq %r12
jmp 0x25275
movl 0x10f560(%rip), %esi    # 0x1349d0
movl 0x10f556(%rip), %edx    # 0x1349cc
leaq 0xd0(%rsp), %rbx
pushq $0x3
popq %rcx
movq %rbx, %rdi
callq 0x7b77e
movq %rbx, %rdi
callq 0x7c110
movq 0x114520(%rip), %rsi    # 0x1399b8
leaq 0xd0(%rsp), %rdi
callq 0x7d3b6
callq 0x24840
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x7b9c0
jmp 0x254d4
jmp 0x254c4
jmp 0x254c4
jmp 0x254c4
jmp 0x254c4
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x687f2
movq %rbx, %rdi
callq 0x220c0