// File: /workspace/github_cpp_makefile_star2_O1/tomfunkhouser[P]gaps/apps/msh2pts/msh2pts.cpp
// Function: SelectPoints(gaps::R3Mesh*, gaps::R3MeshProperty*, int)
static RNArray<Point *> *
SelectPoints(R3Mesh *mesh, R3MeshProperty *property, int selection_method)
{
  // Start statistics
  RNTime start_time;
  start_time.Read();

  // Update min spacing 
  if ((min_spacing < 0) && (min_normalized_spacing > 0)) {
    min_spacing = min_normalized_spacing * sqrt(mesh->Area());
  }

  // Update number of points
  if (num_points <= 0) {
    if (min_spacing > 0) num_points = mesh->NVertices();
    else num_points = 1024;
  }

  // Update min spacing
  if ((num_points > 0) && (min_spacing <= 0) && (min_relative_spacing > 0)) {
    min_spacing = min_relative_spacing * 2 * sqrt(mesh->Area() / (RN_PI * num_points));
  }

  // Select points using requested selection method 
  RNArray<Point *> *points = NULL;
  if (selection_method == RANDOM_VERTICES) 
    points = SelectVertexPoints(mesh, num_points, min_spacing);
  else if (selection_method == RANDOM_SURFACE_POINTS) 
    points= SelectRandomSurfacePoints(mesh, property, num_points);
  else if (selection_method == EXTERIOR_SURFACE_POINTS) 
    points= SelectExteriorSurfacePoints(mesh, num_points, min_spacing);
  else if (selection_method == NEAR_SURFACE_POINTS) 
    points= SelectNearSurfacePoints(mesh, property, num_points);
  else if (selection_method == VISIBLE_SURFACE_POINTS) 
    points= SelectVisibleSurfacePoints(mesh, num_points, min_spacing);
  else if (selection_method == ITERATIVE_FURTHEST_VERTEX) 
    points= SelectFurthestPoints(mesh, num_points, min_spacing);
  else if (selection_method == PROPERTY_MINIMA) 
    points= SelectPropertyExtrema(mesh, property, num_points, min_spacing, PROPERTY_MINIMA);
  else if (selection_method == PROPERTY_MAXIMA) 
    points= SelectPropertyExtrema(mesh, property, num_points, min_spacing, PROPERTY_MAXIMA);
  else if (selection_method == PROPERTY_EXTREMA)
    points= SelectPropertyExtrema(mesh, property, num_points, min_spacing, PROPERTY_EXTREMA);
  else if (selection_method == SCALE_SPACE_MINIMA) 
    points= SelectScaleSpaceExtrema(mesh, property, num_points, min_spacing, PROPERTY_MINIMA);
  else if (selection_method == SCALE_SPACE_MAXIMA) 
    points= SelectScaleSpaceExtrema(mesh, property, num_points, min_spacing, PROPERTY_MAXIMA);
  else if (selection_method == SCALE_SPACE_EXTREMA)
    points= SelectScaleSpaceExtrema(mesh, property, num_points, min_spacing, PROPERTY_EXTREMA);
  else if (selection_method == UNIFORM_IN_BBOX) 
    points= SelectPointsUniformInBBox(mesh, num_points);
  else if (selection_method == CENTER_OF_MASS) 
    points= SelectCenterOfMass(mesh);
  else if (selection_method == VERTEX_CLOSEST_TO_CENTER_OF_MASS) 
    points= SelectVertexClosestToCenterOfMass(mesh);

  // Check points
  if (!points) {
    RNFail("Error selecting points\n");
    return 0;
  }

  // Check if too few points
  if (min_points > 0) {
    while (points->NEntries() < min_points) {
      int face_index = (int) (RNRandomScalar() * mesh->NFaces());
      R3MeshFace *face = mesh->Face(face_index);
      R3Point position = mesh->RandomPointOnFace(face);
      const R3Vector& normal = mesh->FaceNormal(face);
      Point *point = new Point(position, normal);
      points->Insert(point);
    }
  }

  // Check if too many points
  if (max_points > 0) {
    while (points->NEntries() > max_points) {
      int k = RNRandomScalar() * points->NEntries();
      points->Swap(k, points->NEntries()-1);
      Point *point = points->Tail();
      points->RemoveTail();
      delete point;
    }
  }

  // Print message
  if (print_verbose) {
    fprintf(stdout, "Generated points ...\n");
    printf("  Time = %.2f seconds\n", start_time.Elapsed());
    printf("  # Points = %d\n", points->NEntries());
    printf("  Selection method = %d\n", selection_method);
    if (min_points > 0) printf("  Minimum # points = %d\n", min_points);
    if (max_points > 0) printf("  Maximum # points = %d\n", max_points);
    printf("  Requested # points = %d\n", num_points);
    printf("  Requested min spacing = %g\n", min_spacing);
    fflush(stdout);
  }

  // Return array of points
  return points;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x648, %rsp            # imm = 0x648
movl %edx, 0x84(%rsp)
movq %rsi, %rbx
movq %rdi, %r15
leaq 0x638(%rsp), %r14
movq %r14, %rdi
callq 0x7c0a8
movq %r14, %rdi
xorl %esi, %esi
callq 0xe770
xorpd %xmm0, %xmm0
ucomisd 0xe29b8(%rip), %xmm0    # 0xf44a0
jbe 0x11b2d
movsd 0xe29b6(%rip), %xmm1    # 0xf44a8
ucomisd %xmm0, %xmm1
jbe 0x11b2d
movsd %xmm1, 0x10(%rsp)
movq %r15, %rdi
callq 0x28474
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11b16
sqrtsd %xmm0, %xmm0
jmp 0x11b1b
callq 0xe340
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xe2973(%rip)    # 0xf44a0
cmpl $0x0, 0xe2960(%rip)     # 0xf4494
movl 0x84(%rsp), %ecx
jg 0x11b5e
movsd 0xe295b(%rip), %xmm0    # 0xf44a0
movl $0x400, %eax            # imm = 0x400
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11b58
movl 0x14(%r15), %eax
movl %eax, 0xe2936(%rip)     # 0xf4494
cmpl $0x0, 0xe292f(%rip)     # 0xf4494
jle 0x11bdd
xorpd %xmm0, %xmm0
ucomisd 0xe292d(%rip), %xmm0    # 0xf44a0
jb 0x11bdd
movsd 0xe2933(%rip), %xmm1    # 0xf44b0
ucomisd %xmm0, %xmm1
jbe 0x11bdd
addsd %xmm1, %xmm1
movsd %xmm1, 0x10(%rsp)
movq %r15, %rdi
callq 0x28474
leaq 0xa49dc(%rip), %rax     # 0xb6578
xorps %xmm1, %xmm1
cvtsi2sdl 0xe28ed(%rip), %xmm1 # 0xf4494
mulsd (%rax), %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11bbf
sqrtsd %xmm0, %xmm0
jmp 0x11bc4
callq 0xe340
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xe28ca(%rip)    # 0xf44a0
movl 0x84(%rsp), %ecx
cmpl $0xe, %ecx
movq %r15, 0x8(%rsp)
ja 0x122e9
movl %ecx, %eax
leaq 0x9c4bc(%rip), %rcx     # 0xae0b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl 0xe2891(%rip), %ebp     # 0xf4494
movsd 0xe2895(%rip), %xmm0    # 0xf44a0
movsd %xmm0, 0x38(%rsp)
movl 0x14(%r15), %eax
cmpl %ebp, %eax
cmovll %eax, %ebp
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x7c644
cmpl $0x0, 0x14(%r15)
jle 0x13f84
xorpd %xmm1, %xmm1
xorl %r14d, %r14d
movsd %xmm1, 0x10(%rsp)
movq 0x8(%r15), %rax
movq (%rax,%r14,8), %rbx
movq %r15, %rdi
movq %rbx, %rsi
callq 0x2940a
movsd 0x10(%rsp), %xmm1
movsd %xmm0, 0x80(%rbx)
addsd %xmm0, %xmm1
incq %r14
movslq 0x14(%r15), %rax
cmpq %rax, %r14
jl 0x11c43
jmp 0x13f88
movl $0x10, %edi
callq 0xe450
movq %rax, %rbp
movq %rax, %rdi
callq 0x7c644
leaq 0x3a0(%rsp), %rdi
movq %r15, %rsi
callq 0x282b0
cmpl $0x0, 0x14(%r15)
jle 0x13f4c
movsd 0x9c351(%rip), %xmm0    # 0xae008
xorl %r15d, %r15d
leaq 0x3a0(%rsp), %r14
xorl %ebx, %ebx
movq 0x8(%rsp), %r13
movsd %xmm0, 0x10(%rsp)
movq 0x8(%r13), %rax
movq (%rax,%r15,8), %r12
leaq 0x18(%r12), %rdi
movq %r14, %rsi
callq 0x24f88
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
minsd %xmm1, %xmm0
cmovaq %r12, %rbx
incq %r15
movslq 0x14(%r13), %rax
cmpq %rax, %r15
jl 0x11cc9
jmp 0x13f53
movl 0xe2787(%rip), %edx     # 0xf4494
movsd 0xe278b(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xb, %ecx
jmp 0x134d5
movl 0xe2769(%rip), %ebp     # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x7c644
leaq 0x100(%rsp), %rdi
movq %r15, %rsi
callq 0x16bb0
leaq 0xe2e7f(%rip), %rax     # 0xf4bd8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %rbx, %rsi
callq 0x15792
ucomisd 0x9c2dc(%rip), %xmm0    # 0xae050
jne 0x14150
jp 0x14150
movq $0x0, 0x28(%rsp)
jmp 0x1479f
movl 0xe2700(%rip), %edx     # 0xf4494
movsd 0xe2704(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xc, %ecx
jmp 0x134d5
movl 0xe26e2(%rip), %edx     # 0xf4494
movsd 0xe26e6(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xc, %ecx
jmp 0x134f5
movl 0xe26c4(%rip), %ebx     # 0xf4494
movsd 0xe26c8(%rip), %xmm0    # 0xf44a0
movsd %xmm0, 0x50(%rsp)
leaq 0x310(%rsp), %rdi
callq 0x7c644
movl 0x14(%r15), %eax
cmpl %ebx, %eax
cmovll %eax, %ebx
movl %ebx, 0x38(%rsp)
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
callq 0x7c644
movslq 0x14(%r15), %rbx
movq %rbx, %rax
shlq $0x5, %rax
testq %rbx, %rbx
movq $-0x1, %rdi
cmovnsq %rax, %rdi
callq 0xe030
movq %rax, %r13
movabsq $0x47efffffe0000000, %rdi # imm = 0x47EFFFFFE0000000
testl %ebx, %ebx
jle 0x11e70
movq 0x8(%r15), %rax
xorl %ecx, %ecx
xorpd %xmm0, %xmm0
movq %r13, %rdx
movq (%rax,%rcx,8), %rsi
movq %rdx, 0x90(%rsi)
movq %rsi, (%rdx)
movq %rdi, 0x8(%rdx)
incq %rcx
movupd %xmm0, 0x10(%rdx)
addq $0x20, %rdx
cmpq %rcx, %rbx
jne 0x11e4d
leaq 0x240(%rsp), %rdi
callq 0x7c644
cmpl $0x0, 0x31c(%rsp)
jle 0x11eec
xorl %ebx, %ebx
leaq 0x240(%rsp), %r14
movq 0x310(%rsp), %rax
movq (%rax,%rbx,8), %r15
movl $0x48, %edi
callq 0xe450
movq %rax, %r12
movq %rax, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %rdx
callq 0x159b2
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r12, %rsi
callq 0x7c6da
movl 0x24c(%rsp), %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7c6da
incq %rbx
movslq 0x31c(%rsp), %rax
cmpq %rax, %rbx
jl 0x11e91
movq %r13, 0x30(%rsp)
leaq 0x170(%rsp), %rdi
callq 0x7c644
cmpl $0x0, 0x31c(%rsp)
jne 0x12010
movq 0x8(%rsp), %rax
movslq 0x14(%rax), %rbx
leaq (,%rbx,4), %r15
testq %rbx, %rbx
movq $-0x1, %rdi
cmovnsq %r15, %rdi
callq 0xe030
testl %ebx, %ebx
jle 0x12010
movq %rax, %r14
xorl %ebx, %ebx
movq %rax, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0xe260
leaq 0x240(%rsp), %r15
leaq 0x170(%rsp), %r12
leaq 0x3a0(%rsp), %r13
cmpl $0x0, (%r14,%rbx,4)
jne 0x11ffb
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax,%rbx,8), %rbp
movl $0x1, (%r14,%rbx,4)
cmpl $0x0, 0x14(%rbp)
je 0x11ffb
movl 0x24c(%rsp), %edx
movq %r15, %rdi
movq %rbp, %rsi
callq 0x7c6da
movl 0x17c(%rsp), %edx
movq %r12, %rdi
movq %rbp, %rsi
callq 0x7c6da
movq %r13, %rdi
callq 0x7c644
movq 0x8(%rsp), %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x2a3d0
movslq 0x3ac(%rsp), %rax
testq %rax, %rax
jle 0x11ff3
movq 0x3a0(%rsp), %rcx
xorl %edx, %edx
movq (%rcx,%rdx,8), %rsi
movslq 0x70(%rsi), %rsi
movl $0x1, (%r14,%rsi,4)
incq %rdx
cmpq %rdx, %rax
jne 0x11fdb
movq %r13, %rdi
callq 0x7c6ae
incq %rbx
movq 0x8(%rsp), %rax
movslq 0x14(%rax), %rax
cmpq %rax, %rbx
jl 0x11f62
movq 0x30(%rsp), %r12
leaq 0x10(%r12), %r13
leaq 0x3a0(%rsp), %r15
movq %r13, 0x40(%rsp)
movl 0x24c(%rsp), %eax
movl %eax, %ecx
subl 0x17c(%rsp), %ecx
cmpl 0x38(%rsp), %ecx
jge 0x13502
movq 0x8(%rsp), %rcx
movslq 0x14(%rcx), %rcx
testq %rcx, %rcx
movabsq $0x47efffffe0000000, %rsi # imm = 0x47EFFFFFE0000000
xorpd %xmm0, %xmm0
jle 0x12078
shlq $0x5, %rcx
xorl %edx, %edx
movq %rsi, -0x8(%r13,%rdx)
movupd %xmm0, (%r13,%rdx)
addq $0x20, %rdx
cmpq %rdx, %rcx
jne 0x12063
movapd %xmm0, 0x3a0(%rsp)
movabsq $-0x100000000, %rcx     # imm = 0xFFFFFFFF00000000
movq %rcx, 0x3b0(%rsp)
leaq 0x3b8(%rsp), %rcx
movupd %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
movl $0x1, 0x3d0(%rsp)
movabsq $0x1800000008, %rcx     # imm = 0x1800000008
movq %rcx, 0x3b0(%rsp)
testl %eax, %eax
jle 0x12108
xorl %ebx, %ebx
movq 0x240(%rsp), %rax
movq (%rax,%rbx,8), %rax
movslq 0x70(%rax), %rcx
shlq $0x5, %rcx
leaq (%r12,%rcx), %rsi
movq %rax, 0x10(%r12,%rcx)
movq $0x0, 0x8(%r12,%rcx)
movq %r15, %rdi
callq 0x166a8
incq %rbx
movslq 0x24c(%rsp), %rax
cmpq %rax, %rbx
jl 0x120ca
cmpl $0x0, 0x3a8(%rsp)
je 0x121df
movq %r15, %rdi
callq 0x167a4
movq %rax, %r14
movq (%rax), %rbp
cmpl $0x0, 0x14(%rbp)
jle 0x121cf
xorl %ebx, %ebx
movq 0x8(%rbp), %rax
movq (%rax,%rbx,8), %r13
movq 0x8(%r13), %rax
cmpq %rbp, %rax
jne 0x12145
movq 0x10(%r13), %rax
movq 0x90(%rax), %r12
movsd 0x8(%r12), %xmm1
testb $0x2, 0x38(%r13)
jne 0x12177
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
movsd %xmm1, 0x10(%rsp)
callq *0x2b8(%rax)
movsd 0x10(%rsp), %xmm1
movsd 0x28(%r13), %xmm0
addsd 0x8(%r14), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x121bf
movsd %xmm0, 0x8(%r12)
movq 0x10(%r14), %rax
movq %rax, 0x10(%r12)
movsd 0x9be67(%rip), %xmm0    # 0xae008
ucomisd %xmm1, %xmm0
jbe 0x121b4
movq %r15, %rdi
movq %r12, %rsi
callq 0x1683e
jmp 0x121bf
movq %r15, %rdi
movq %r12, %rsi
callq 0x166a8
incq %rbx
movslq 0x14(%rbp), %rax
cmpq %rax, %rbx
jl 0x12130
cmpl $0x0, 0x3a8(%rsp)
jne 0x12116
jmp 0x121e1
xorl %ebp, %ebp
movq 0x3a0(%rsp), %rdi
testq %rdi, %rdi
je 0x121f3
callq 0xe5c0
testq %rbp, %rbp
movq 0x30(%rsp), %r12
movq 0x40(%rsp), %r13
je 0x13502
movslq 0x70(%rbp), %rbx
shlq $0x5, %rbx
addq %r12, %rbx
movsd 0x50(%rsp), %xmm0
ucomisd 0x9be31(%rip), %xmm0    # 0xae050
jbe 0x12232
movsd 0x50(%rsp), %xmm0
ucomisd 0x8(%rbx), %xmm0
ja 0x13502
movq 0x10(%rbx), %rsi
leaq 0x170(%rsp), %rdi
callq 0x7c6bc
testq %rax, %rax
je 0x122a0
movq 0x10(%rbx), %rsi
leaq 0x170(%rsp), %rdi
callq 0x7c6bc
subq 0x170(%rsp), %rax
shrq $0x3, %rax
leaq 0x170(%rsp), %rdi
movl %eax, %esi
callq 0x7c84e
movq 0x10(%rbx), %rsi
leaq 0x240(%rsp), %rdi
callq 0x7c6bc
subq 0x240(%rsp), %rax
shrq $0x3, %rax
leaq 0x240(%rsp), %rdi
movl %eax, %esi
callq 0x7c84e
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq 0x8(%rsp), %rsi
movq %rbp, %rdx
callq 0x159b2
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
movl 0x24c(%rsp), %edx
leaq 0x240(%rsp), %rdi
movq %rbp, %rsi
callq 0x7c6da
jmp 0x12027
xorl %ebp, %ebp
jmp 0x147b1
movl 0xe219e(%rip), %ebx     # 0xf4494
movsd 0xe21a2(%rip), %xmm0    # 0xf44a0
movsd %xmm0, 0x128(%rsp)
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x7c644
movq %r15, %rdi
callq 0x28474
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x13536
sqrtsd %xmm0, %xmm0
jmp 0x1353b
movl 0xe2146(%rip), %edx     # 0xf4494
movsd 0xe214a(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xa, %ecx
jmp 0x134f5
movl 0xe2128(%rip), %ebp     # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x7c644
movsd 0xe2915(%rip), %xmm0    # 0xf4ca0
movsd 0xe212d(%rip), %xmm1    # 0xf44c0
movq %r15, %rdi
movq %rbx, %rsi
callq 0x15792
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x123ae
jnp 0x147ac
movsd %xmm0, 0x60(%rsp)
xorpd %xmm0, %xmm0
callq 0x7e645
cmpl $0x0, 0x34(%r15)
jle 0x147ac
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x130(%rsp)
xorl %edx, %edx
leaq 0x240(%rsp), %r12
leaq 0x5f0(%rsp), %r13
movsd 0x60(%rsp), %xmm0
movq 0x28(%r15), %rax
movq %rdx, 0x88(%rsp)
movq (%rax,%rdx,8), %r14
movq 0x8(%r14), %rax
movq 0x10(%r14), %r15
movq 0x18(%r14), %rcx
movq %rcx, 0x38(%rsp)
movq %rax, %rbx
testb $0x2, 0x78(%rax)
jne 0x12431
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x2b0(%rax)
movsd 0x60(%rsp), %xmm0
testb $0x2, 0x78(%r15)
jne 0x1244f
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r15, %rsi
callq *0x2b0(%rax)
movsd 0x60(%rsp), %xmm0
movq 0x38(%rsp), %rax
testb $0x2, 0x78(%rax)
jne 0x12473
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rsp), %rsi
callq *0x2b0(%rax)
movsd 0x60(%rsp), %xmm0
movsd 0xb0(%r14), %xmm1
mulsd 0x130(%rsp), %xmm1
divsd %xmm0, %xmm1
cvttsd2si %xmm1, %r14d
cvttpd2dq %xmm1, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
callq 0x7e688
xorl %ebp, %ebp
movapd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
seta %bpl
addl %r14d, %ebp
jle 0x12676
leaq 0x18(%rbx), %rax
movq %rax, 0x68(%rsp)
leaq 0x18(%r15), %rax
movq %rax, 0x70(%rsp)
movq 0x38(%rsp), %rax
leaq 0x18(%rax), %rcx
movq %rcx, 0x78(%rsp)
addq $0x30, %rbx
movq %rbx, 0x40(%rsp)
addq $0x30, %r15
movq %r15, 0x48(%rsp)
addq $0x30, %rax
movq %rax, 0x38(%rsp)
callq 0x7e688
ucomisd 0x9bb4a(%rip), %xmm0    # 0xae050
jb 0x1250e
sqrtsd %xmm0, %xmm0
jmp 0x12513
callq 0xe340
movsd %xmm0, 0x10(%rsp)
callq 0x7e688
movapd %xmm0, %xmm1
movsd 0x9bb0e(%rip), %xmm0    # 0xae038
movapd %xmm0, %xmm2
movsd 0x10(%rsp), %xmm3
subsd %xmm3, %xmm2
movsd %xmm2, 0x30(%rsp)
subsd %xmm1, %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, 0x50(%rsp)
mulsd %xmm3, %xmm1
movsd %xmm1, 0x10(%rsp)
leaq 0x170(%rsp), %r14
movq %r14, %rdi
movq 0x68(%rsp), %rsi
movapd %xmm2, %xmm0
callq 0x55498
leaq 0x310(%rsp), %r15
movq %r15, %rdi
movq 0x70(%rsp), %rsi
movsd 0x50(%rsp), %xmm0
callq 0x55498
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x55452
movq %r13, %rdi
movq 0x78(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x55498
leaq 0x3a0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x55452
movq %r15, %rdi
movq 0x40(%rsp), %rsi
movsd 0x30(%rsp), %xmm0
callq 0x55eb6
movq %r13, %rdi
movq 0x48(%rsp), %rsi
movsd 0x50(%rsp), %xmm0
callq 0x55eb6
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x5619c
leaq 0x100(%rsp), %r15
movq %r15, %rdi
movq 0x38(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x55eb6
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x5619c
movq %r12, %rdi
callq 0x55808
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %rbx, %rsi
callq 0x54a5e
movq %r14, %rdi
addq $0x28, %rdi
movq %r12, %rsi
callq 0x554f6
movq $0x0, 0x40(%r14)
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
decl %ebp
jne 0x124f9
movq 0x88(%rsp), %rdx
incq %rdx
movq 0x8(%rsp), %r15
movslq 0x34(%r15), %rax
cmpq %rax, %rdx
movsd 0x60(%rsp), %xmm0
jl 0x123f0
jmp 0x147ac
movl 0xe1def(%rip), %r14d    # 0xf4494
movsd 0xe1df3(%rip), %xmm0    # 0xf44a0
movsd %xmm0, 0x38(%rsp)
movl $0x10, %edi
callq 0xe450
movq %rax, 0x28(%rsp)
movq %rax, %rdi
callq 0x7c644
leaq 0x5f0(%rsp), %rdi
callq 0x15a0c
leaq 0xf8(%r15), %rbx
leaq 0x310(%rsp), %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x15a44
leal 0xfffff(%r14), %eax
testl %r14d, %r14d
cmovnsl %r14d, %eax
sarl $0x14, %eax
cmpl $0x81, %eax
movl $0x80, %ecx
cmovgel %eax, %ecx
movl %ecx, 0x70(%rsp)
movq 0xf8(%r15), %rax
leaq 0x158(%rsp), %rdi
movq %rbx, %rsi
callq *0x68(%rax)
movq %rbx, %rdi
callq 0x3fb40
movapd %xmm0, %xmm2
mulsd 0x9b8e2(%rip), %xmm2    # 0xae020
movapd 0x9b93a(%rip), %xmm0    # 0xae080
xorpd %xmm2, %xmm0
leaq 0x100(%rsp), %rdi
movapd %xmm0, %xmm1
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm3
callq 0x72174
movapd 0x10(%rsp), %xmm0
mulsd 0x9b8cd(%rip), %xmm0    # 0xae040
leaq 0x240(%rsp), %rdi
leaq 0x100(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x663ba
leaq 0x170(%rsp), %rdi
leaq 0x240(%rsp), %rsi
callq 0x66694
movl 0x70(%rsp), %eax
shll $0x14, %eax
xorps %xmm1, %xmm1
cvtsi2sd %r14d, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, 0x10(%rsp)
leaq 0x3a8(%rsp), %rbx
leaq 0xa3dc8(%rip), %rax     # 0xb6598
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
xorl %r14d, %r14d
leaq 0xdf044(%rip), %rax     # 0xf1828
addq $0x10, %rax
movq %rax, 0x78(%rsp)
leaq 0xe2a2c(%rip), %rax     # 0xf5220
addq $0x8, %rax
movq %rax, 0x60(%rsp)
movl $0x88, %eax
addq 0xe17d7(%rip), %rax     # 0xf3fe0
movq %rax, 0x88(%rsp)
leaq 0xb8(%rsp), %r12
leaq 0x240(%rsp), %r13
leaq 0x3a0(%rsp), %r15
movq 0x78(%rsp), %rax
movq %rax, 0x3a0(%rsp)
movq %rbx, %rdi
movq 0x60(%rsp), %rsi
callq 0x4458a
leaq 0x428(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x4458a
leaq 0xe29c1(%rip), %rax     # 0xf5220
movq 0x108(%rax), %rax
movq %rax, 0x4a8(%rsp)
movq %r12, %rdi
callq 0x5624a
callq 0x7e688
mulsd 0x48(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45cee
andb $-0x3, 0x4a8(%rsp)
movq %r12, %rdi
callq 0x5624a
callq 0x7e688
mulsd 0x48(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45cee
andb $-0x3, 0x4a8(%rsp)
movq %r12, %rdi
callq 0x5624a
callq 0x7e688
mulsd 0x48(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45cee
andb $-0x3, 0x4a8(%rsp)
movsd 0x158(%rsp), %xmm0
movsd 0x160(%rsp), %xmm1
movsd 0x168(%rsp), %xmm2
leaq 0xa0(%rsp), %rdi
callq 0x554e6
movq %r12, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x5617c
movq %rbx, %rdi
movq %r12, %rsi
callq 0x456c4
movq %r14, 0x68(%rsp)
andb $-0x3, 0x4a8(%rsp)
movq %r13, %rdi
movsd 0x9b6ed(%rip), %xmm0    # 0xae028
callq 0x67dfe
leaq 0xe2291(%rip), %rax     # 0xf4bd8
movsd (%rax), %xmm0
leaq 0x170(%rsp), %rdi
callq 0x67dfe
movq 0x8(%rsp), %rcx
cmpl $0x0, 0x34(%rcx)
jle 0x12b32
xorl %ebx, %ebx
movq 0x28(%rcx), %rax
movq (%rax,%rbx,8), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %r13
movq 0x18(%rax), %r14
addq $0x18, %rsi
movq %r12, %rdi
callq 0x54a5e
addq $0x18, %r13
leaq 0xa0(%rsp), %rdi
movq %r13, %rsi
callq 0x54a5e
addq $0x18, %r14
leaq 0xd0(%rsp), %rdi
movq %r14, %rsi
callq 0x54a5e
leaq 0x240(%rsp), %r14
movq %r12, %rdi
movq %r15, %rsi
callq 0x5536a
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x5536a
leaq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x5536a
movsd 0xb8(%rsp), %xmm0
movsd 0xc0(%rsp), %xmm1
leaq 0x390(%rsp), %rdi
callq 0x74e86
movsd 0xa0(%rsp), %xmm0
movsd 0xa8(%rsp), %xmm1
leaq 0x380(%rsp), %rdi
callq 0x74e86
movsd 0xd0(%rsp), %xmm0
movsd 0xd8(%rsp), %xmm1
leaq 0x370(%rsp), %rdi
callq 0x74e86
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0xe0(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x390(%rsp), %xmm0
movsd 0x398(%rsp), %xmm1
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
callq 0x6d05e
movsd 0x380(%rsp), %xmm0
movsd 0x388(%rsp), %xmm1
leaq 0x90(%rsp), %rdi
movq %r14, %rsi
callq 0x6d05e
movsd 0x370(%rsp), %xmm0
movsd 0x378(%rsp), %xmm1
leaq 0x138(%rsp), %rdi
movq %r14, %rsi
callq 0x6d05e
xorps %xmm0, %xmm0
cvtsi2sd %ebx, %xmm0
movq %r14, %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x90(%rsp), %rdx
leaq 0x138(%rsp), %rcx
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
movsd 0x50(%rsp), %xmm3
movsd 0x30(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
leaq 0x170(%rsp), %r8
callq 0x6c78c
incq %rbx
movq 0x8(%rsp), %rcx
movslq 0x34(%rcx), %rax
cmpq %rax, %rbx
jl 0x12969
cmpl $0x0, 0x234(%rsp)
jle 0x12d9f
xorl %r13d, %r13d
cmpl $0x0, 0x230(%rsp)
jle 0x12d8e
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
movsd %xmm0, 0x40(%rsp)
movslq %r13d, %rbp
xorl %ebx, %ebx
callq 0x7e688
ucomisd 0x10(%rsp), %xmm0
ja 0x12bc8
movq 0x2f8(%rsp), %rax
movslq 0x308(%rsp), %rcx
imulq %rbp, %rcx
addq %rbx, %rcx
movsd (%rax,%rcx,8), %xmm1
xorpd %xmm0, %xmm0
movsd %xmm1, 0x50(%rsp)
ucomisd %xmm1, %xmm0
ja 0x12bc8
movq 0x228(%rsp), %rax
movslq 0x238(%rsp), %rcx
imulq %rbp, %rcx
addq %rbx, %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0xe2018(%rip), %rax     # 0xf4bd8
ucomisd (%rax), %xmm0
jne 0x12bd9
jp 0x12bd9
incq %rbx
cmpl 0x230(%rsp), %ebx
jl 0x12b64
jmp 0x12d8e
movsd %xmm0, 0x30(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %ebx, %xmm0
leaq 0xe8(%rsp), %rdi
leaq 0x170(%rsp), %rsi
movsd 0x40(%rsp), %xmm1
callq 0x6d038
movsd 0xe8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
movq %r12, %rdi
movsd 0x30(%rsp), %xmm2
callq 0x54a4e
movq %r12, %rdi
movq %r15, %rsi
callq 0x5537c
movsd 0x38(%rsp), %xmm0
ucomisd 0x9b416(%rip), %xmm0    # 0xae050
jbe 0x12c5f
xorpd %xmm0, %xmm0
leaq 0x310(%rsp), %rdi
movq %r12, %rsi
movsd 0x38(%rsp), %xmm1
callq 0x15aa6
testq %rax, %rax
jne 0x12bc8
movsd 0x50(%rsp), %xmm0
addsd 0x9b3b3(%rip), %xmm0    # 0xae020
cvttsd2si %xmm0, %eax
testl %eax, %eax
js 0x12bc8
movq 0x8(%rsp), %rcx
cmpl %eax, 0x34(%rcx)
jle 0x12bc8
movq 0x8(%rsp), %rcx
movq 0x28(%rcx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %r14
testb $0x4, 0xa8(%r14)
jne 0x12cb1
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x2c8(%rax)
addq $0x38, %r14
leaq 0xa0(%rsp), %rdi
movq %r14, %rsi
callq 0x554f6
leaq 0xd0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x554f6
leaq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x560c2
movsd 0xe0(%rsp), %xmm0
ucomisd 0x9b355(%rip), %xmm0    # 0xae050
jbe 0x12d0a
leaq 0xa0(%rsp), %rdi
callq 0x55874
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %r12, %rsi
callq 0x54a5e
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xa0(%rsp), %rsi
callq 0x554f6
movsd 0x38(%rsp), %xmm0
ucomisd 0x9b303(%rip), %xmm0    # 0xae050
movq $0x0, 0x40(%r14)
jbe 0x12d79
movq 0x360(%rsp), %rsi
leaq 0x310(%rsp), %rdi
movq %rdi, %rdx
movq %r14, %rcx
callq 0x160b2
incl 0x368(%rsp)
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
jmp 0x12bc8
incl %r13d
cmpl 0x234(%rsp), %r13d
jl 0x12b43
movq %r15, %rdi
callq 0x4224c
movq 0x68(%rsp), %r14
incl %r14d
cmpl 0x70(%rsp), %r14d
leaq 0x3a8(%rsp), %rbx
leaq 0x240(%rsp), %r13
jne 0x12829
leaq 0x170(%rsp), %rdi
callq 0x6686c
leaq 0x240(%rsp), %rdi
callq 0x6686c
leaq 0x100(%rsp), %rdi
callq 0x729f4
leaq 0x310(%rsp), %rdi
callq 0x15af0
jmp 0x14146
movl $0x10, %edi
callq 0xe450
movq %rax, %rbp
movq %rax, %rdi
callq 0x7c644
leaq 0x3a0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x282b0
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %rbx, %rsi
callq 0x54a5e
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xa1fae(%rip), %rsi     # 0xb4e08
callq 0x554f6
movq $0x0, 0x40(%r14)
jmp 0x13f71
movl 0xe1622(%rip), %eax     # 0xf4494
movl %eax, 0x60(%rsp)
leaq 0xe1dcb(%rip), %rsi     # 0xf4c48
leaq 0x240(%rsp), %rbx
movq %rbx, %rdi
callq 0x3f4c0
movsd 0x8(%rbx), %xmm0
ucomisd 0x20(%rbx), %xmm0
ja 0x12ec1
movsd 0x250(%rsp), %xmm0
ucomisd 0x268(%rsp), %xmm0
ja 0x12ec1
movsd 0x258(%rsp), %xmm0
ucomisd 0x270(%rsp), %xmm0
jbe 0x12efe
leaq 0x248(%rsp), %rdi
leaq 0x100(%r15), %rsi
callq 0x54dbc
leaq 0x260(%rsp), %rdi
leaq 0x118(%r15), %rsi
callq 0x54dbc
leaq 0x240(%rsp), %rdi
movsd 0x9b117(%rip), %xmm0    # 0xae010
callq 0x3fdca
leaq 0x240(%rsp), %rdi
callq 0x3fb16
movsd %xmm0, 0x10(%rsp)
movl $0x250, %edi            # imm = 0x250
callq 0xe450
movsd 0x10(%rsp), %xmm0
mulsd 0x9b0ef(%rip), %xmm0    # 0xae018
leaq 0x240(%rsp), %rsi
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl $0x5, %edx
movl $0x200, %ecx            # imm = 0x200
movl $0x5, %r8d
callq 0x46bfa
cmpl $0x0, 0x34(%r15)
jle 0x130ca
xorl %r14d, %r14d
leaq 0x100(%rsp), %rbp
leaq 0x158(%rsp), %rbx
movq 0x10(%rsp), %r13
movq 0x28(%r15), %rax
movq (%rax,%r14,8), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %r15
movq 0x18(%rax), %r12
movsd 0x18(%rcx), %xmm0
movsd 0x20(%rcx), %xmm1
movsd 0x28(%rcx), %xmm2
leaq 0x3a0(%rsp), %rdi
movq %r13, %rsi
callq 0x4798a
movsd 0x18(%r15), %xmm0
movsd 0x20(%r15), %xmm1
movsd 0x28(%r15), %xmm2
leaq 0x170(%rsp), %rdi
movq %r13, %rsi
callq 0x4798a
movsd 0x18(%r12), %xmm0
movsd 0x20(%r12), %xmm1
movsd 0x28(%r12), %xmm2
leaq 0x310(%rsp), %rdi
movq %r13, %rsi
callq 0x4798a
incq %r14
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
movapd 0x3a0(%rsp), %xmm1
movapd 0x9b069(%rip), %xmm2    # 0xae070
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0x5f0(%rsp)
movsd 0x3b0(%rsp), %xmm1
movsd 0x9aff7(%rip), %xmm3    # 0xae020
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movl %eax, 0x5f8(%rsp)
movsd 0x180(%rsp), %xmm1
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movapd 0x170(%rsp), %xmm1
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0x100(%rsp)
movl %eax, 0x108(%rsp)
movapd 0x310(%rsp), %xmm1
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0x158(%rsp)
movsd 0x320(%rsp), %xmm1
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movl %eax, 0x160(%rsp)
movq %r13, %rdi
leaq 0x5f0(%rsp), %rsi
movq %rbp, %rdx
movq %rbx, %rcx
movl $0x2, %r8d
callq 0x4cc26
movq 0x8(%rsp), %r15
movslq 0x34(%r15), %rax
cmpq %rax, %r14
jl 0x12f71
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x485c6
movq %rbx, %rdi
callq 0x48288
movsd 0x228(%rbx), %xmm0
movq %rbx, %rdi
callq 0x4a8fc
leaq 0x3a0(%rsp), %rdi
movq %rbx, %rsi
callq 0x470f0
leaq 0x3a0(%rsp), %rdi
movsd 0x9af19(%rip), %xmm0    # 0xae028
callq 0x4a46e
leaq 0x170(%rsp), %rdi
callq 0x7c644
movq 0x5d0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x10(%rsp), %rax
movsd 0x228(%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
cmpl $0x0, 0x5d8(%rsp)
jle 0x13269
xorl %ebp, %ebp
leaq 0x170(%rsp), %rbx
movabsq $0x3ff0000000000000, %r15 # imm = 0x3FF0000000000000
cmpl $0x0, 0x5dc(%rsp)
jle 0x1325a
xorl %r13d, %r13d
movl 0x5e0(%rsp), %eax
testl %eax, %eax
jle 0x13249
xorl %r14d, %r14d
testl %ebp, %ebp
je 0x131c1
testl %r13d, %r13d
je 0x131c1
movl 0x5d8(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x131c1
movl 0x5dc(%rsp), %ecx
decl %ecx
cmpl %ecx, %r13d
sete %cl
testl %r14d, %r14d
sete %dl
decl %eax
cmpl %eax, %r14d
sete %al
orb %dl, %al
orb %cl, %al
cmpb $0x1, %al
jne 0x13236
movq 0x10(%rsp), %rdx
movq 0x230(%rdx), %rax
movl 0x248(%rdx), %ecx
imull %r14d, %ecx
movl 0x244(%rdx), %edx
imull %r13d, %edx
addl %ebp, %ecx
addl %edx, %ecx
movslq %ecx, %rcx
movsd 0x50(%rsp), %xmm0
ucomisd (%rax,%rcx,8), %xmm0
ja 0x13236
movl 0x5e8(%rsp), %eax
imull %r14d, %eax
movl 0x5e4(%rsp), %ecx
imull %r13d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r12
movq 0x38(%rsp), %rax
leaq (%rax,%r12,8), %rsi
movl 0x17c(%rsp), %edx
movq %rbx, %rdi
callq 0x7c6da
movq 0x5d0(%rsp), %rax
movq %r15, (%rax,%r12,8)
incl %r14d
movl 0x5e0(%rsp), %eax
cmpl %eax, %r14d
jl 0x13186
incl %r13d
cmpl 0x5dc(%rsp), %r13d
jl 0x13174
incl %ebp
cmpl 0x5d8(%rsp), %ebp
jl 0x13163
movl 0x17c(%rsp), %eax
testl %eax, %eax
je 0x13445
movsd 0x50(%rsp), %xmm0
mulsd 0x9adaa(%rip), %xmm0    # 0xae030
movsd %xmm0, 0x50(%rsp)
movq 0x170(%rsp), %rcx
movslq %eax, %rsi
movq -0x8(%rcx,%rsi,8), %rbp
decl %esi
leaq 0x170(%rsp), %rdi
callq 0x7c84e
subq 0x38(%rsp), %rbp
shrq $0x3, %rbp
movl %ebp, %eax
cltd
idivl 0x5e8(%rsp)
movl %eax, %ebx
movl %edx, %eax
movl 0x5e4(%rsp), %ecx
cltd
idivl %ecx
movl %eax, %r14d
movl %ebp, %eax
cltd
idivl %ecx
movl %edx, %r12d
leal -0x1(%rbx), %r9d
leal -0x1(%r14), %eax
movl %eax, 0x78(%rsp)
leal -0x1(%r12), %eax
movl %eax, 0x68(%rsp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
xorpd %xmm1, %xmm1
movl %eax, 0x70(%rsp)
addl %ebx, %eax
js 0x13424
cmpl 0x5e0(%rsp), %eax
jge 0x13424
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl 0x78(%rsp), %r10d
movl %r9d, 0x40(%rsp)
movl %eax, 0x48(%rsp)
addl %r14d, %eax
js 0x13412
cmpl 0x5dc(%rsp), %eax
jge 0x13412
movl $0x3, %r15d
movl 0x68(%rsp), %ebp
movl %r10d, 0x30(%rsp)
testl %ebp, %ebp
js 0x13407
cmpl 0x5d8(%rsp), %ebp
jge 0x13407
movq 0x5d0(%rsp), %rax
movl 0x5e8(%rsp), %ecx
imull %r9d, %ecx
movl 0x5e4(%rsp), %r8d
imull %r10d, %r8d
addl %ecx, %r8d
addl %ebp, %r8d
movslq %r8d, %r13
movsd (%rax,%r13,8), %xmm0
ucomisd %xmm1, %xmm0
ja 0x13407
movq 0x10(%rsp), %r8
movq 0x230(%r8), %rax
movl 0x248(%r8), %ecx
imull %ebx, %ecx
movl 0x244(%r8), %r8d
imull %r14d, %r8d
addl %r12d, %ecx
addl %r8d, %ecx
movslq %ecx, %rcx
movsd 0x50(%rsp), %xmm0
ucomisd (%rax,%rcx,8), %xmm0
ja 0x13407
movq 0x38(%rsp), %rax
leaq (%rax,%r13,8), %rsi
movl 0x17c(%rsp), %edx
leaq 0x170(%rsp), %rdi
callq 0x7c6da
movq 0x5d0(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r13,8)
xorpd %xmm1, %xmm1
movl 0x40(%rsp), %r9d
movl 0x30(%rsp), %r10d
incl %ebp
decl %r15d
jne 0x13346
movl 0x48(%rsp), %eax
incl %eax
incl %r10d
cmpl $0x2, %eax
jne 0x1331d
movl 0x70(%rsp), %eax
incl %eax
incl %r9d
cmpl $0x2, %eax
jne 0x132f5
movl 0x17c(%rsp), %eax
testl %eax, %eax
jne 0x1328c
leaq 0x3a0(%rsp), %rdi
movsd 0x9abd3(%rip), %xmm1    # 0xae028
movsd 0x9abdb(%rip), %xmm2    # 0xae038
xorpd %xmm0, %xmm0
callq 0x48b74
leaq 0x3a0(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x4a926
leaq 0x170(%rsp), %rdi
callq 0x7c6ae
leaq 0x3a0(%rsp), %rdi
callq 0x4714c
movl $0x10, %edi
callq 0xe450
movq %rax, %r12
movq %rax, %rdi
callq 0x7c644
cmpb $0x0, 0xe17fa(%rip)     # 0xf4ca8
je 0x13cf1
xorl %r15d, %r15d
jmp 0x13d0b
movl 0xe0fd2(%rip), %edx     # 0xf4494
movsd 0xe0fd6(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xa, %ecx
callq 0x14de8
jmp 0x134fa
movl 0xe0fb2(%rip), %edx     # 0xf4494
movsd 0xe0fb6(%rip), %xmm0    # 0xf44a0
movq %r15, %rdi
movq %rbx, %rsi
movl $0xb, %ecx
callq 0x1529f
movq %rax, %rbp
jmp 0x147b1
movq %r12, %rdi
callq 0xe5c0
leaq 0x170(%rsp), %rdi
callq 0x7c6ae
leaq 0x240(%rsp), %rdi
callq 0x7c6ae
leaq 0x310(%rsp), %rdi
callq 0x7c6ae
jmp 0x14146
callq 0xe340
movsd 0x128(%rsp), %xmm1
maxsd %xmm0, %xmm1
leaq 0xf8(%r15), %rsi
leaq 0x3a0(%rsp), %rbx
movq %rbx, %rdi
movapd %xmm1, %xmm0
movl $0x5, %edx
movl $0x400, %ecx            # imm = 0x400
movl $0x2, %r8d
callq 0x46bfa
movq 0x230(%rbx), %rax
movq %rax, 0x48(%rsp)
movsd 0x228(%rbx), %xmm0
movsd %xmm0, 0x130(%rsp)
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x16bb0
leaq 0x170(%rsp), %rdi
callq 0x15a0c
leaq 0x5f0(%rsp), %rdi
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
callq 0x54a4e
movl 0x5d8(%rsp), %eax
decl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movl 0x5dc(%rsp), %eax
decl %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movl 0x5e0(%rsp), %eax
decl %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
leaq 0x100(%rsp), %rdi
callq 0x54a4e
movsd 0x5f0(%rsp), %xmm0
movsd 0x5f8(%rsp), %xmm1
movsd 0x600(%rsp), %xmm2
leaq 0x158(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x4dd9e
movsd 0x100(%rsp), %xmm0
movsd 0x108(%rsp), %xmm1
movsd 0x110(%rsp), %xmm2
leaq 0xb8(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x4dd9e
leaq 0x310(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x3f512
leaq 0x240(%rsp), %rdi
leaq 0x310(%rsp), %rsi
movl $0x10, %edx
callq 0x15a44
leaq 0x310(%rsp), %rdi
callq 0x40318
leaq 0x90(%rsp), %rdi
callq 0x7c644
cmpl $0x0, 0x5d8(%rsp)
jle 0x137a8
xorl %ebp, %ebp
leaq 0x90(%rsp), %rbx
movabsq $0x3ff0000000000000, %r14 # imm = 0x3FF0000000000000
cmpl $0x0, 0x5dc(%rsp)
jle 0x13799
xorl %r15d, %r15d
movl 0x5e0(%rsp), %eax
testl %eax, %eax
jle 0x13788
xorl %r12d, %r12d
testl %ebp, %ebp
je 0x13734
testl %r15d, %r15d
je 0x13734
movl 0x5d8(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x13734
movl 0x5dc(%rsp), %ecx
decl %ecx
cmpl %ecx, %r15d
sete %cl
testl %r12d, %r12d
sete %dl
decl %eax
cmpl %eax, %r12d
sete %al
orb %dl, %al
orb %cl, %al
cmpb $0x1, %al
jne 0x13775
movl 0x5e8(%rsp), %eax
imull %r12d, %eax
movl 0x5e4(%rsp), %ecx
imull %r15d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r13
movq 0x48(%rsp), %rax
leaq (%rax,%r13,8), %rsi
movl 0x9c(%rsp), %edx
movq %rbx, %rdi
callq 0x7c6da
movq 0x5d0(%rsp), %rax
movq %r14, (%rax,%r13,8)
incl %r12d
movl 0x5e0(%rsp), %eax
cmpl %eax, %r12d
jl 0x136f9
incl %r15d
cmpl 0x5dc(%rsp), %r15d
jl 0x136e7
incl %ebp
cmpl 0x5d8(%rsp), %ebp
jl 0x136d6
movl 0x9c(%rsp), %eax
testl %eax, %eax
je 0x13cb8
leaq 0x100(%rsp), %r12
leaq 0x158(%rsp), %rbx
leaq 0xb8(%rsp), %r15
leaq 0x138(%rsp), %r13
movq 0x90(%rsp), %rcx
movslq %eax, %rsi
movq -0x8(%rcx,%rsi,8), %r14
decl %esi
leaq 0x90(%rsp), %rdi
callq 0x7c84e
subq 0x48(%rsp), %r14
shrq $0x3, %r14
movl %r14d, %eax
cltd
idivl 0x5e8(%rsp)
movl %eax, %esi
movl %edx, %eax
movl 0x5e4(%rsp), %ecx
cltd
idivl %ecx
movl %eax, %edi
movl %r14d, %eax
cltd
idivl %ecx
movl %edx, 0x88(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
movl %edi, 0x150(%rsp)
xorps %xmm1, %xmm1
cvtsi2sd %edi, %xmm1
movl %esi, 0x14c(%rsp)
xorps %xmm2, %xmm2
cvtsi2sd %esi, %xmm2
movq %r12, %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x4dd9e
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl 0x88(%rsp), %esi
movl %edi, %ebp
addl 0x14c(%rsp), %ebp
js 0x13c9e
cmpl 0x5e0(%rsp), %ebp
jge 0x13c9e
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x78(%rsp)
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
movl %edi, 0x60(%rsp)
movl %ebp, 0x154(%rsp)
movl %r8d, %eax
addl 0x150(%rsp), %eax
movl %eax, 0x38(%rsp)
js 0x13c91
movl 0x38(%rsp), %eax
cmpl 0x5dc(%rsp), %eax
jge 0x13c91
xorps %xmm0, %xmm0
cvtsi2sdl 0x38(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movl $0xffffffff, %r9d       # imm = 0xFFFFFFFF
movl %r8d, 0x70(%rsp)
movl %r9d, %eax
addl %esi, %eax
js 0x13c84
cmpl 0x5d8(%rsp), %eax
jge 0x13c84
movl %eax, 0x30(%rsp)
movq 0x5d0(%rsp), %rax
movl 0x5e8(%rsp), %ecx
imull %ebp, %ecx
movl 0x5e4(%rsp), %edx
imull 0x38(%rsp), %edx
addl 0x30(%rsp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movl 0x30(%rsp), %eax
ucomisd 0x9a6ed(%rip), %xmm0    # 0xae020
ja 0x13c84
movl %r9d, 0x40(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %rbx, %rdi
leaq 0x3a0(%rsp), %rsi
movsd 0x68(%rsp), %xmm1
movsd 0x78(%rsp), %xmm2
callq 0x4dd9e
leaq 0x310(%rsp), %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x54642
leaq 0x5f0(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x55452
movq %r15, %rdi
movq %r14, %rsi
movsd 0x9a688(%rip), %xmm0    # 0xae020
callq 0x55498
movq %r13, %rdi
callq 0x7c644
xorpd %xmm0, %xmm0
leaq 0xa0(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
movsd 0x130(%rsp), %xmm1
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x1970c
leaq 0xd0(%rsp), %rdi
leaq 0x4e2387(%rip), %rsi    # 0x4f5d60
callq 0x54a5e
leaq 0xe8(%rsp), %rdi
leaq 0xa141b(%rip), %rsi     # 0xb4e08
callq 0x554f6
cmpl $0x0, 0x144(%rsp)
jle 0x13b5a
movq %rbx, %r15
xorl %r13d, %r13d
movsd 0x9a5fa(%rip), %xmm0    # 0xae008
movsd %xmm0, 0x50(%rsp)
movq %r12, %rbp
movq 0x138(%rsp), %rax
movq (%rax,%r13,8), %r14
movq 0x18(%r14), %r12
testb $0x4, 0xa8(%r12)
jne 0x13a43
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x2c8(%rax)
addq $0x38, %r12
leaq 0x5f0(%rsp), %rdi
movq %r12, %rsi
callq 0x53542
leaq 0x5f0(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %r12
movq %rbp, %rsi
callq 0x2519b
movsd %xmm0, 0x10(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2519b
mulsd 0x10(%rsp), %xmm0
leaq 0xe113d(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jb 0x13b0a
movq 0x18(%r14), %rdx
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
leaq 0x310(%rsp), %rsi
movq %r14, %rcx
callq *0x178(%rax)
testl %eax, %eax
je 0x13b0a
movsd 0x50(%rsp), %xmm0
ucomisd 0x38(%r14), %xmm0
jbe 0x13b0a
leaq 0x20(%r14), %rsi
leaq 0xd0(%rsp), %rdi
callq 0x54dbc
leaq 0xe8(%rsp), %rdi
movq %rbx, %rsi
callq 0x55c92
xorpd %xmm0, %xmm0
ucomisd 0x10(%rsp), %xmm0
jbe 0x13afe
leaq 0xe8(%rsp), %rdi
callq 0x55874
movsd 0x38(%r14), %xmm0
movsd %xmm0, 0x50(%rsp)
testq %r14, %r14
je 0x13b1c
movl $0x40, %esi
movq %r14, %rdi
callq 0xe460
incq %r13
movslq 0x144(%rsp), %rax
cmpq %rax, %r13
jl 0x13a14
movsd 0x9a4d0(%rip), %xmm0    # 0xae008
ucomisd 0x50(%rsp), %xmm0
movq %r15, %rbx
leaq 0xb8(%rsp), %r15
leaq 0x138(%rsp), %r13
movl 0x154(%rsp), %ebp
ja 0x13bb1
movl 0x5e8(%rsp), %eax
imull %ebp, %eax
movl 0x5e4(%rsp), %ecx
imull 0x38(%rsp), %ecx
addl 0x30(%rsp), %eax
addl %ecx, %eax
movslq %eax, %r14
movq 0x48(%rsp), %rax
leaq (%rax,%r14,8), %rsi
movl 0x9c(%rsp), %edx
leaq 0x90(%rsp), %rdi
callq 0x7c6da
movq 0x5d0(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r14,8)
jmp 0x13c67
movsd 0x128(%rsp), %xmm0
ucomisd 0x9a48e(%rip), %xmm0    # 0xae050
jne 0x13c3c
jp 0x13c3c
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
leaq 0xd0(%rsp), %rsi
callq 0x54a5e
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xe8(%rsp), %rsi
callq 0x554f6
movq $0x0, 0x40(%r14)
movq 0x290(%rsp), %rsi
leaq 0x240(%rsp), %rdi
movq %rdi, %rdx
movq %r14, %rcx
callq 0x160b2
incl 0x298(%rsp)
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
jmp 0x13c67
xorpd %xmm0, %xmm0
leaq 0x240(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
movsd 0x128(%rsp), %xmm1
callq 0x15aa6
testq %rax, %rax
je 0x13bc6
movq %r13, %rdi
callq 0x7c6ae
movl 0x88(%rsp), %esi
movl 0x60(%rsp), %edi
movl 0x70(%rsp), %r8d
movl 0x40(%rsp), %r9d
incl %r9d
cmpl $0x2, %r9d
jne 0x138df
incl %r8d
cmpl $0x2, %r8d
jne 0x138a0
incl %edi
cmpl $0x2, %edi
jne 0x13866
movl 0x9c(%rsp), %eax
testl %eax, %eax
jne 0x137d7
leaq 0x90(%rsp), %rdi
callq 0x7c6ae
leaq 0x240(%rsp), %rdi
callq 0x15af0
leaq 0xa0(%rsp), %rdi
callq 0x16cc6
leaq 0x3a0(%rsp), %rdi
callq 0x4714c
jmp 0x14146
movl $0x18, %edi
callq 0xe450
movq %rax, %r15
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x16bb0
cmpl $0x0, 0x60(%rsp)
jle 0x13efe
leaq 0x170(%rsp), %r13
leaq 0x3a0(%rsp), %rbp
leaq 0xa10db(%rip), %rbx     # 0xb4e08
callq 0x7e688
movsd %xmm0, 0x50(%rsp)
movsd 0x248(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x260(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
callq 0x7e688
movsd %xmm0, 0x30(%rsp)
movsd 0x250(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x268(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
callq 0x7e688
movapd %xmm0, %xmm2
movsd 0x38(%rsp), %xmm1
movsd 0x40(%rsp), %xmm3
subsd %xmm1, %xmm3
movsd 0x50(%rsp), %xmm0
mulsd %xmm3, %xmm0
addsd %xmm1, %xmm0
movsd 0x48(%rsp), %xmm3
movsd 0x68(%rsp), %xmm4
subsd %xmm3, %xmm4
movsd 0x30(%rsp), %xmm1
mulsd %xmm4, %xmm1
addsd %xmm3, %xmm1
movsd 0x258(%rsp), %xmm3
movsd 0x270(%rsp), %xmm4
subsd %xmm3, %xmm4
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
movq %r13, %rdi
callq 0x54a4e
movsd 0x170(%rsp), %xmm0
movsd 0x178(%rsp), %xmm1
movsd 0x180(%rsp), %xmm2
movq %rbp, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x4798a
movsd 0x3a0(%rsp), %xmm0
movsd 0x3a8(%rsp), %xmm1
movsd 0x3b0(%rsp), %xmm2
movq %r14, %rdi
callq 0x4738c
movapd %xmm0, 0x50(%rsp)
testq %r15, %r15
je 0x13ea8
leaq 0x3c0(%rsp), %rdi
callq 0x54a4c
leaq 0xe0d81(%rip), %rax     # 0xf4bd8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18606
movsd 0x3d8(%rsp), %xmm0
movapd %xmm0, %xmm1
xorpd 0x9a1f9(%rip), %xmm1    # 0xae080
movapd 0x50(%rsp), %xmm2
cmpltsd 0x9a1ba(%rip), %xmm2    # 0xae050
andpd %xmm2, %xmm1
andnpd %xmm0, %xmm2
orpd %xmm1, %xmm2
movapd %xmm2, 0x50(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15a0c
leaq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x54dbc
movq %r14, %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0x55c92
movapd 0x50(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq %r12, %rdi
movl 0xc(%r12), %edx
movq %r14, %rsi
callq 0x7c6da
decl 0x60(%rsp)
jne 0x13d2d
testq %r15, %r15
je 0x13f18
movq %r15, %rdi
callq 0x16cc6
movl $0x18, %esi
movq %r15, %rdi
callq 0xe460
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x4714c
movl $0x250, %esi            # imm = 0x250
movq %rbx, %rdi
callq 0xe460
leaq 0x240(%rsp), %rdi
callq 0x40318
movq 0x8(%rsp), %r15
movq %r12, %rbp
jmp 0x147b1
xorl %ebx, %ebx
movq 0x8(%rsp), %r13
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x159b2
movq %r13, %r15
movl 0xc(%rbp), %edx
movq %rbp, %rdi
movq %r14, %rsi
callq 0x7c6da
jmp 0x147b1
xorpd %xmm1, %xmm1
leaq 0xe0551(%rip), %r15     # 0xf44e0
incl (%r15)
testl %ebp, %ebp
jle 0x14146
imull $0x64, %ebp, %eax
movl %eax, 0x48(%rsp)
xorl %r13d, %r13d
movsd %xmm1, 0x10(%rsp)
callq 0x7e688
movq 0x8(%rsp), %rax
movl 0x14(%rax), %eax
testl %eax, %eax
jle 0x1412e
movsd 0x10(%rsp), %xmm1
mulsd %xmm1, %xmm0
xorpd %xmm2, %xmm2
xorl %r12d, %r12d
movq 0x8(%rsp), %rcx
movsd %xmm0, 0x40(%rsp)
movq 0x8(%rcx), %rcx
movq (%rcx,%r12,8), %rbx
movl 0x88(%rbx), %edx
movb $0x1, %cl
cmpl (%r15), %edx
je 0x14113
movsd 0x80(%rbx), %xmm3
addsd %xmm3, %xmm2
ucomisd %xmm0, %xmm2
setb %dl
decl %eax
cmpq %rax, %r12
setne %cl
andb %dl, %cl
jne 0x14113
movsd %xmm3, 0x50(%rsp)
movsd %xmm2, 0x30(%rsp)
movsd %xmm1, 0x10(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq 0x8(%rsp), %rsi
movq %rbx, %rdx
callq 0x159b2
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
decl %ebp
movsd 0x38(%rsp), %xmm0
ucomisd 0x99fea(%rip), %xmm0    # 0xae050
movl (%r15), %eax
movl %eax, 0x88(%rbx)
movsd 0x10(%rsp), %xmm1
subsd 0x50(%rsp), %xmm1
jbe 0x14105
movsd %xmm1, 0x10(%rsp)
movq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x32b8c
movslq 0x14(%r14), %rcx
testq %rcx, %rcx
jle 0x140e6
movq 0x8(%r14), %rdx
movl (%r15), %esi
xorl %edi, %edi
movsd 0x38(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movsd 0x50(%rsp), %xmm2
movq (%rdx,%rdi,8), %r8
cmpl %esi, 0x88(%r8)
je 0x140dc
ucomisd (%rax,%rdi,8), %xmm0
jb 0x140dc
movl %esi, 0x88(%r8)
subsd %xmm2, %xmm1
incq %rdi
cmpq %rdi, %rcx
jne 0x140bd
jmp 0x140ec
movsd 0x10(%rsp), %xmm1
testq %rax, %rax
je 0x14105
movq %rax, %rdi
movsd %xmm1, 0x10(%rsp)
callq 0xe5c0
movsd 0x10(%rsp), %xmm1
xorl %ecx, %ecx
movsd 0x40(%rsp), %xmm0
movsd 0x30(%rsp), %xmm2
testb %cl, %cl
je 0x14134
incq %r12
movq 0x8(%rsp), %rcx
movslq 0x14(%rcx), %rax
cmpq %rax, %r12
jl 0x13fdb
jmp 0x14134
movsd 0x10(%rsp), %xmm1
testl %ebp, %ebp
jle 0x14146
incl %r13d
cmpl 0x48(%rsp), %r13d
jl 0x13fa4
movq 0x8(%rsp), %r15
jmp 0x147ac
cmpl $0x0, 0x34(%r15)
jle 0x1479f
movsd %xmm0, 0x38(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
mulsd 0x99ed8(%rip), %xmm0    # 0xae048
movsd %xmm0, 0x40(%rsp)
xorl %r12d, %r12d
leaq 0x158(%rsp), %r13
movq 0x28(%r15), %rax
movq (%rax,%r12,8), %r15
movsd 0xb0(%r15), %xmm0
movapd %xmm0, 0x10(%rsp)
callq 0x7e688
movapd 0x10(%rsp), %xmm2
mulsd 0x40(%rsp), %xmm2
divsd 0x38(%rsp), %xmm2
cvttsd2si %xmm2, %eax
cvttpd2dq %xmm2, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm2
xorl %ebp, %ebp
ucomisd %xmm0, %xmm2
seta %bpl
addl %eax, %ebp
movq %r15, 0x50(%rsp)
jle 0x1478a
movq %r13, %rdi
movq 0x8(%rsp), %rsi
movq %r15, %rdx
callq 0x31360
leaq 0xb8(%rsp), %rdi
leaq 0xa0c13(%rip), %rsi     # 0xb4e08
callq 0x554f6
leaq 0xa0(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq %r15, %rdx
movq %r15, %r14
movq %r13, %r15
movq %r13, %rcx
callq 0x29d6e
movq 0x8(%r14), %rbx
movq 0x10(%r14), %r13
movq 0x18(%r14), %r14
movsd 0xa0(%rsp), %xmm0
testb $0x2, 0x78(%rbx)
jne 0x14250
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
movsd %xmm0, 0x10(%rsp)
callq *0x2b0(%rax)
movsd 0x10(%rsp), %xmm0
addq $0x30, %rbx
leaq 0x3a0(%rsp), %rdi
movq %rbx, %rsi
callq 0x55eb6
leaq 0xb8(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x55ed8
movsd 0xa8(%rsp), %xmm0
testb $0x2, 0x78(%r13)
jne 0x142a6
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
movsd %xmm0, 0x10(%rsp)
callq *0x2b0(%rax)
movsd 0x10(%rsp), %xmm0
addq $0x30, %r13
leaq 0x3a0(%rsp), %rdi
movq %r13, %rsi
callq 0x55eb6
leaq 0xb8(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x55ed8
movsd 0xb0(%rsp), %xmm0
testb $0x2, 0x78(%r14)
jne 0x142fc
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
movq %r14, %rsi
movsd %xmm0, 0x10(%rsp)
callq *0x2b0(%rax)
movsd 0x10(%rsp), %xmm0
addq $0x30, %r14
leaq 0x3a0(%rsp), %rdi
movq %r14, %rsi
callq 0x55eb6
leaq 0xb8(%rsp), %rdi
leaq 0x3a0(%rsp), %rsi
callq 0x55ed8
leaq 0xb8(%rsp), %rdi
callq 0x55808
movq %r15, %r13
leaq 0x3c0(%rsp), %rdi
callq 0x54a4c
leaq 0x310(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
leaq 0xb8(%rsp), %rdx
xorl %ecx, %ecx
callq 0x5463c
leaq 0xe0862(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm0
movsd 0xe0146(%rip), %xmm1    # 0xf44b8
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
leaq 0x3a0(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x19ee2
cmpl $0x0, 0x3a0(%rsp)
jne 0x143aa
movsd 0xe0117(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x3d8(%rsp)
leaq 0x260(%rsp), %rdi
callq 0x54a4c
leaq 0x170(%rsp), %r14
movq %r14, %rdi
leaq 0xb8(%rsp), %rsi
callq 0x5617c
leaq 0x5f0(%rsp), %r15
movq %r15, %rdi
movq %r13, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x5463c
leaq 0xe07da(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm0
movsd 0xe00be(%rip), %xmm1    # 0xf44b8
leaq 0x100(%rsp), %rdi
movq %r15, %rsi
leaq 0x240(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x19ee2
cmpl $0x0, 0x240(%rsp)
movq 0x50(%rsp), %r15
jne 0x14437
movsd 0xe008a(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x278(%rsp)
movsd 0x278(%rsp), %xmm0
minsd 0x3d8(%rsp), %xmm0
ucomisd 0x99bb7(%rip), %xmm0    # 0xae008
jne 0x14459
jnp 0x14782
movsd %xmm0, 0x30(%rsp)
movsd 0xe0051(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x10(%rsp)
callq 0x7e688
movsd 0x10(%rsp), %xmm1
minsd 0x30(%rsp), %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0xe003c(%rip), %xmm1    # 0xf44c8
callq 0xe7e0
mulsd 0x10(%rsp), %xmm0
leaq 0x170(%rsp), %r14
movq %r14, %rdi
leaq 0xb8(%rsp), %rsi
movapd %xmm0, 0x10(%rsp)
callq 0x55eb6
leaq 0xd0(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x54d99
movsd 0xe0780(%rip), %xmm0    # 0xf4c50
ucomisd 0xe0790(%rip), %xmm0    # 0xf4c68
ja 0x1451a
movsd 0xe0776(%rip), %xmm0    # 0xf4c58
ucomisd 0xe0786(%rip), %xmm0    # 0xf4c70
ja 0x1451a
movsd 0xe076c(%rip), %xmm0    # 0xf4c60
ucomisd 0xe077c(%rip), %xmm0    # 0xf4c78
ja 0x1451a
leaq 0xe0743(%rip), %rdi     # 0xf4c48
leaq 0xd0(%rsp), %rsi
callq 0x22d98
testl %eax, %eax
je 0x145eb
cmpb $0x0, 0xe0787(%rip)     # 0xf4ca8
movsd 0x99b0f(%rip), %xmm0    # 0xae038
movsd %xmm0, 0x30(%rsp)
jne 0x14591
leaq 0x190(%rsp), %rdi
callq 0x54a4c
movsd 0xdff72(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0x100(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x170(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18606
cmpl $0x0, 0x170(%rsp)
movapd 0x10(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
je 0x14591
movsd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15a0c
movq %r15, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x54dbc
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xb8(%rsp), %rsi
callq 0x55c92
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
leaq 0x170(%rsp), %r14
movq %r14, %rdi
leaq 0xb8(%rsp), %rsi
movapd 0x10(%rsp), %xmm0
callq 0x55eb6
leaq 0xe8(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x55475
movsd 0xe062c(%rip), %xmm0    # 0xf4c50
ucomisd 0xe063c(%rip), %xmm0    # 0xf4c68
ja 0x1466e
movsd 0xe0622(%rip), %xmm0    # 0xf4c58
ucomisd 0xe0632(%rip), %xmm0    # 0xf4c70
ja 0x1466e
movsd 0xe0618(%rip), %xmm0    # 0xf4c60
ucomisd 0xe0628(%rip), %xmm0    # 0xf4c78
ja 0x1466e
leaq 0xe05ef(%rip), %rdi     # 0xf4c48
leaq 0xe8(%rsp), %rsi
callq 0x22d98
testl %eax, %eax
je 0x14782
cmpb $0x0, 0xe0633(%rip)     # 0xf4ca8
movsd 0x999ab(%rip), %xmm0    # 0xae028
movsd %xmm0, 0x30(%rsp)
jne 0x146ed
leaq 0x190(%rsp), %rdi
callq 0x54a4c
movsd 0xdfe1e(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0x100(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x170(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18606
cmpl $0x0, 0x170(%rsp)
je 0x146d9
movsd 0x1a8(%rsp), %xmm0
movapd %xmm0, 0x10(%rsp)
movapd 0x10(%rsp), %xmm0
xorpd 0x99999(%rip), %xmm0    # 0xae080
movsd %xmm0, 0x30(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x54a4c
movsd 0xdfdb6(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0x100(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
leaq 0x170(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18606
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15a0c
movq %r15, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x54dbc
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xb8(%rsp), %rsi
callq 0x55c92
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x28(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7c6da
decl %ebp
jne 0x141d6
incq %r12
movq 0x8(%rsp), %r15
movslq 0x34(%r15), %rax
cmpq %rax, %r12
jl 0x14181
leaq 0x100(%rsp), %rdi
callq 0x16cc6
movq 0x28(%rsp), %rbp
testq %rbp, %rbp
je 0x149d1
movq %rbp, %r12
cmpl $0x0, 0xdfcd8(%rip)     # 0xf449c
jle 0x1488c
movl 0xc(%r12), %eax
cmpl 0xdfcc7(%rip), %eax     # 0xf449c
jge 0x1488c
leaq 0x3a0(%rsp), %rbx
callq 0x7e688
xorps %xmm1, %xmm1
cvtsi2sdl 0x34(%r15), %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %eax
movq 0x28(%r15), %rcx
cltq
movq (%rcx,%rax,8), %r14
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x31360
testb $0x4, 0xa8(%r14)
jne 0x1482a
movq (%r15), %rax
movq %r15, %rdi
movq %r14, %rsi
callq *0x2c8(%rax)
movl $0x48, %edi
callq 0xe450
movq %rax, %r15
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %rbx, %rsi
callq 0x54a5e
addq $0x38, %r14
movq %r15, %rdi
addq $0x28, %rdi
movq %r14, %rsi
callq 0x554f6
movq $0x0, 0x40(%r15)
movl 0xc(%r12), %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x7c6da
movl 0xc(%r12), %eax
cmpl 0xdfc1b(%rip), %eax     # 0xf449c
movq 0x8(%rsp), %r15
jl 0x147e3
cmpl $0x0, 0xdfc05(%rip)     # 0xf4498
jle 0x148fa
movq %r12, %r14
movl 0xc(%r12), %eax
cmpl 0xdfbf5(%rip), %eax     # 0xf4498
jle 0x148fa
callq 0x7e688
movl 0xc(%r14), %edx
xorps %xmm1, %xmm1
cvtsi2sd %edx, %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %esi
decl %edx
movq %r14, %rdi
callq 0x7c956
movslq 0xc(%r14), %rax
movq (%r14), %rcx
movq -0x8(%rcx,%rax,8), %rbx
leal -0x1(%rax), %esi
movq %r14, %rdi
callq 0x7c84e
testq %rbx, %rbx
je 0x148f0
movl $0x48, %esi
movq %rbx, %rdi
callq 0xe460
movq %r12, %r14
movl 0xc(%r12), %eax
jmp 0x1489d
cmpb $0x1, 0xe037f(%rip)     # 0xf4c80
jne 0x149cc
movq 0xdf662(%rip), %rbx     # 0xf3f70
movq (%rbx), %rcx
leaq 0x99c85(%rip), %rdi     # 0xae59d
movl $0x15, %esi
movl $0x1, %edx
callq 0xe8c0
leaq 0x638(%rsp), %rdi
callq 0x7c10a
leaq 0x998a6(%rip), %rdi     # 0xae1e1
movb $0x1, %al
callq 0xe070
movl 0xc(%r12), %esi
leaq 0x99c65(%rip), %rdi     # 0xae5b3
xorl %eax, %eax
callq 0xe070
leaq 0x99c68(%rip), %rdi     # 0xae5c4
movl 0x84(%rsp), %esi
xorl %eax, %eax
callq 0xe070
movl 0xdfb2c(%rip), %esi     # 0xf449c
testl %esi, %esi
jle 0x14982
leaq 0x99c62(%rip), %rdi     # 0xae5dd
xorl %eax, %eax
callq 0xe070
movl 0xdfb10(%rip), %esi     # 0xf4498
testl %esi, %esi
jle 0x1499a
leaq 0x99c63(%rip), %rdi     # 0xae5f6
xorl %eax, %eax
callq 0xe070
movl 0xdfaf4(%rip), %esi     # 0xf4494
leaq 0x99c68(%rip), %rdi     # 0xae60f
xorl %eax, %eax
callq 0xe070
movsd 0xdfaea(%rip), %xmm0    # 0xf44a0
leaq 0x99c6d(%rip), %rdi     # 0xae62a
movb $0x1, %al
callq 0xe070
movq (%rbx), %rdi
callq 0xe530
movq %r12, %rbx
jmp 0x149e1
leaq 0x99bad(%rip), %rdi     # 0xae585
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x7ea76
movq %rbx, %rax
addq $0x648, %rsp            # imm = 0x648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14b90
movq %rax, %rbx
movl $0x18, %esi
movq %r15, %rdi
jmp 0x14b6b
jmp 0x14be7
movq %rax, %rbx
movl $0x10, %esi
movq %r12, %rdi
jmp 0x14b6b
jmp 0x14be7
jmp 0x14a27
movq %rax, %rbx
jmp 0x14d7c
jmp 0x14bc3
movq %rax, %rbx
jmp 0x14db9
jmp 0x14c36
movq %rax, %rbx
leaq 0x310(%rsp), %rdi
callq 0x40318
jmp 0x14dc6
jmp 0x14b16
movq %rax, %rbx
jmp 0x14dd3
movq %rax, %rbx
movl $0x250, %esi            # imm = 0x250
movq 0x10(%rsp), %rdi
jmp 0x14b6b
jmp 0x14ab7
movq %rax, %rbx
jmp 0x14d43
movq %rax, %rbx
jmp 0x14d50
jmp 0x14a8b
jmp 0x14a8b
movq %rax, %rbx
jmp 0x14d5d
jmp 0x14ac7
jmp 0x14ac7
jmp 0x14ac7
movq %rax, %rbx
movl $0x10, %esi
movq 0x28(%rsp), %rdi
callq 0xe460
jmp 0x14cf8
jmp 0x14c4f
jmp 0x14ac7
movq %rax, %rbx
movl $0x10, %esi
movq %rbp, %rdi
jmp 0x14c41
movq %rax, %rbx
movl $0x10, %esi
movq 0x28(%rsp), %rdi
jmp 0x14c41
movq %rax, %rbx
leaq 0x3a0(%rsp), %rdi
callq 0x7c6ae
jmp 0x14cde
jmp 0x14b90
jmp 0x14d6c
jmp 0x14c36
jmp 0x14be7
movq %rax, %rbx
jmp 0x14cf8
jmp 0x14d1e
jmp 0x14d1e
jmp 0x14b90
movq %rax, %rbx
jmp 0x14dc6
jmp 0x14be7
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14cde
jmp 0x14d6c
jmp 0x14be7
jmp 0x14be7
jmp 0x14be7
jmp 0x14be7
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14d89
movq %rax, %rbx
movl $0x48, %esi
movq %r12, %rdi
callq 0xe460
jmp 0x14ceb
jmp 0x14be7
jmp 0x14b90
jmp 0x14be7
movq %rax, %rbx
jmp 0x14cde
jmp 0x14c36
jmp 0x14c4f
jmp 0x14ba4
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14c52
jmp 0x14c4f
jmp 0x14c4f
movq %rax, %rbx
jmp 0x14ceb
jmp 0x14d26
movq %rax, %rbx
leaq 0x3a0(%rsp), %rdi
callq 0x428d4
jmp 0x14d36
jmp 0x14be7
movq %rax, %rbx
jmp 0x14d89
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14c4f
movq %rax, %rbx
movl $0x48, %esi
movq %r15, %rdi
jmp 0x14c41
jmp 0x14c4f
jmp 0x14c4f
jmp 0x14cc9
jmp 0x14cc9
jmp 0x14c4f
jmp 0x14c4f
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14de0
jmp 0x14c4f
jmp 0x14c4f
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0x16cc6
jmp 0x14de0
jmp 0x14d26
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14d29
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
jmp 0x14d26
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14d9f
jmp 0x14d26
jmp 0x14d26
jmp 0x14d6c
jmp 0x14d9c
movq %rax, %rbx
movq 0x3a0(%rsp), %rdi
testq %rdi, %rdi
je 0x14cde
callq 0xe5c0
leaq 0x170(%rsp), %rdi
callq 0x7c6ae
leaq 0x240(%rsp), %rdi
callq 0x7c6ae
leaq 0x310(%rsp), %rdi
callq 0x7c6ae
jmp 0x14de0
jmp 0x14d1e
jmp 0x14d1e
jmp 0x14d9c
jmp 0x14d9c
jmp 0x14d1e
jmp 0x14d1e
jmp 0x14d9c
movq %rax, %rbx
jmp 0x14dac
movq %rax, %rbx
leaq 0x3a0(%rsp), %rdi
callq 0x4224c
leaq 0x170(%rsp), %rdi
callq 0x6686c
leaq 0x240(%rsp), %rdi
callq 0x6686c
leaq 0x100(%rsp), %rdi
callq 0x729f4
leaq 0x310(%rsp), %rdi
callq 0x15af0
jmp 0x14de0
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0x7c6ae
leaq 0x3a0(%rsp), %rdi
callq 0x4714c
leaq 0x240(%rsp), %rdi
callq 0x40318
jmp 0x14de0
jmp 0x14d9c
jmp 0x14d9c
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0x7c6ae
leaq 0x90(%rsp), %rdi
callq 0x7c6ae
leaq 0x240(%rsp), %rdi
callq 0x15af0
leaq 0xa0(%rsp), %rdi
callq 0x16cc6
leaq 0x3a0(%rsp), %rdi
callq 0x4714c
movq %rbx, %rdi
callq 0xe7f0