// File: /workspace/github_cpp_makefile_star2_O3/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, 0x74(%rsp)
movq %rsi, %rbx
movq %rdi, %r12
leaq 0x638(%rsp), %r14
movq %r14, %rdi
callq 0x7b0ec
movq %r14, %rdi
xorl %esi, %esi
callq 0xe770
movsd 0xe2a26(%rip), %xmm1    # 0xf44a0
xorpd %xmm0, %xmm0
movsd %xmm1, 0x40(%rsp)
ucomisd %xmm1, %xmm0
jbe 0x11ad3
movsd 0xe2a16(%rip), %xmm1    # 0xf44a8
ucomisd %xmm0, %xmm1
jbe 0x11ad3
movsd %xmm1, 0x20(%rsp)
movq %r12, %rdi
callq 0x27ca6
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11ab6
sqrtsd %xmm0, %xmm0
jmp 0x11abb
callq 0xe340
movsd 0x20(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xe29d3(%rip)    # 0xf44a0
movsd %xmm1, 0x40(%rsp)
movb $0x1, %al
cmpl $0x0, 0xe29b8(%rip)     # 0xf4494
jg 0x11b0a
xorpd %xmm0, %xmm0
movsd 0x40(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0x11b00
movl 0x14(%r12), %eax
movl %eax, 0xe299b(%rip)     # 0xf4494
testl %eax, %eax
setg %al
jmp 0x11b0a
movl $0x400, 0xe298a(%rip)   # imm = 0x400
testb %al, %al
je 0x11b85
xorpd %xmm0, %xmm0
ucomisd 0x40(%rsp), %xmm0
movl 0x74(%rsp), %eax
jb 0x11b89
movsd 0xe298a(%rip), %xmm1    # 0xf44b0
ucomisd %xmm0, %xmm1
jbe 0x11b89
addsd %xmm1, %xmm1
movsd %xmm1, 0x20(%rsp)
movq %r12, %rdi
callq 0x27ca6
leaq 0xa4a43(%rip), %rax     # 0xb6588
xorps %xmm1, %xmm1
cvtsi2sdl 0xe2944(%rip), %xmm1 # 0xf4494
mulsd (%rax), %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11b68
sqrtsd %xmm0, %xmm0
jmp 0x11b6d
callq 0xe340
movsd 0x20(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xe2921(%rip)    # 0xf44a0
movsd %xmm1, 0x40(%rsp)
movl 0x74(%rsp), %eax
cmpl $0xe, %eax
ja 0x11d32
movl %eax, %eax
leaq 0x9c515(%rip), %rcx     # 0xae0b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movq %r12, 0x18(%rsp)
jmpq *%rax
movl 0xe28e5(%rip), %ebp     # 0xf4494
movl 0x14(%r12), %eax
cmpl %ebp, %eax
cmovll %eax, %ebp
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
cmpl $0x0, 0x14(%r12)
jle 0x13ef8
xorpd %xmm2, %xmm2
xorl %r14d, %r14d
movsd %xmm2, 0x20(%rsp)
movq 0x8(%r12), %rax
movq (%rax,%r14,8), %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x28ce2
movsd 0x20(%rsp), %xmm2
movsd %xmm0, 0x80(%rbx)
addsd %xmm0, %xmm2
incq %r14
movslq 0x14(%r12), %rax
cmpq %rax, %r14
jl 0x11be3
jmp 0x13efc
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
leaq 0x3e0(%rsp), %rdi
movq %r12, %rsi
callq 0x27ae4
cmpl $0x0, 0x14(%r12)
jle 0x13ec6
movsd 0x9c3ac(%rip), %xmm0    # 0xae008
xorl %r15d, %r15d
leaq 0x3e0(%rsp), %r14
xorl %ebx, %ebx
movsd %xmm0, 0x20(%rsp)
movq 0x8(%r12), %rax
movq (%rax,%r15,8), %r12
leaq 0x18(%r12), %rdi
movq %r14, %rsi
callq 0x247b8
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
minsd %xmm1, %xmm0
cmovaq %r12, %rbx
movq 0x18(%rsp), %r12
incq %r15
movslq 0x14(%r12), %rax
cmpq %rax, %r15
jl 0x11c69
jmp 0x13ec8
movl 0xe27e0(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xb, %ecx
jmp 0x1346f
movl 0xe27c4(%rip), %ebp     # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
leaq 0xf8(%rsp), %rdi
movq %r12, %rsi
callq 0x169fc
leaq 0xe2eda(%rip), %rax     # 0xf4bd8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r12, %rdi
movq %rbx, %rsi
callq 0x15607
ucomisd 0x9c337(%rip), %xmm0    # 0xae050
jne 0x1428b
jp 0x1428b
leaq 0xf8(%rsp), %rdi
callq 0x16b16
leaq 0x9c849(%rip), %rdi     # 0xae582
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x7d84e
jmp 0x14276
movl 0xe2746(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xc, %ecx
jmp 0x1346f
movl 0xe272a(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xc, %ecx
jmp 0x1348d
movl 0xe270e(%rip), %ebx     # 0xf4494
leaq 0x230(%rsp), %rdi
callq 0x7b688
movl 0x14(%r12), %eax
cmpl %ebx, %eax
cmovll %eax, %ebx
movl %ebx, 0x48(%rsp)
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x7b688
movslq 0x14(%r12), %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 0x11e1b
movq 0x8(%r12), %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 0x11df8
leaq 0x298(%rsp), %rdi
callq 0x7b688
cmpl $0x0, 0x23c(%rsp)
jle 0x11e97
xorl %ebx, %ebx
leaq 0x298(%rsp), %r14
movq 0x230(%rsp), %rax
movq (%rax,%rbx,8), %r15
movl $0x48, %edi
callq 0xe450
movq %rax, %r12
movq %rax, %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
callq 0x15826
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r12, %rsi
callq 0x7b71e
movl 0x2a4(%rsp), %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7b71e
incq %rbx
movslq 0x23c(%rsp), %rax
cmpq %rax, %rbx
jl 0x11e3c
movq %r13, 0x10(%rsp)
leaq 0x160(%rsp), %rdi
callq 0x7b688
cmpl $0x0, 0x23c(%rsp)
jne 0x11fbf
movq 0x18(%rsp), %rax
movslq 0x14(%rax), %r12
leaq (,%r12,4), %r15
testq %r12, %r12
movq $-0x1, %rdi
cmovnsq %r15, %rdi
callq 0xe030
testl %r12d, %r12d
jle 0x11fbf
movq %rax, %r14
xorl %ebx, %ebx
movq %rax, %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0xe260
leaq 0x160(%rsp), %r15
leaq 0x3e0(%rsp), %r13
cmpl $0x0, (%r14,%rbx,4)
jne 0x11fb0
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax,%rbx,8), %rbp
movl $0x1, (%r14,%rbx,4)
cmpl $0x0, 0x14(%rbp)
je 0x11fb0
movl 0x2a4(%rsp), %edx
leaq 0x298(%rsp), %rdi
movq %rbp, %rsi
callq 0x7b71e
movl 0x16c(%rsp), %edx
movq %r15, %rdi
movq %rbp, %rsi
callq 0x7b71e
movq %r13, %rdi
callq 0x7b688
movq 0x18(%rsp), %r12
movq %r12, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x29c84
movslq 0x3ec(%rsp), %rax
testq %rax, %rax
jle 0x11fa3
movq 0x3e0(%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 0x11f8b
movq %r13, %rdi
callq 0x7b6f2
movl 0x14(%r12), %r12d
incq %rbx
movslq %r12d, %rax
cmpq %rax, %rbx
jl 0x11f06
movq 0x10(%rsp), %r13
leaq 0x10(%r13), %rax
movq %rax, 0x38(%rsp)
leaq 0x3e0(%rsp), %r15
movq 0x18(%rsp), %r12
movl 0x2a4(%rsp), %eax
movl %eax, %ecx
subl 0x16c(%rsp), %ecx
cmpl 0x48(%rsp), %ecx
jge 0x1349c
movslq 0x14(%r12), %rcx
testq %rcx, %rcx
movabsq $0x47efffffe0000000, %rsi # imm = 0x47EFFFFFE0000000
movq 0x38(%rsp), %rdi
xorpd %xmm0, %xmm0
jle 0x1202a
shlq $0x5, %rcx
xorl %edx, %edx
movq %rsi, -0x8(%rdi,%rdx)
movupd %xmm0, (%rdi,%rdx)
addq $0x20, %rdx
cmpq %rdx, %rcx
jne 0x12017
movapd %xmm0, 0x3e0(%rsp)
leaq 0x3f8(%rsp), %rcx
movupd %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
movl $0x1, 0x410(%rsp)
movabsq $0x1800000008, %rcx     # imm = 0x1800000008
movq %rcx, 0x3f0(%rsp)
testl %eax, %eax
jle 0x12183
xorl %ebx, %ebx
movq 0x298(%rsp), %rax
movq (%rax,%rbx,8), %rax
movslq 0x70(%rax), %rcx
shlq $0x5, %rcx
leaq (%rcx,%r13), %rsi
movq %rax, 0x10(%r13,%rcx)
movq $0x0, 0x8(%r13,%rcx)
movq %r15, %rdi
callq 0x164d6
incq %rbx
movslq 0x2a4(%rsp), %rax
cmpq %rax, %rbx
jl 0x1206e
cmpl $0x0, 0x3e8(%rsp)
je 0x12183
movq %r15, %rdi
callq 0x165ea
movq %rax, %r14
movq (%rax), %rbp
cmpl $0x0, 0x14(%rbp)
jle 0x12173
xorl %ebx, %ebx
movq 0x8(%rbp), %rax
movq (%rax,%rbx,8), %r13
movq 0x8(%r13), %rax
cmpq %rbp, %rax
jne 0x120e9
movq 0x10(%r13), %rax
movq 0x90(%rax), %r12
movsd 0x8(%r12), %xmm1
testb $0x2, 0x38(%r13)
jne 0x1211b
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
movsd %xmm1, 0x20(%rsp)
callq *0x2b8(%rax)
movsd 0x20(%rsp), %xmm1
movsd 0x28(%r13), %xmm0
addsd 0x8(%r14), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x12163
movsd %xmm0, 0x8(%r12)
movq 0x10(%r14), %rax
movq %rax, 0x10(%r12)
movsd 0x9bec3(%rip), %xmm0    # 0xae008
ucomisd %xmm1, %xmm0
jbe 0x12158
movq %r15, %rdi
movq %r12, %rsi
callq 0x16690
jmp 0x12163
movq %r15, %rdi
movq %r12, %rsi
callq 0x164d6
incq %rbx
movslq 0x14(%rbp), %rax
cmpq %rax, %rbx
jl 0x120d4
cmpl $0x0, 0x3e8(%rsp)
jne 0x120ba
jmp 0x12185
xorl %ebp, %ebp
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x12197
callq 0xe5c0
testq %rbp, %rbp
movq 0x18(%rsp), %r12
movq 0x10(%rsp), %r13
je 0x1349c
movslq 0x70(%rbp), %rbx
shlq $0x5, %rbx
addq %r13, %rbx
movsd 0x40(%rsp), %xmm0
ucomisd 0x9be8d(%rip), %xmm0    # 0xae050
jbe 0x121d6
movsd 0x40(%rsp), %xmm0
ucomisd 0x8(%rbx), %xmm0
ja 0x1349c
movq 0x10(%rbx), %rsi
leaq 0x160(%rsp), %rdi
callq 0x7b700
testq %rax, %rax
je 0x12244
movq 0x10(%rbx), %rsi
leaq 0x160(%rsp), %rdi
callq 0x7b700
subq 0x160(%rsp), %rax
shrq $0x3, %rax
leaq 0x160(%rsp), %rdi
movl %eax, %esi
callq 0x7b8a8
movq 0x10(%rbx), %rsi
leaq 0x298(%rsp), %rdi
callq 0x7b700
subq 0x298(%rsp), %rax
shrq $0x3, %rax
leaq 0x298(%rsp), %rdi
movl %eax, %esi
callq 0x7b8a8
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x15826
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
movl 0x2a4(%rsp), %edx
leaq 0x298(%rsp), %rdi
movq %rbp, %rsi
callq 0x7b71e
jmp 0x11fda
movl 0xe2203(%rip), %ebx     # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
movq %r12, %rdi
callq 0x27ca6
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x134d0
sqrtsd %xmm0, %xmm0
jmp 0x134d5
movl 0xe21bc(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xa, %ecx
jmp 0x1348d
movl 0xe21a0(%rip), %ebp     # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
movsd 0xe298d(%rip), %xmm0    # 0xf4ca0
movsd 0xe21a5(%rip), %xmm1    # 0xf44c0
movq %r12, %rdi
movq %rbx, %rsi
callq 0x15607
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x12336
jnp 0x14073
movsd %xmm0, 0x58(%rsp)
xorpd %xmm0, %xmm0
callq 0x7d421
cmpl $0x0, 0x34(%r12)
jle 0x14073
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0x120(%rsp)
xorl %edx, %edx
movq %r12, %rcx
leaq 0x298(%rsp), %r12
leaq 0x368(%rsp), %r13
movsd 0x58(%rsp), %xmm0
movq 0x28(%rcx), %rax
movq %rdx, 0x40(%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 0x123ba
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x2b0(%rax)
movsd 0x58(%rsp), %xmm0
testb $0x2, 0x78(%r15)
jne 0x123d8
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r15, %rsi
callq *0x2b0(%rax)
movsd 0x58(%rsp), %xmm0
movq 0x38(%rsp), %rax
testb $0x2, 0x78(%rax)
jne 0x123fc
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq 0x38(%rsp), %rsi
callq *0x2b0(%rax)
movsd 0x58(%rsp), %xmm0
movsd 0xb0(%r14), %xmm1
mulsd 0x120(%rsp), %xmm1
divsd %xmm0, %xmm1
cvttsd2si %xmm1, %r14d
cvttpd2dq %xmm1, %xmm0
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
movapd %xmm1, 0x20(%rsp)
callq 0x7d464
xorl %ebp, %ebp
movapd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
seta %bpl
addl %r14d, %ebp
jle 0x12605
leaq 0x18(%rbx), %rax
movq %rax, 0x68(%rsp)
leaq 0x18(%r15), %rax
movq %rax, 0x80(%rsp)
movq 0x38(%rsp), %rax
leaq 0x18(%rax), %rcx
movq %rcx, 0x78(%rsp)
addq $0x30, %rbx
movq %rbx, 0x50(%rsp)
addq $0x30, %r15
movq %r15, 0x60(%rsp)
addq $0x30, %rax
movq %rax, 0x38(%rsp)
callq 0x7d464
ucomisd 0x9bbbe(%rip), %xmm0    # 0xae050
jb 0x1249a
sqrtsd %xmm0, %xmm0
jmp 0x1249f
callq 0xe340
movsd %xmm0, 0x20(%rsp)
callq 0x7d464
movapd %xmm0, %xmm1
movsd 0x9bb82(%rip), %xmm0    # 0xae038
movapd %xmm0, %xmm2
movsd 0x20(%rsp), %xmm3
subsd %xmm3, %xmm2
movsd %xmm2, 0x48(%rsp)
subsd %xmm1, %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, 0x10(%rsp)
mulsd %xmm3, %xmm1
movsd %xmm1, 0x20(%rsp)
leaq 0x160(%rsp), %r14
movq %r14, %rdi
movq 0x68(%rsp), %rsi
movapd %xmm2, %xmm0
callq 0x54802
leaq 0x230(%rsp), %r15
movq %r15, %rdi
movq 0x80(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x54802
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x547bc
movq %r13, %rdi
movq 0x78(%rsp), %rsi
movsd 0x20(%rsp), %xmm0
callq 0x54802
leaq 0x3e0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x547bc
movq %r15, %rdi
movq 0x50(%rsp), %rsi
movsd 0x48(%rsp), %xmm0
callq 0x551ee
movq %r13, %rdi
movq 0x60(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x551ee
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x554ac
leaq 0xf8(%rsp), %r15
movq %r15, %rdi
movq 0x38(%rsp), %rsi
movsd 0x20(%rsp), %xmm0
callq 0x551ee
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x554ac
movq %r12, %rdi
callq 0x54b68
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %rbx, %rsi
callq 0x53dce
movq %r14, %rdi
addq $0x28, %rdi
movq %r12, %rsi
callq 0x54862
movq $0x0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
decl %ebp
jne 0x12485
movq 0x40(%rsp), %rdx
incq %rdx
movq 0x18(%rsp), %rcx
movslq 0x34(%rcx), %rax
cmpq %rax, %rdx
movsd 0x58(%rsp), %xmm0
jl 0x1237c
movq %rcx, %r12
jmp 0x14073
movl 0xe1e60(%rip), %r14d    # 0xf4494
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
leaq 0x368(%rsp), %rdi
callq 0x15880
leaq 0xf8(%r12), %rbx
leaq 0x230(%rsp), %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x158b8
leal 0xfffff(%r14), %eax
testl %r14d, %r14d
cmovnsl %r14d, %eax
sarl $0x14, %eax
cmpl $0x81, %eax
movl $0x80, %ecx
cmovgel %eax, %ecx
movl %ecx, 0x68(%rsp)
movq 0xf8(%r12), %rax
leaq 0x128(%rsp), %rdi
movq %rbx, %rsi
callq *0x68(%rax)
movq %rbx, %rdi
callq 0x3f15c
movapd %xmm0, %xmm2
mulsd 0x9b95f(%rip), %xmm2    # 0xae020
movapd 0x9b9b7(%rip), %xmm0    # 0xae080
xorpd %xmm2, %xmm0
leaq 0xf8(%rsp), %rdi
movapd %xmm0, %xmm1
movapd %xmm2, 0x20(%rsp)
movapd %xmm2, %xmm3
callq 0x71218
movapd 0x20(%rsp), %xmm0
mulsd 0x9b94a(%rip), %xmm0    # 0xae040
leaq 0x298(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x654d8
leaq 0x160(%rsp), %rdi
leaq 0x298(%rsp), %rsi
callq 0x657b0
movl 0x68(%rsp), %eax
shll $0x14, %eax
xorps %xmm1, %xmm1
cvtsi2sd %r14d, %xmm1
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
leaq 0x3e8(%rsp), %rbx
leaq 0xa3e55(%rip), %rax     # 0xb65a8
movsd (%rax), %xmm0
movsd %xmm0, 0x50(%rsp)
xorl %r14d, %r14d
leaq 0xdf0c1(%rip), %rax     # 0xf1828
addq $0x10, %rax
movq %rax, 0x80(%rsp)
leaq 0xe2aa6(%rip), %rax     # 0xf5220
addq $0x8, %rax
movq %rax, 0x78(%rsp)
movl $0x88, %eax
addq 0xe1851(%rip), %rax     # 0xf3fe0
movq %rax, 0x58(%rsp)
leaq 0xb0(%rsp), %r12
leaq 0x298(%rsp), %rbp
leaq 0x3e0(%rsp), %r15
movq 0x80(%rsp), %rax
movq %rax, 0x3e0(%rsp)
movq %rbx, %rdi
movq 0x78(%rsp), %rsi
callq 0x43af2
leaq 0x468(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x43af2
leaq 0xe2a3e(%rip), %rax     # 0xf5220
movq 0x108(%rax), %rax
movq %rax, 0x4e8(%rsp)
movq %r12, %rdi
callq 0x5555a
callq 0x7d464
mulsd 0x50(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45256
andb $-0x3, 0x4e8(%rsp)
movq %r12, %rdi
callq 0x5555a
callq 0x7d464
mulsd 0x50(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45256
andb $-0x3, 0x4e8(%rsp)
movq %r12, %rdi
callq 0x5555a
callq 0x7d464
mulsd 0x50(%rsp), %xmm0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x45256
andb $-0x3, 0x4e8(%rsp)
movsd 0x128(%rsp), %xmm0
movsd 0x130(%rsp), %xmm1
movsd 0x138(%rsp), %xmm2
leaq 0x98(%rsp), %rdi
callq 0x54852
movq %r12, %rdi
leaq 0x98(%rsp), %rsi
callq 0x5548c
movq %rbx, %rdi
movq %r12, %rsi
callq 0x44c2c
movq %r14, 0x60(%rsp)
andb $-0x3, 0x4e8(%rsp)
movq %rbp, %rdi
movsd 0x9b76a(%rip), %xmm0    # 0xae028
callq 0x66ed4
leaq 0xe230e(%rip), %rax     # 0xf4bd8
movsd (%rax), %xmm0
leaq 0x160(%rsp), %rdi
callq 0x66ed4
movq 0x18(%rsp), %rcx
cmpl $0x0, 0x34(%rcx)
jle 0x12aad
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 0x53dce
addq $0x18, %r13
leaq 0x98(%rsp), %rdi
movq %r13, %rsi
callq 0x53dce
addq $0x18, %r14
leaq 0xc8(%rsp), %rdi
movq %r14, %rsi
callq 0x53dce
movq %r12, %rdi
movq %r15, %rsi
callq 0x546d4
leaq 0x98(%rsp), %rdi
movq %r15, %rsi
callq 0x546d4
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x546d4
movsd 0xb0(%rsp), %xmm0
movsd 0xb8(%rsp), %xmm1
leaq 0x3d0(%rsp), %rdi
callq 0x73f22
movsd 0x98(%rsp), %xmm0
movsd 0xa0(%rsp), %xmm1
leaq 0x3c0(%rsp), %rdi
callq 0x73f22
movsd 0xc8(%rsp), %xmm0
movsd 0xd0(%rsp), %xmm1
leaq 0x3b0(%rsp), %rdi
callq 0x73f22
movsd 0xc0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x3d0(%rsp), %xmm0
movsd 0x3d8(%rsp), %xmm1
leaq 0xe0(%rsp), %rdi
movq %rbp, %rsi
callq 0x6c092
movsd 0x3c0(%rsp), %xmm0
movsd 0x3c8(%rsp), %xmm1
leaq 0x88(%rsp), %rdi
movq %rbp, %rsi
callq 0x6c092
movsd 0x3b0(%rsp), %xmm0
movsd 0x3b8(%rsp), %xmm1
leaq 0x140(%rsp), %rdi
movq %rbp, %rsi
callq 0x6c092
xorps %xmm0, %xmm0
cvtsi2sd %ebx, %xmm0
movq %rbp, %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x88(%rsp), %rdx
leaq 0x140(%rsp), %rcx
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
movsd 0x10(%rsp), %xmm3
movsd 0x48(%rsp), %xmm4
movsd 0x38(%rsp), %xmm5
leaq 0x160(%rsp), %r8
callq 0x6b7ca
incq %rbx
movq 0x18(%rsp), %rcx
movslq 0x34(%rcx), %rax
cmpq %rax, %rbx
jl 0x128ec
movl 0x224(%rsp), %ecx
testl %ecx, %ecx
jle 0x12d28
xorl %r13d, %r13d
movl 0x220(%rsp), %eax
testl %eax, %eax
jle 0x12d1c
xorps %xmm0, %xmm0
cvtsi2sd %r13d, %xmm0
movsd %xmm0, 0x38(%rsp)
movslq %r13d, %rbp
xorl %ebx, %ebx
callq 0x7d464
ucomisd 0x20(%rsp), %xmm0
ja 0x12b45
movq 0x350(%rsp), %rax
movslq 0x360(%rsp), %rcx
imulq %rbp, %rcx
addq %rbx, %rcx
movsd (%rax,%rcx,8), %xmm1
xorpd %xmm0, %xmm0
movsd %xmm1, 0x10(%rsp)
ucomisd %xmm1, %xmm0
ja 0x12b45
movq 0x218(%rsp), %rax
movslq 0x228(%rsp), %rcx
imulq %rbp, %rcx
addq %rbx, %rcx
movsd (%rax,%rcx,8), %xmm0
leaq 0xe209b(%rip), %rax     # 0xf4bd8
ucomisd (%rax), %xmm0
jne 0x12b58
jp 0x12b58
movl 0x220(%rsp), %eax
incq %rbx
cmpl %eax, %ebx
jl 0x12ae1
jmp 0x12d0d
movsd %xmm0, 0x48(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %ebx, %xmm0
leaq 0xe0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
movsd 0x38(%rsp), %xmm1
callq 0x6c06c
movsd 0xe0(%rsp), %xmm0
movsd 0xe8(%rsp), %xmm1
movq %r12, %rdi
movsd 0x48(%rsp), %xmm2
callq 0x53dbe
movq %r12, %rdi
movq %r15, %rsi
callq 0x546e6
movsd 0x40(%rsp), %xmm0
ucomisd 0x9b497(%rip), %xmm0    # 0xae050
jbe 0x12bde
xorpd %xmm0, %xmm0
leaq 0x230(%rsp), %rdi
movq %r12, %rsi
movsd 0x40(%rsp), %xmm1
callq 0x1591a
testq %rax, %rax
jne 0x12b45
movsd 0x10(%rsp), %xmm0
addsd 0x9b434(%rip), %xmm0    # 0xae020
cvttsd2si %xmm0, %eax
testl %eax, %eax
js 0x12b45
movq 0x18(%rsp), %rcx
cmpl %eax, 0x34(%rcx)
jle 0x12b45
movq 0x18(%rsp), %rcx
movq 0x28(%rcx), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %r14
testb $0x4, 0xa8(%r14)
jne 0x12c30
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r14, %rsi
callq *0x2c8(%rax)
addq $0x38, %r14
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x54862
leaq 0xc8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x54862
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x553d2
movsd 0xd8(%rsp), %xmm0
ucomisd 0x9b3d6(%rip), %xmm0    # 0xae050
jbe 0x12c89
leaq 0x98(%rsp), %rdi
callq 0x54bc0
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %r12, %rsi
callq 0x53dce
movq %r14, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x54862
movsd 0x40(%rsp), %xmm0
ucomisd 0x9b384(%rip), %xmm0    # 0xae050
movq $0x0, 0x40(%r14)
jbe 0x12cf8
movq 0x280(%rsp), %rsi
leaq 0x230(%rsp), %rdi
movq %rdi, %rdx
movq %r14, %rcx
callq 0x15ed4
incl 0x288(%rsp)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
jmp 0x12b45
movl 0x224(%rsp), %ecx
leaq 0x298(%rsp), %rbp
incl %r13d
cmpl %ecx, %r13d
jl 0x12ac6
movq %r15, %rdi
callq 0x4185c
movq 0x60(%rsp), %r14
incl %r14d
cmpl 0x68(%rsp), %r14d
leaq 0x3e8(%rsp), %rbx
jne 0x127ac
leaq 0x160(%rsp), %rdi
callq 0x65988
leaq 0x298(%rsp), %rdi
callq 0x65988
leaq 0xf8(%rsp), %rdi
callq 0x71a90
leaq 0x230(%rsp), %rdi
callq 0x15964
jmp 0x1406e
movl $0x10, %edi
callq 0xe450
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
leaq 0x3e0(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x27ae4
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
movq %rbx, %rsi
callq 0x53dce
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xa202b(%rip), %rsi     # 0xb4e08
callq 0x54862
movq $0x0, 0x40(%r14)
jmp 0x13ee3
movl 0xe169f(%rip), %eax     # 0xf4494
movl %eax, 0x58(%rsp)
leaq 0xe1e48(%rip), %rsi     # 0xf4c48
leaq 0x298(%rsp), %rbx
movq %rbx, %rdi
callq 0x3eb08
movsd 0x8(%rbx), %xmm0
ucomisd 0x20(%rbx), %xmm0
ja 0x12e44
movsd 0x2a8(%rsp), %xmm0
ucomisd 0x2c0(%rsp), %xmm0
ja 0x12e44
movsd 0x2b0(%rsp), %xmm0
ucomisd 0x2c8(%rsp), %xmm0
jbe 0x12e83
leaq 0x2a0(%rsp), %rdi
leaq 0x100(%r12), %rsi
callq 0x54126
leaq 0x2b8(%rsp), %rdi
leaq 0x118(%r12), %rsi
callq 0x54126
leaq 0x298(%rsp), %rdi
movsd 0x9b192(%rip), %xmm0    # 0xae010
callq 0x3f3e6
leaq 0x298(%rsp), %rdi
callq 0x3f132
movsd %xmm0, 0x20(%rsp)
movl $0x250, %edi            # imm = 0x250
callq 0xe450
movsd 0x20(%rsp), %xmm0
mulsd 0x9b16a(%rip), %xmm0    # 0xae018
leaq 0x298(%rsp), %rsi
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl $0x5, %edx
movl $0x200, %ecx            # imm = 0x200
movl $0x5, %r8d
callq 0x46176
cmpl $0x0, 0x34(%r12)
jle 0x13052
xorl %r14d, %r14d
leaq 0xf8(%rsp), %rbp
leaq 0x128(%rsp), %rbx
movq 0x10(%rsp), %r13
movq 0x28(%r12), %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 0x3e0(%rsp), %rdi
movq %r13, %rsi
callq 0x46f08
movsd 0x18(%r15), %xmm0
movsd 0x20(%r15), %xmm1
movsd 0x28(%r15), %xmm2
leaq 0x160(%rsp), %rdi
movq %r13, %rsi
callq 0x46f08
movsd 0x18(%r12), %xmm0
movsd 0x20(%r12), %xmm1
movsd 0x28(%r12), %xmm2
leaq 0x230(%rsp), %rdi
movq %r13, %rsi
callq 0x46f08
incq %r14
xorps %xmm0, %xmm0
cvtsi2sd %r14d, %xmm0
movapd 0x3e0(%rsp), %xmm1
movapd 0x9b0e2(%rip), %xmm2    # 0xae070
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0x368(%rsp)
movsd 0x3f0(%rsp), %xmm1
movsd 0x9b070(%rip), %xmm3    # 0xae020
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movl %eax, 0x370(%rsp)
movsd 0x170(%rsp), %xmm1
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movapd 0x160(%rsp), %xmm1
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0xf8(%rsp)
movl %eax, 0x100(%rsp)
movapd 0x230(%rsp), %xmm1
addpd %xmm2, %xmm1
cvttpd2dq %xmm1, %xmm1
movlpd %xmm1, 0x128(%rsp)
movsd 0x240(%rsp), %xmm1
addsd %xmm3, %xmm1
cvttsd2si %xmm1, %eax
movl %eax, 0x130(%rsp)
movq %r13, %rdi
leaq 0x368(%rsp), %rsi
movq %rbp, %rdx
movq %rbx, %rcx
movl $0x2, %r8d
callq 0x4c278
movq 0x18(%rsp), %r12
movslq 0x34(%r12), %rax
cmpq %rax, %r14
jl 0x12ef7
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x47c28
movq %rbx, %rdi
callq 0x478ea
movsd 0x228(%rbx), %xmm0
movq %rbx, %rdi
callq 0x49fac
leaq 0x3e0(%rsp), %rdi
movq %rbx, %rsi
callq 0x46676
leaq 0x3e0(%rsp), %rdi
movsd 0x9af91(%rip), %xmm0    # 0xae028
callq 0x49b10
leaq 0x160(%rsp), %rdi
callq 0x7b688
movq 0x10(%rsp), %r12
movq 0x610(%rsp), %rax
movq %rax, 0x38(%rsp)
movsd 0x228(%r12), %xmm0
movsd %xmm0, 0x20(%rsp)
movl 0x618(%rsp), %eax
testl %eax, %eax
jle 0x131f8
xorl %ebp, %ebp
movl 0x61c(%rsp), %ecx
leaq 0x160(%rsp), %rbx
testl %ecx, %ecx
jle 0x131ee
xorl %r13d, %r13d
movl 0x620(%rsp), %eax
movl %eax, %edx
testl %edx, %edx
jle 0x131db
xorl %r15d, %r15d
testl %ebp, %ebp
je 0x1313e
testl %r13d, %r13d
je 0x1313e
movl 0x618(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x1313e
testl %r15d, %r15d
je 0x1313e
movl 0x61c(%rsp), %ecx
decl %ecx
cmpl %ecx, %r13d
je 0x1313e
decl %edx
cmpl %edx, %r15d
jne 0x131c4
movq 0x230(%r12), %rcx
movl 0x248(%r12), %edx
imull %r15d, %edx
movl 0x244(%r12), %esi
imull %r13d, %esi
addl %ebp, %edx
addl %esi, %edx
movslq %edx, %rdx
movsd 0x20(%rsp), %xmm0
ucomisd (%rcx,%rdx,8), %xmm0
ja 0x131c4
movl 0x628(%rsp), %eax
imull %r15d, %eax
movl 0x624(%rsp), %ecx
imull %r13d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r14
movq 0x38(%rsp), %rax
leaq (%rax,%r14,8), %rsi
movl 0x16c(%rsp), %edx
movq %rbx, %rdi
callq 0x7b71e
movq 0x610(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r14,8)
movl 0x620(%rsp), %eax
incl %r15d
movl %eax, %edx
cmpl %eax, %r15d
jl 0x1310a
movl 0x61c(%rsp), %ecx
movl %eax, %edx
incl %r13d
cmpl %ecx, %r13d
jl 0x130ff
movl 0x618(%rsp), %eax
incl %ebp
cmpl %eax, %ebp
jl 0x130eb
movl 0x16c(%rsp), %eax
testl %eax, %eax
je 0x133da
movsd 0x20(%rsp), %xmm0
mulsd 0x9ae1b(%rip), %xmm0    # 0xae030
movsd %xmm0, 0x20(%rsp)
movq 0x160(%rsp), %rcx
movslq %eax, %rsi
movq -0x8(%rcx,%rsi,8), %rbp
decl %esi
leaq 0x160(%rsp), %rdi
callq 0x7b8a8
subq 0x38(%rsp), %rbp
shrq $0x3, %rbp
movl %ebp, %eax
cltd
idivl 0x628(%rsp)
movl %eax, %ebx
movl %edx, %eax
movl 0x624(%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, 0x80(%rsp)
addl %ebx, %eax
js 0x133b6
cmpl 0x620(%rsp), %eax
jge 0x133b6
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl 0x78(%rsp), %r10d
movl %r9d, 0x50(%rsp)
movl %eax, 0x60(%rsp)
addl %r14d, %eax
js 0x133a4
cmpl 0x61c(%rsp), %eax
jge 0x133a4
movl $0x3, %r15d
movl 0x68(%rsp), %ebp
movl %r10d, 0x48(%rsp)
testl %ebp, %ebp
js 0x13399
cmpl 0x618(%rsp), %ebp
jge 0x13399
movq 0x610(%rsp), %rax
movl 0x628(%rsp), %ecx
imull %r9d, %ecx
movl 0x624(%rsp), %r8d
imull %r10d, %r8d
addl %ecx, %r8d
addl %ebp, %r8d
movslq %r8d, %r13
movsd (%rax,%r13,8), %xmm0
ucomisd %xmm1, %xmm0
ja 0x13399
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 0x20(%rsp), %xmm0
ucomisd (%rax,%rcx,8), %xmm0
ja 0x13399
movq 0x38(%rsp), %rax
leaq (%rax,%r13,8), %rsi
movl 0x16c(%rsp), %edx
leaq 0x160(%rsp), %rdi
callq 0x7b71e
movq 0x610(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r13,8)
xorpd %xmm1, %xmm1
movl 0x50(%rsp), %r9d
movl 0x48(%rsp), %r10d
incl %ebp
decl %r15d
jne 0x132d8
movl 0x60(%rsp), %eax
incl %eax
incl %r10d
cmpl $0x2, %eax
jne 0x132af
movl 0x80(%rsp), %eax
incl %eax
incl %r9d
cmpl $0x2, %eax
jne 0x13284
movl 0x16c(%rsp), %eax
testl %eax, %eax
jne 0x1321b
leaq 0x3e0(%rsp), %rdi
movsd 0x9ac3e(%rip), %xmm1    # 0xae028
movsd 0x9ac46(%rip), %xmm2    # 0xae038
xorpd %xmm0, %xmm0
callq 0x481e0
leaq 0x3e0(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x49fd6
leaq 0x160(%rsp), %rdi
callq 0x7b6f2
leaq 0x3e0(%rsp), %rdi
callq 0x466d2
movl $0x10, %edi
callq 0xe450
movq 0x18(%rsp), %r12
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7b688
cmpb $0x0, 0xe185e(%rip)     # 0xf4ca8
je 0x13c75
xorl %r15d, %r15d
jmp 0x13c8d
movl 0xe1036(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xa, %ecx
callq 0x14cc9
jmp 0x13492
movl 0xe1018(%rip), %edx     # 0xf4494
movq %r12, %rdi
movq %rbx, %rsi
movsd 0x40(%rsp), %xmm0
movl $0xb, %ecx
callq 0x1513a
movq %rax, 0x8(%rsp)
jmp 0x14073
movq %r13, %rdi
callq 0xe5c0
leaq 0x160(%rsp), %rdi
callq 0x7b6f2
leaq 0x298(%rsp), %rdi
callq 0x7b6f2
leaq 0x230(%rsp), %rdi
callq 0x7b6f2
jmp 0x14073
callq 0xe340
movsd 0x40(%rsp), %xmm1
maxsd %xmm0, %xmm1
leaq 0xf8(%r12), %rsi
leaq 0x3e0(%rsp), %rbx
movq %rbx, %rdi
movapd %xmm1, %xmm0
movl $0x5, %edx
movl $0x400, %ecx            # imm = 0x400
movl $0x2, %r8d
callq 0x46176
movq 0x230(%rbx), %rax
movq %rax, 0x60(%rsp)
movsd 0x228(%rbx), %xmm0
movsd %xmm0, 0x58(%rsp)
leaq 0x98(%rsp), %rdi
movq %r12, %rsi
callq 0x169fc
leaq 0x160(%rsp), %rdi
callq 0x15880
leaq 0x368(%rsp), %rdi
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
xorpd %xmm2, %xmm2
callq 0x53dbe
movl 0x618(%rsp), %eax
decl %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movl 0x61c(%rsp), %eax
decl %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movl 0x620(%rsp), %eax
decl %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
leaq 0xf8(%rsp), %rdi
callq 0x53dbe
movsd 0x368(%rsp), %xmm0
movsd 0x370(%rsp), %xmm1
movsd 0x378(%rsp), %xmm2
leaq 0x128(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x4d408
movsd 0xf8(%rsp), %xmm0
movsd 0x100(%rsp), %xmm1
movsd 0x108(%rsp), %xmm2
leaq 0xb0(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x4d408
leaq 0x230(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x3eb5a
leaq 0x298(%rsp), %rdi
leaq 0x230(%rsp), %rsi
movl $0x10, %edx
callq 0x158b8
leaq 0x230(%rsp), %rdi
callq 0x3f928
leaq 0x88(%rsp), %rdi
callq 0x7b688
movl 0x618(%rsp), %eax
testl %eax, %eax
jle 0x13743
xorl %ebp, %ebp
movl 0x61c(%rsp), %ecx
leaq 0x88(%rsp), %rbx
movabsq $0x3ff0000000000000, %r14 # imm = 0x3FF0000000000000
testl %ecx, %ecx
jle 0x13739
xorl %r15d, %r15d
movl 0x620(%rsp), %eax
movl %eax, %edx
testl %edx, %edx
jle 0x13726
xorl %r12d, %r12d
testl %ebp, %ebp
je 0x136c2
testl %r15d, %r15d
je 0x136c2
movl 0x618(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x136c2
testl %r12d, %r12d
je 0x136c2
movl 0x61c(%rsp), %ecx
decl %ecx
cmpl %ecx, %r15d
je 0x136c2
decl %edx
cmpl %edx, %r12d
jne 0x1370a
movl 0x628(%rsp), %eax
imull %r12d, %eax
movl 0x624(%rsp), %ecx
imull %r15d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r13
movq 0x60(%rsp), %rax
leaq (%rax,%r13,8), %rsi
movl 0x94(%rsp), %edx
movq %rbx, %rdi
callq 0x7b71e
movq 0x610(%rsp), %rax
movq %r14, (%rax,%r13,8)
movl 0x620(%rsp), %eax
incl %r12d
movl %eax, %edx
cmpl %eax, %r12d
jl 0x13692
movl 0x61c(%rsp), %ecx
movl %eax, %edx
movq 0x18(%rsp), %r12
incl %r15d
cmpl %ecx, %r15d
jl 0x13687
movl 0x618(%rsp), %eax
incl %ebp
cmpl %eax, %ebp
jl 0x13673
movl 0x94(%rsp), %eax
testl %eax, %eax
je 0x13c3c
leaq 0xf8(%rsp), %r13
leaq 0x128(%rsp), %rbx
leaq 0xb0(%rsp), %r15
movq 0x88(%rsp), %rcx
movslq %eax, %rsi
movq -0x8(%rcx,%rsi,8), %r14
decl %esi
leaq 0x88(%rsp), %rdi
callq 0x7b8a8
subq 0x60(%rsp), %r14
shrq $0x3, %r14
movl %r14d, %eax
cltd
idivl 0x628(%rsp)
movl %eax, %esi
movl %edx, %eax
movl 0x624(%rsp), %ecx
cltd
idivl %ecx
movl %eax, %edi
movl %r14d, %eax
cltd
idivl %ecx
movl %edx, 0x78(%rsp)
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
movl %edi, 0x15c(%rsp)
xorps %xmm1, %xmm1
cvtsi2sd %edi, %xmm1
movl %esi, 0x154(%rsp)
xorps %xmm2, %xmm2
cvtsi2sd %esi, %xmm2
movq %r13, %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x4d408
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl 0x78(%rsp), %esi
movl %eax, 0x158(%rsp)
addl 0x154(%rsp), %eax
movl %eax, 0x50(%rsp)
js 0x13c1b
movl 0x50(%rsp), %eax
cmpl 0x620(%rsp), %eax
jge 0x13c1b
xorps %xmm0, %xmm0
cvtsi2sdl 0x50(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movl %eax, 0x120(%rsp)
addl 0x15c(%rsp), %eax
movl %eax, 0x38(%rsp)
js 0x13c09
movl 0x38(%rsp), %eax
cmpl 0x61c(%rsp), %eax
jge 0x13c09
xorps %xmm0, %xmm0
cvtsi2sdl 0x38(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %ebp, %eax
addl %esi, %eax
js 0x13bfe
cmpl 0x618(%rsp), %eax
jge 0x13bfe
movl %eax, 0x48(%rsp)
movq 0x610(%rsp), %rax
movl 0x628(%rsp), %ecx
imull 0x50(%rsp), %ecx
movl 0x624(%rsp), %edx
imull 0x38(%rsp), %edx
addl 0x48(%rsp), %ecx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movl 0x48(%rsp), %eax
ucomisd 0x9a75b(%rip), %xmm0    # 0xae020
ja 0x13bfe
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %rbx, %rdi
leaq 0x3e0(%rsp), %rsi
movsd 0x68(%rsp), %xmm1
movsd 0x80(%rsp), %xmm2
callq 0x4d408
leaq 0x230(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x539b2
leaq 0x368(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x547bc
movq %r15, %rdi
movq %r14, %rsi
movsd 0x9a6f8(%rip), %xmm0    # 0xae020
callq 0x54802
leaq 0x140(%rsp), %r14
movq %r14, %rdi
callq 0x7b688
xorpd %xmm0, %xmm0
leaq 0x98(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
movsd 0x58(%rsp), %xmm1
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x194f8
leaq 0xc8(%rsp), %rdi
leaq 0x4e23f2(%rip), %rsi    # 0x4f5d60
callq 0x53dce
leaq 0xe0(%rsp), %rdi
leaq 0xa1486(%rip), %rsi     # 0xb4e08
callq 0x54862
cmpl $0x0, 0x14c(%rsp)
jle 0x13ae4
movq %rbx, %r15
movq %r13, %rbx
xorl %r13d, %r13d
movsd 0x9a662(%rip), %xmm0    # 0xae008
movsd %xmm0, 0x10(%rsp)
movq 0x140(%rsp), %rax
movq (%rax,%r13,8), %r14
movq 0x18(%r14), %r12
testb $0x4, 0xa8(%r12)
jne 0x139d8
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r12, %rsi
callq *0x2c8(%rax)
addq $0x38, %r12
leaq 0x368(%rsp), %rdi
movq %r12, %rsi
callq 0x528b2
leaq 0x368(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
callq 0x249cb
movsd %xmm0, 0x20(%rsp)
movq %r12, %rdi
movq %r15, %rsi
callq 0x249cb
movq 0x18(%rsp), %r12
mulsd 0x20(%rsp), %xmm0
leaq 0xe11a6(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jb 0x13aa5
movq 0x18(%r14), %rdx
movq (%r12), %rax
movq %r12, %rdi
leaq 0x230(%rsp), %rsi
movq %r14, %rcx
callq *0x178(%rax)
testl %eax, %eax
je 0x13aa5
movsd 0x10(%rsp), %xmm0
ucomisd 0x38(%r14), %xmm0
jbe 0x13aa5
leaq 0x20(%r14), %rsi
leaq 0xc8(%rsp), %rdi
callq 0x54126
leaq 0xe0(%rsp), %rdi
leaq 0x368(%rsp), %rsi
callq 0x54fde
xorpd %xmm0, %xmm0
ucomisd 0x20(%rsp), %xmm0
jbe 0x13a99
leaq 0xe0(%rsp), %rdi
callq 0x54bc0
movsd 0x38(%r14), %xmm0
movsd %xmm0, 0x10(%rsp)
movl $0x40, %esi
movq %r14, %rdi
callq 0xe460
incq %r13
movslq 0x14c(%rsp), %rax
cmpq %rax, %r13
jl 0x139ac
movsd 0x9a53a(%rip), %xmm0    # 0xae008
ucomisd 0x10(%rsp), %xmm0
movq %rbx, %r13
movq %r15, %rbx
leaq 0xb0(%rsp), %r15
ja 0x13b3d
movl 0x628(%rsp), %eax
imull 0x50(%rsp), %eax
movl 0x624(%rsp), %ecx
imull 0x38(%rsp), %ecx
addl 0x48(%rsp), %eax
addl %ecx, %eax
movslq %eax, %r14
movq 0x60(%rsp), %rax
leaq (%rax,%r14,8), %rsi
movl 0x94(%rsp), %edx
leaq 0x88(%rsp), %rdi
callq 0x7b71e
movq 0x610(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r14,8)
jmp 0x13bed
movsd 0x40(%rsp), %xmm0
ucomisd 0x9a505(%rip), %xmm0    # 0xae050
jne 0x13bc5
jp 0x13bc5
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
leaq 0x10(%rax), %rdi
xorpd %xmm0, %xmm0
movupd %xmm0, (%rax)
leaq 0xc8(%rsp), %rsi
callq 0x53dce
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xe0(%rsp), %rsi
callq 0x54862
movq $0x0, 0x40(%r14)
movq 0x2e8(%rsp), %rsi
leaq 0x298(%rsp), %rdi
movq %rdi, %rdx
movq %r14, %rcx
callq 0x15ed4
incl 0x2f0(%rsp)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
jmp 0x13bed
xorpd %xmm0, %xmm0
leaq 0x298(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movsd 0x40(%rsp), %xmm1
callq 0x1591a
testq %rax, %rax
je 0x13b4f
leaq 0x140(%rsp), %rdi
callq 0x7b6f2
movl 0x78(%rsp), %esi
incl %ebp
cmpl $0x2, %ebp
jne 0x13870
movl 0x120(%rsp), %eax
incl %eax
cmpl $0x2, %eax
jne 0x13833
movl 0x158(%rsp), %eax
incl %eax
cmpl $0x2, %eax
jne 0x137f3
movl 0x94(%rsp), %eax
testl %eax, %eax
jne 0x1376a
leaq 0x88(%rsp), %rdi
callq 0x7b6f2
leaq 0x298(%rsp), %rdi
callq 0x15964
leaq 0x98(%rsp), %rdi
callq 0x16b16
leaq 0x3e0(%rsp), %rdi
callq 0x466d2
jmp 0x14073
movl $0x18, %edi
callq 0xe450
movq %rax, %r15
movq %rax, %rdi
movq %r12, %rsi
callq 0x169fc
cmpl $0x0, 0x58(%rsp)
jle 0x13e80
leaq 0x160(%rsp), %r13
leaq 0x3e0(%rsp), %rbp
leaq 0xa1159(%rip), %rbx     # 0xb4e08
callq 0x7d464
movsd %xmm0, 0x20(%rsp)
movsd 0x2a0(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x2b8(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
callq 0x7d464
movsd %xmm0, 0x48(%rsp)
movsd 0x2a8(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x2c0(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
callq 0x7d464
movapd %xmm0, %xmm2
movsd 0x38(%rsp), %xmm1
movsd 0x50(%rsp), %xmm3
subsd %xmm1, %xmm3
movsd 0x20(%rsp), %xmm0
mulsd %xmm3, %xmm0
addsd %xmm1, %xmm0
movsd 0x60(%rsp), %xmm3
movsd 0x68(%rsp), %xmm4
subsd %xmm3, %xmm4
movsd 0x48(%rsp), %xmm1
mulsd %xmm4, %xmm1
addsd %xmm3, %xmm1
movsd 0x2b0(%rsp), %xmm3
movsd 0x2c8(%rsp), %xmm4
subsd %xmm3, %xmm4
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
movq %r13, %rdi
callq 0x53dbe
movsd 0x160(%rsp), %xmm0
movsd 0x168(%rsp), %xmm1
movsd 0x170(%rsp), %xmm2
movq %rbp, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
callq 0x46f08
movsd 0x3e0(%rsp), %xmm0
movsd 0x3e8(%rsp), %xmm1
movsd 0x3f0(%rsp), %xmm2
movq %r14, %rdi
callq 0x4690a
movapd %xmm0, 0x20(%rsp)
testq %r15, %r15
je 0x13e2a
leaq 0x400(%rsp), %rdi
callq 0x53dbc
leaq 0xe0dff(%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 0x18418
movsd 0x418(%rsp), %xmm0
movapd %xmm0, %xmm1
xorpd 0x9a277(%rip), %xmm1    # 0xae080
movapd 0x20(%rsp), %xmm2
cmpltsd 0x9a238(%rip), %xmm2    # 0xae050
andpd %xmm2, %xmm1
andnpd %xmm0, %xmm2
orpd %xmm1, %xmm2
movapd %xmm2, 0x20(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15880
leaq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x54126
movq %r14, %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0x54fde
movapd 0x20(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
decl 0x58(%rsp)
jne 0x13caf
testq %r15, %r15
je 0x13e9a
movq %r15, %rdi
callq 0x16b16
movl $0x18, %esi
movq %r15, %rdi
callq 0xe460
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x466d2
movl $0x250, %esi            # imm = 0x250
movq %rbx, %rdi
callq 0xe460
leaq 0x298(%rsp), %rdi
callq 0x3f928
jmp 0x14073
xorl %ebx, %ebx
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0x15826
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
jmp 0x14073
xorpd %xmm2, %xmm2
leaq 0xe05dd(%rip), %r15     # 0xf44e0
incl (%r15)
testl %ebp, %ebp
jle 0x14073
imull $0x64, %ebp, %r12d
xorl %r13d, %r13d
movsd %xmm2, 0x20(%rsp)
callq 0x7d464
movq 0x18(%rsp), %rcx
movslq 0x14(%rcx), %rax
testq %rax, %rax
jle 0x14058
movsd 0x20(%rsp), %xmm2
mulsd %xmm2, %xmm0
movq 0x8(%rcx), %rcx
movl (%r15), %edx
leal -0x1(%rax), %esi
xorpd %xmm1, %xmm1
xorl %edi, %edi
movq (%rcx,%rdi,8), %rbx
cmpl %edx, 0x88(%rbx)
je 0x13f6f
movsd 0x80(%rbx), %xmm3
addsd %xmm3, %xmm1
ucomisd %xmm0, %xmm1
jae 0x13f7c
cmpq %rdi, %rsi
je 0x13f7c
incq %rdi
cmpq %rdi, %rax
jne 0x13f4c
jmp 0x1405e
movsd %xmm3, 0x10(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
movq 0x18(%rsp), %rsi
movq %rbx, %rdx
callq 0x15826
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
decl %ebp
movsd 0x40(%rsp), %xmm0
ucomisd 0x9a091(%rip), %xmm0    # 0xae050
movl (%r15), %eax
movl %eax, 0x88(%rbx)
movsd 0x20(%rsp), %xmm2
subsd 0x10(%rsp), %xmm2
jbe 0x1405e
movsd %xmm2, 0x20(%rsp)
movq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x32456
movslq 0x14(%r14), %rcx
testq %rcx, %rcx
jle 0x1403f
movq 0x8(%r14), %rdx
movl (%r15), %esi
xorl %edi, %edi
movsd 0x20(%rsp), %xmm2
movsd 0x10(%rsp), %xmm1
movq (%rdx,%rdi,8), %r8
cmpl %esi, 0x88(%r8)
je 0x14035
movsd 0x40(%rsp), %xmm0
ucomisd (%rax,%rdi,8), %xmm0
jb 0x14035
movl %esi, 0x88(%r8)
subsd %xmm1, %xmm2
incq %rdi
cmpq %rdi, %rcx
jne 0x14010
jmp 0x14045
movsd 0x20(%rsp), %xmm2
testq %rax, %rax
je 0x1405e
movq %rax, %rdi
movsd %xmm2, 0x20(%rsp)
callq 0xe5c0
movsd 0x20(%rsp), %xmm2
testl %ebp, %ebp
jle 0x1406e
incl %r13d
cmpl %r12d, %r13d
jl 0x13f15
movq 0x18(%rsp), %r12
movl 0xe0423(%rip), %eax     # 0xf449c
testl %eax, %eax
jle 0x14141
movq 0x8(%rsp), %rcx
cmpl %eax, 0xc(%rcx)
jge 0x14141
leaq 0x3e0(%rsp), %rbx
callq 0x7d464
xorps %xmm1, %xmm1
cvtsi2sdl 0x34(%r12), %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %eax
movq 0x28(%r12), %rcx
cltq
movq (%rcx,%rax,8), %r14
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
callq 0x30b74
testb $0x4, 0xa8(%r14)
jne 0x140e1
movq (%r12), %rax
movq %r12, %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 0x53dce
addq $0x38, %r14
movq %r15, %rdi
addq $0x28, %rdi
movq %r14, %rsi
callq 0x54862
movq $0x0, 0x40(%r15)
movq 0x8(%rsp), %r14
movl 0xc(%r14), %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x7b71e
movl 0xc(%r14), %eax
cmpl 0xe0361(%rip), %eax     # 0xf449c
jl 0x14097
movl 0xe0351(%rip), %eax     # 0xf4498
testl %eax, %eax
movq 0x8(%rsp), %r14
jle 0x141a8
cmpl %eax, 0xc(%r14)
jle 0x141a8
callq 0x7d464
movl 0xc(%r14), %edx
xorps %xmm1, %xmm1
cvtsi2sd %edx, %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %esi
decl %edx
movq %r14, %rdi
callq 0x7b9bc
movslq 0xc(%r14), %rax
movq (%r14), %rcx
movq -0x8(%rcx,%rax,8), %rbx
leal -0x1(%rax), %esi
movq %r14, %rdi
callq 0x7b8a8
movl $0x48, %esi
movq %rbx, %rdi
callq 0xe460
movl 0xc(%r14), %eax
cmpl 0xe02f2(%rip), %eax     # 0xf4498
jg 0x14156
cmpb $0x1, 0xe0ad1(%rip)     # 0xf4c80
jne 0x14276
movq 0xdfdb4(%rip), %rbx     # 0xf3f70
movq (%rbx), %rcx
leaq 0x9a3d4(%rip), %rdi     # 0xae59a
movl $0x15, %esi
movl $0x1, %edx
callq 0xe8c0
leaq 0x638(%rsp), %rdi
callq 0x7b14e
leaq 0x99ff8(%rip), %rdi     # 0xae1e1
movb $0x1, %al
callq 0xe070
movl 0xc(%r14), %esi
leaq 0x9a3b5(%rip), %rdi     # 0xae5b0
xorl %eax, %eax
callq 0xe070
leaq 0x9a3b8(%rip), %rdi     # 0xae5c1
movl 0x74(%rsp), %esi
xorl %eax, %eax
callq 0xe070
movl 0xe0282(%rip), %esi     # 0xf449c
testl %esi, %esi
jle 0x1422c
leaq 0x9a3b5(%rip), %rdi     # 0xae5da
xorl %eax, %eax
callq 0xe070
movl 0xe0266(%rip), %esi     # 0xf4498
testl %esi, %esi
jle 0x14244
leaq 0x9a3b6(%rip), %rdi     # 0xae5f3
xorl %eax, %eax
callq 0xe070
movl 0xe024a(%rip), %esi     # 0xf4494
leaq 0x9a3bb(%rip), %rdi     # 0xae60c
xorl %eax, %eax
callq 0xe070
movsd 0xe0240(%rip), %xmm0    # 0xf44a0
leaq 0x9a3c0(%rip), %rdi     # 0xae627
movb $0x1, %al
callq 0xe070
movq (%rbx), %rdi
callq 0xe530
movq %r14, %rax
addq $0x648, %rsp            # imm = 0x648
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movsd %xmm0, 0x48(%rsp)
cmpl $0x0, 0x34(%r12)
jle 0x148da
xorps %xmm0, %xmm0
cvtsi2sd %ebp, %xmm0
mulsd 0x99d9c(%rip), %xmm0    # 0xae048
movsd %xmm0, 0x38(%rsp)
xorl %r13d, %r13d
movq 0x28(%r12), %rax
movq (%rax,%r13,8), %r15
movsd 0xb0(%r15), %xmm0
movapd %xmm0, 0x20(%rsp)
callq 0x7d464
movapd 0x20(%rsp), %xmm2
mulsd 0x38(%rsp), %xmm2
divsd 0x48(%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
leaq 0x128(%rsp), %rbx
jle 0x148c4
movq %rbx, %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
callq 0x30b74
leaq 0xb0(%rsp), %rdi
leaq 0xa0adb(%rip), %rsi     # 0xb4e08
callq 0x54862
movq %r13, %r12
leaq 0x98(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x2962a
movq 0x8(%r15), %rbx
movq 0x10(%r15), %r13
movq 0x18(%r15), %r14
movsd 0x98(%rsp), %xmm0
testb $0x2, 0x78(%rbx)
jne 0x14385
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
movsd %xmm0, 0x20(%rsp)
callq *0x2b0(%rax)
movsd 0x20(%rsp), %xmm0
addq $0x30, %rbx
leaq 0x3e0(%rsp), %rdi
movq %rbx, %rsi
callq 0x551ee
leaq 0xb0(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x55210
movsd 0xa0(%rsp), %xmm0
testb $0x2, 0x78(%r13)
jne 0x143db
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r13, %rsi
movsd %xmm0, 0x20(%rsp)
callq *0x2b0(%rax)
movsd 0x20(%rsp), %xmm0
addq $0x30, %r13
leaq 0x3e0(%rsp), %rdi
movq %r13, %rsi
callq 0x551ee
leaq 0xb0(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x55210
movsd 0xa8(%rsp), %xmm0
testb $0x2, 0x78(%r14)
leaq 0x128(%rsp), %rbx
jne 0x14439
movq 0x18(%rsp), %rdi
movq (%rdi), %rax
movq %r14, %rsi
movsd %xmm0, 0x20(%rsp)
callq *0x2b0(%rax)
movsd 0x20(%rsp), %xmm0
addq $0x30, %r14
leaq 0x3e0(%rsp), %rdi
movq %r14, %rsi
callq 0x551ee
leaq 0xb0(%rsp), %rdi
leaq 0x3e0(%rsp), %rsi
callq 0x55210
leaq 0xb0(%rsp), %rdi
callq 0x54b68
movq %r12, %r13
leaq 0x400(%rsp), %rdi
callq 0x53dbc
leaq 0x230(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
leaq 0xb0(%rsp), %rdx
xorl %ecx, %ecx
callq 0x539ac
leaq 0xe0725(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm0
movsd 0xe0009(%rip), %xmm1    # 0xf44b8
leaq 0xf8(%rsp), %rdi
movq %r14, %rsi
leaq 0x3e0(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x19cd4
cmpl $0x0, 0x3e0(%rsp)
jne 0x144e7
movsd 0xdffda(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x418(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x53dbc
leaq 0x160(%rsp), %r14
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x5548c
leaq 0x368(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x539ac
leaq 0xe069d(%rip), %rax     # 0xf4bc8
movsd (%rax), %xmm0
movsd 0xdff81(%rip), %xmm1    # 0xf44b8
leaq 0xf8(%rsp), %rdi
movq %r12, %rsi
leaq 0x298(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x19cd4
cmpl $0x0, 0x298(%rsp)
je 0x14569
movsd 0x2d0(%rsp), %xmm0
jmp 0x1457a
movsd 0xdff47(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x2d0(%rsp)
minsd 0x418(%rsp), %xmm0
ucomisd 0x99a7d(%rip), %xmm0    # 0xae008
jne 0x14593
jnp 0x148bc
movsd %xmm0, 0x10(%rsp)
movsd 0xdff17(%rip), %xmm0    # 0xf44b8
movsd %xmm0, 0x20(%rsp)
callq 0x7d464
movsd 0x20(%rsp), %xmm1
minsd 0x10(%rsp), %xmm1
movsd %xmm1, 0x20(%rsp)
movsd 0xdff02(%rip), %xmm1    # 0xf44c8
callq 0xe7e0
mulsd 0x20(%rsp), %xmm0
leaq 0x160(%rsp), %r14
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
movapd %xmm0, 0x20(%rsp)
callq 0x551ee
leaq 0xc8(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x54103
movsd 0xe0646(%rip), %xmm0    # 0xf4c50
ucomisd 0xe0656(%rip), %xmm0    # 0xf4c68
ja 0x14654
movsd 0xe063c(%rip), %xmm0    # 0xf4c58
ucomisd 0xe064c(%rip), %xmm0    # 0xf4c70
ja 0x14654
movsd 0xe0632(%rip), %xmm0    # 0xf4c60
ucomisd 0xe0642(%rip), %xmm0    # 0xf4c78
ja 0x14654
leaq 0xe0609(%rip), %rdi     # 0xf4c48
leaq 0xc8(%rsp), %rsi
callq 0x227d4
testl %eax, %eax
je 0x14725
cmpb $0x0, 0xe064d(%rip)     # 0xf4ca8
movsd 0x999d5(%rip), %xmm0    # 0xae038
movsd %xmm0, 0x10(%rsp)
jne 0x146cb
leaq 0x180(%rsp), %rdi
callq 0x53dbc
movsd 0xdfe38(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0xf8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x160(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18418
cmpl $0x0, 0x160(%rsp)
movapd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
je 0x146cb
movsd 0x198(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15880
movq %r15, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x54126
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x54fde
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
leaq 0x160(%rsp), %r14
movq %r14, %rdi
leaq 0xb0(%rsp), %rsi
movapd 0x20(%rsp), %xmm0
callq 0x551ee
leaq 0xe0(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x547df
movsd 0xe04f2(%rip), %xmm0    # 0xf4c50
ucomisd 0xe0502(%rip), %xmm0    # 0xf4c68
ja 0x147a8
movsd 0xe04e8(%rip), %xmm0    # 0xf4c58
ucomisd 0xe04f8(%rip), %xmm0    # 0xf4c70
ja 0x147a8
movsd 0xe04de(%rip), %xmm0    # 0xf4c60
ucomisd 0xe04ee(%rip), %xmm0    # 0xf4c78
ja 0x147a8
leaq 0xe04b5(%rip), %rdi     # 0xf4c48
leaq 0xe0(%rsp), %rsi
callq 0x227d4
testl %eax, %eax
je 0x148bc
cmpb $0x0, 0xe04f9(%rip)     # 0xf4ca8
movsd 0x99871(%rip), %xmm0    # 0xae028
movsd %xmm0, 0x10(%rsp)
jne 0x14827
leaq 0x180(%rsp), %rdi
callq 0x53dbc
movsd 0xdfce4(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0xf8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x160(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18418
cmpl $0x0, 0x160(%rsp)
je 0x14813
movsd 0x198(%rsp), %xmm0
movapd %xmm0, 0x20(%rsp)
movapd 0x20(%rsp), %xmm0
xorpd 0x9985f(%rip), %xmm0    # 0xae080
movsd %xmm0, 0x10(%rsp)
leaq 0x180(%rsp), %rdi
callq 0x53dbc
movsd 0xdfc7c(%rip), %xmm1    # 0xf44b8
xorpd %xmm0, %xmm0
leaq 0xf8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x160(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18418
movl $0x48, %edi
callq 0xe450
movq %rax, %r14
movq %rax, %rdi
callq 0x15880
movq %r15, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x54126
movq %r14, %rdi
addq $0x28, %rdi
leaq 0xb0(%rsp), %rsi
callq 0x54fde
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movl 0xc(%rdi), %edx
movq %r14, %rsi
callq 0x7b71e
decl %ebp
jne 0x1430e
incq %r13
movq 0x18(%rsp), %r12
movslq 0x34(%r12), %rax
cmpq %rax, %r13
jl 0x142b5
leaq 0xf8(%rsp), %rdi
callq 0x16b16
jmp 0x14073
jmp 0x14a7f
movq %rax, %rbx
movl $0x18, %esi
movq %r15, %rdi
jmp 0x14a5a
jmp 0x14ad1
movq %rax, %rbx
movl $0x10, %esi
movq 0x8(%rsp), %rdi
jmp 0x14a5a
jmp 0x14ad1
jmp 0x1491f
movq %rax, %rbx
jmp 0x14c5d
jmp 0x14aad
movq %rax, %rbx
jmp 0x14c9a
jmp 0x14b20
movq %rax, %rbx
leaq 0x230(%rsp), %rdi
callq 0x3f928
jmp 0x14ca7
jmp 0x14a05
movq %rax, %rbx
jmp 0x14cb4
movq %rax, %rbx
movl $0x250, %esi            # imm = 0x250
movq 0x10(%rsp), %rdi
jmp 0x14a5a
jmp 0x149b1
movq %rax, %rbx
jmp 0x14c24
movq %rax, %rbx
jmp 0x14c31
jmp 0x14983
jmp 0x14983
movq %rax, %rbx
jmp 0x14c3e
jmp 0x149b1
jmp 0x149b1
jmp 0x149b1
movq %rax, %rbx
movl $0x10, %esi
movq 0x8(%rsp), %rdi
callq 0xe460
jmp 0x14bd2
jmp 0x14b39
jmp 0x149b1
jmp 0x149b1
movq %rax, %rbx
movl $0x10, %esi
movq 0x8(%rsp), %rdi
jmp 0x14b2b
movq %rax, %rbx
leaq 0x3e0(%rsp), %rdi
callq 0x7b6f2
jmp 0x14bb8
jmp 0x14a7f
jmp 0x14c4d
jmp 0x14b20
jmp 0x14ad1
movq %rax, %rbx
jmp 0x14bd2
jmp 0x14bff
jmp 0x14bff
jmp 0x14a7f
jmp 0x14b20
movq %rax, %rbx
jmp 0x14ca7
jmp 0x14ad1
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14bb8
jmp 0x14c4d
jmp 0x14ad1
jmp 0x14ad1
jmp 0x14ad1
jmp 0x14ad1
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14c6a
movq %rax, %rbx
movl $0x48, %esi
movq %r12, %rdi
callq 0xe460
jmp 0x14bc5
jmp 0x14ad1
jmp 0x14a7f
jmp 0x14ad1
movq %rax, %rbx
jmp 0x14bb8
jmp 0x14b39
jmp 0x14a8e
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14b3c
jmp 0x14b39
jmp 0x14b39
movq %rax, %rbx
jmp 0x14bc5
jmp 0x14c07
movq %rax, %rbx
leaq 0x3e0(%rsp), %rdi
callq 0x41ef0
jmp 0x14c17
jmp 0x14ad1
movq %rax, %rbx
jmp 0x14c6a
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14b39
jmp 0x14ba3
jmp 0x14b39
jmp 0x14b39
jmp 0x14ba3
movq %rax, %rbx
movl $0x48, %esi
movq %r15, %rdi
jmp 0x14b2b
jmp 0x14b39
jmp 0x14b39
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14cc1
jmp 0x14b39
jmp 0x14b39
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x16b16
jmp 0x14cc1
jmp 0x14c07
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14c0a
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
jmp 0x14c07
movq %rax, %rbx
movl $0x48, %esi
movq %r14, %rdi
callq 0xe460
jmp 0x14c80
jmp 0x14c07
jmp 0x14c07
movq %rax, %rbx
movq 0x3e0(%rsp), %rdi
testq %rdi, %rdi
je 0x14bb8
callq 0xe5c0
leaq 0x160(%rsp), %rdi
callq 0x7b6f2
leaq 0x298(%rsp), %rdi
callq 0x7b6f2
leaq 0x230(%rsp), %rdi
callq 0x7b6f2
jmp 0x14cc1
jmp 0x14c4d
jmp 0x14c7d
jmp 0x14bff
jmp 0x14bff
jmp 0x14c7d
jmp 0x14c7d
jmp 0x14bff
jmp 0x14bff
jmp 0x14c7d
movq %rax, %rbx
jmp 0x14c8d
movq %rax, %rbx
leaq 0x3e0(%rsp), %rdi
callq 0x4185c
leaq 0x160(%rsp), %rdi
callq 0x65988
leaq 0x298(%rsp), %rdi
callq 0x65988
leaq 0xf8(%rsp), %rdi
callq 0x71a90
leaq 0x230(%rsp), %rdi
callq 0x15964
jmp 0x14cc1
movq %rax, %rbx
leaq 0x160(%rsp), %rdi
callq 0x7b6f2
leaq 0x3e0(%rsp), %rdi
callq 0x466d2
leaq 0x298(%rsp), %rdi
callq 0x3f928
jmp 0x14cc1
jmp 0x14c7d
jmp 0x14c7d
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0x7b6f2
leaq 0x88(%rsp), %rdi
callq 0x7b6f2
leaq 0x298(%rsp), %rdi
callq 0x15964
leaq 0x98(%rsp), %rdi
callq 0x16b16
leaq 0x3e0(%rsp), %rdi
callq 0x466d2
movq %rbx, %rdi
callq 0xe7f0