// File: /workspace/github_cpp_makefile_star2_O2/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 $0x608, %rsp            # imm = 0x608
movl %edx, 0x6c(%rsp)
movq %rsi, %rbx
movq %rdi, (%rsp)
leaq 0x5b0(%rsp), %r14
movq %r14, %rdi
callq 0x70de6
movq %r14, %rdi
callq 0x14880
movsd 0xd71b7(%rip), %xmm1    # 0xe84c0
xorpd %xmm0, %xmm0
movsd %xmm1, 0x20(%rsp)
ucomisd %xmm1, %xmm0
jbe 0x11363
movsd 0xd71a7(%rip), %xmm1    # 0xe84c8
ucomisd %xmm0, %xmm1
jbe 0x11363
movsd %xmm1, 0x10(%rsp)
movq (%rsp), %rdi
callq 0x25642
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11346
sqrtsd %xmm0, %xmm0
jmp 0x1134b
callq 0xe350
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xd7163(%rip)    # 0xe84c0
movsd %xmm1, 0x20(%rsp)
movb $0x1, %al
cmpl $0x0, 0xd7148(%rip)     # 0xe84b4
jg 0x1139c
xorpd %xmm0, %xmm0
movsd 0x20(%rsp), %xmm1
ucomisd %xmm0, %xmm1
jbe 0x11392
movq (%rsp), %rax
movl 0x14(%rax), %eax
movl %eax, 0xd7129(%rip)     # 0xe84b4
testl %eax, %eax
setg %al
jmp 0x1139c
movl $0x400, 0xd7118(%rip)   # imm = 0x400
testb %al, %al
je 0x11411
xorpd %xmm0, %xmm0
ucomisd 0x20(%rsp), %xmm0
jb 0x11411
movsd 0xd711c(%rip), %xmm1    # 0xe84d0
ucomisd %xmm0, %xmm1
jbe 0x11411
addsd %xmm1, %xmm1
movsd %xmm1, 0x10(%rsp)
movq (%rsp), %rdi
callq 0x25642
leaq 0x95144(%rip), %rax     # 0xa6518
cvtsi2sdl 0xd70d8(%rip), %xmm1 # 0xe84b4
mulsd (%rax), %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x113f4
sqrtsd %xmm0, %xmm0
jmp 0x113f9
callq 0xe350
movsd 0x10(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0xd70b5(%rip)    # 0xe84c0
movsd %xmm1, 0x20(%rsp)
cmpl $0xe, 0x6c(%rsp)
ja 0x139a3
movl 0x6c(%rsp), %eax
leaq 0x8cc89(%rip), %rcx     # 0x9e0b0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
movabsq $0x3ff0000000000000, %r13 # imm = 0x3FF0000000000000
jmpq *%rax
movl 0xd7074(%rip), %ebp     # 0xe84b4
movq (%rsp), %rbx
movl 0x14(%rbx), %eax
cmpl %ebp, %eax
cmovll %eax, %ebp
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
xorpd %xmm2, %xmm2
xorl %r14d, %r14d
movslq 0x14(%rbx), %rax
cmpq %rax, %r14
jge 0x12091
movq 0x8(%rbx), %rax
movq (%rax,%r14,8), %rbx
movq (%rsp), %rdi
movq %rbx, %rsi
movsd %xmm2, 0x10(%rsp)
callq 0x26466
movsd 0x10(%rsp), %xmm2
movsd %xmm0, 0x80(%rbx)
movq (%rsp), %rbx
addsd %xmm0, %xmm2
incq %r14
jmp 0x11468
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
leaq 0x360(%rsp), %r14
movq %r14, %rdi
movq (%rsp), %r13
movq %r13, %rsi
callq 0x25496
movsd 0x8cb2a(%rip), %xmm0    # 0x9e008
xorl %r15d, %r15d
xorl %ebx, %ebx
movslq 0x14(%r13), %rax
cmpq %rax, %r15
jge 0x12066
movq 0x8(%r13), %rax
movq (%rax,%r15,8), %r12
leaq 0x18(%r12), %rdi
movq %r14, %rsi
movsd %xmm0, 0x10(%rsp)
callq 0x22706
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
cmovaq %r12, %rbx
minsd %xmm1, %xmm0
incq %r15
jmp 0x114e3
movl 0xd6f8c(%rip), %edx     # 0xe84b4
pushq $0xb
jmp 0x1202c
movl 0xd6f7f(%rip), %ebp     # 0xe84b4
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
leaq 0x120(%rsp), %rdi
movq (%rsp), %r14
movq %r14, %rsi
callq 0x15ed4
leaq 0xd7693(%rip), %rax     # 0xe8bf8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1469b
ucomisd 0x8cad0(%rip), %xmm0    # 0x9e050
movq (%rsp), %rcx
jne 0x130f7
jp 0x130f7
xorl %ebx, %ebx
jmp 0x137af
movl 0xd6f17(%rip), %edx     # 0xe84b4
pushq $0xc
jmp 0x1202c
movl 0xd6f0a(%rip), %edx     # 0xe84b4
pushq $0xc
jmp 0x12049
movl 0xd6efd(%rip), %ebx     # 0xe84b4
leaq 0x218(%rsp), %rdi
callq 0x7132e
movq (%rsp), %rax
movl 0x14(%rax), %eax
cmpl %ebx, %eax
cmovll %eax, %ebx
movl %ebx, 0x28(%rsp)
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x7132e
movq (%rsp), %rax
movslq 0x14(%rax), %rbx
movq %rbx, %rdi
shlq $0x5, %rdi
testq %rbx, %rbx
pushq $-0x1
popq %rbp
cmovsq %rbp, %rdi
callq 0xe030
movq %rax, 0x30(%rsp)
xorl %eax, %eax
testl %ebx, %ebx
cmovlel %eax, %ebx
xorpd %xmm0, %xmm0
movq 0x30(%rsp), %rcx
cmpq %rax, %rbx
je 0x12209
movq (%rsp), %rdx
movq 0x8(%rdx), %rdx
movq (%rdx,%rax,8), %rdx
movq %rcx, 0x90(%rdx)
movq %rdx, (%rcx)
movabsq $0x47efffffe0000000, %rdx # imm = 0x47EFFFFFE0000000
movq %rdx, 0x8(%rcx)
incq %rax
movupd %xmm0, 0x10(%rcx)
addq $0x20, %rcx
jmp 0x1161e
movl 0xd6e55(%rip), %ebx     # 0xe84b4
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
movq (%rsp), %rdi
callq 0x25642
cvtsi2sd %ebx, %xmm1
divsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x128ff
sqrtsd %xmm0, %xmm0
jmp 0x12904
movl 0xd6e12(%rip), %edx     # 0xe84b4
pushq $0xa
jmp 0x12049
movl 0xd6e05(%rip), %ebp     # 0xe84b4
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
movsd 0xd75f4(%rip), %xmm0    # 0xe8cc0
movsd 0xd6e0c(%rip), %xmm1    # 0xe84e0
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x1469b
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x116f0
jnp 0x137ca
movsd %xmm0, 0xf8(%rsp)
xorpd %xmm0, %xmm0
callq 0x72df7
cvtsi2sd %ebp, %xmm0
movsd %xmm0, 0xf0(%rsp)
leaq 0x148(%rsp), %r12
leaq 0x5c0(%rsp), %r13
xorl %ecx, %ecx
movq (%rsp), %r14
movslq 0x34(%r14), %rax
cmpq %rax, %rcx
jge 0x137ca
movq 0x28(%r14), %rax
movq %rcx, 0x70(%rsp)
movq (%rax,%rcx,8), %rbp
movq 0x8(%rbp), %rsi
movq 0x10(%rbp), %r15
movq 0x18(%rbp), %rbx
leaq 0x18(%rsi), %rax
movq %rax, 0x50(%rsp)
leaq 0x18(%r15), %rax
movq %rax, 0x48(%rsp)
leaq 0x18(%rbx), %rax
movq %rax, 0x58(%rsp)
movq %r14, %rdi
callq 0x14918
movq %rax, 0x20(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x14918
movq %rax, 0x60(%rsp)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x14918
movsd 0xb0(%rbp), %xmm1
mulsd 0xf0(%rsp), %xmm1
divsd 0xf8(%rsp), %xmm1
cvttsd2si %xmm1, %r14d
cvttpd2dq %xmm1, %xmm0
movq %rax, 0x78(%rsp)
cvtdq2pd %xmm0, %xmm0
subsd %xmm0, %xmm1
movapd %xmm1, 0x10(%rsp)
callq 0x72e3a
xorl %ebp, %ebp
movapd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
seta %bpl
addl %r14d, %ebp
testl %ebp, %ebp
movl $0x0, %eax
cmovlel %eax, %ebp
subl $0x1, %ebp
jb 0x11947
callq 0x72e3a
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x11804
sqrtsd %xmm0, %xmm0
jmp 0x11809
callq 0xe350
movsd %xmm0, 0x10(%rsp)
callq 0x72e3a
movapd %xmm0, %xmm1
movsd 0x8c810(%rip), %xmm0    # 0x9e030
movapd %xmm0, %xmm2
movsd 0x10(%rsp), %xmm3
subsd %xmm3, %xmm2
movsd %xmm2, 0x28(%rsp)
subsd %xmm1, %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, 0x30(%rsp)
mulsd %xmm3, %xmm1
movsd %xmm1, 0x10(%rsp)
leaq 0x278(%rsp), %r14
movq %r14, %rdi
movq 0x50(%rsp), %rsi
movapd %xmm2, %xmm0
callq 0x4d794
leaq 0x218(%rsp), %r15
movq %r15, %rdi
movq 0x48(%rsp), %rsi
movsd 0x30(%rsp), %xmm0
callq 0x4d794
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4d74e
movq %r13, %rdi
movq 0x58(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x4d794
leaq 0x360(%rsp), %rbx
movq %rbx, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x4d74e
movq %r15, %rdi
movq 0x20(%rsp), %rsi
movsd 0x28(%rsp), %xmm0
callq 0x4ded6
movq %r13, %rdi
movq 0x60(%rsp), %rsi
movsd 0x30(%rsp), %xmm0
callq 0x4ded6
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x4e166
leaq 0x120(%rsp), %r15
movq %r15, %rdi
movq 0x78(%rsp), %rsi
movsd 0x10(%rsp), %xmm0
callq 0x4ded6
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x4e166
movq %r12, %rdi
callq 0x4dae2
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x14888
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x117e6
movq 0x70(%rsp), %rcx
incq %rcx
jmp 0x11721
movl 0xd6b5a(%rip), %ebx     # 0xe84b4
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
leaq 0x5c0(%rsp), %rdi
callq 0x1495c
movq (%rsp), %r15
leaq 0xf8(%r15), %r14
leaq 0x218(%rsp), %rdi
pushq $0x10
popq %rdx
movq %r14, %rsi
callq 0x14a32
movl $0x100000, %ecx         # imm = 0x100000
movl %ebx, %eax
cltd
idivl %ecx
cmpl $0x81, %eax
movl $0x80, %ecx
cmovgel %eax, %ecx
movl %ecx, 0x60(%rsp)
movq 0xf8(%r15), %rax
leaq 0x348(%rsp), %rdi
movq %r14, %rsi
callq *0x68(%rax)
movq %r14, %rdi
callq 0x15678
movapd %xmm0, %xmm2
movapd 0x8c692(%rip), %xmm0    # 0x9e070
xorpd %xmm2, %xmm0
leaq 0x120(%rsp), %rdi
movapd %xmm0, %xmm1
movapd %xmm2, 0x10(%rsp)
movapd %xmm2, %xmm3
callq 0x67b9e
movapd 0x10(%rsp), %xmm0
mulsd 0x8c62d(%rip), %xmm0    # 0x9e038
leaq 0x148(%rsp), %rdi
leaq 0x120(%rsp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x5ccf8
leaq 0x278(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x5cfd8
movl 0x60(%rsp), %eax
cvtsi2sd %ebx, %xmm1
shll $0x14, %eax
cvtsi2sd %eax, %xmm0
divsd %xmm0, %xmm1
movsd %xmm1, 0x10(%rsp)
leaq 0x94adf(%rip), %rax     # 0xa6538
movsd (%rax), %xmm0
movsd %xmm0, 0x48(%rsp)
xorl %eax, %eax
leaq 0x98(%rsp), %r13
leaq 0xd8(%rsp), %r12
leaq 0xd717c(%rip), %rbp     # 0xe8bf8
movq %rax, 0x58(%rsp)
cmpl 0x60(%rsp), %eax
movq (%rsp), %rbx
je 0x128c6
leaq 0x360(%rsp), %rdi
leaq 0xd77a2(%rip), %rsi     # 0xe9240
callq 0x15688
movq %r13, %rdi
callq 0x4e214
callq 0x72e3a
mulsd 0x48(%rsp), %xmm0
leaq 0x360(%rsp), %rdi
movq %r13, %rsi
callq 0x156e8
movq %r13, %rdi
callq 0x4e214
callq 0x72e3a
mulsd 0x48(%rsp), %xmm0
leaq 0x360(%rsp), %rdi
movq %r13, %rsi
callq 0x156e8
movq %r13, %rdi
callq 0x4e214
callq 0x72e3a
mulsd 0x48(%rsp), %xmm0
leaq 0x360(%rsp), %rdi
movq %r13, %rsi
callq 0x156e8
movq %r12, %rdi
leaq 0x348(%rsp), %rsi
callq 0x15714
movq %r13, %rdi
movq %r12, %rsi
callq 0x4e146
leaq 0x360(%rsp), %rdi
movq %r13, %rsi
callq 0x156fe
leaq 0x148(%rsp), %rdi
movsd 0x8c4d9(%rip), %xmm0    # 0x9e020
callq 0x5e59c
movsd (%rbp), %xmm0
leaq 0x278(%rsp), %rdi
callq 0x5e59c
xorl %r15d, %r15d
movslq 0x34(%rbx), %rax
cmpq %rax, %r15
jge 0x11c9b
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rbx
movq 0x18(%rax), %r14
addq $0x18, %rsi
movq %r13, %rdi
callq 0x4d030
addq $0x18, %rbx
movq %r12, %rdi
movq %rbx, %rsi
callq 0x4d030
addq $0x18, %r14
leaq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x4d030
movq (%rsp), %rbx
leaq 0x360(%rsp), %r14
movq %r13, %rdi
movq %r14, %rsi
callq 0x4d666
movq %r12, %rdi
movq %r14, %rsi
callq 0x4d666
leaq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x4d666
movsd 0x98(%rsp), %xmm0
movsd 0xa0(%rsp), %xmm1
leaq 0xc0(%rsp), %rdi
callq 0x6a5b0
movsd 0xd8(%rsp), %xmm0
movsd 0xe0(%rsp), %xmm1
leaq 0xb0(%rsp), %rdi
callq 0x6a5b0
movsd 0x80(%rsp), %xmm0
movsd 0x88(%rsp), %xmm1
leaq 0x110(%rsp), %r14
movq %r14, %rdi
callq 0x6a5b0
cvtsi2sd %r15d, %xmm0
movsd 0xa8(%rsp), %xmm3
movsd 0xe8(%rsp), %xmm4
movsd 0x90(%rsp), %xmm5
leaq 0x148(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
movq %r14, %rcx
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
leaq 0x278(%rsp), %r8
callq 0x15730
incq %r15
jmp 0x11b61
xorl %ebx, %ebx
cmpl 0x33c(%rsp), %ebx
jge 0x11e9d
cvtsi2sd %ebx, %xmm0
movsd %xmm0, 0x50(%rsp)
movslq %ebx, %r15
xorl %r12d, %r12d
cmpl 0x338(%rsp), %r12d
jge 0x11e96
callq 0x72e3a
ucomisd 0x10(%rsp), %xmm0
ja 0x11d26
movq 0x200(%rsp), %rax
movslq 0x210(%rsp), %rcx
imulq %r15, %rcx
addq %r12, %rcx
movsd (%rax,%rcx,8), %xmm1
xorpd %xmm0, %xmm0
movsd %xmm1, 0x30(%rsp)
ucomisd %xmm1, %xmm0
ja 0x11d26
movq 0x330(%rsp), %rax
movslq 0x340(%rsp), %rcx
imulq %r15, %rcx
addq %r12, %rcx
movsd (%rax,%rcx,8), %xmm0
ucomisd (%rbp), %xmm0
jne 0x11d2b
jp 0x11d2b
incq %r12
jmp 0x11cba
movsd %xmm0, 0x28(%rsp)
cvtsi2sd %r12d, %xmm0
leaq 0xc0(%rsp), %rdi
leaq 0x278(%rsp), %rsi
movsd 0x50(%rsp), %xmm1
callq 0x62f80
movsd 0xc0(%rsp), %xmm0
movsd 0xc8(%rsp), %xmm1
movq %r13, %rdi
movsd 0x28(%rsp), %xmm2
callq 0x4d020
movq %r13, %rdi
leaq 0x360(%rsp), %rsi
callq 0x4d678
movsd 0x20(%rsp), %xmm0
ucomisd 0x8c2c1(%rip), %xmm0    # 0x9e050
jbe 0x11db4
xorpd %xmm0, %xmm0
leaq 0x218(%rsp), %rdi
movq %r13, %rsi
movsd 0x20(%rsp), %xmm1
callq 0x14ab6
testq %rax, %rax
jne 0x11d26
movsd 0x30(%rsp), %xmm0
addsd 0x8c27e(%rip), %xmm0    # 0x9e040
cvttsd2si %xmm0, %eax
testl %eax, %eax
js 0x11d26
movq (%rsp), %rcx
cmpl %eax, 0x34(%rcx)
jle 0x11d26
movq (%rsp), %rdi
movq 0x28(%rdi), %rcx
movl %eax, %eax
movq (%rcx,%rax,8), %rsi
callq 0x14a94
leaq 0xd8(%rsp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0x4d7f0
leaq 0x80(%rsp), %rdi
movq %r14, %rsi
callq 0x4d7f0
leaq 0x80(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x4e08c
movsd 0x90(%rsp), %xmm0
ucomisd 0x8c219(%rip), %xmm0    # 0x9e050
jbe 0x11e46
leaq 0xd8(%rsp), %rdi
callq 0x4db36
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
movq %r13, %rsi
leaq 0xd8(%rsp), %rdx
callq 0x14888
movsd 0x20(%rsp), %xmm0
ucomisd 0x8c1de(%rip), %xmm0    # 0x9e050
jbe 0x11e84
leaq 0x218(%rsp), %rdi
movq %r14, %rsi
callq 0x14afe
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x11d26
incl %ebx
jmp 0x11c9d
leaq 0x360(%rsp), %rdi
callq 0x3cc5a
movq 0x58(%rsp), %rax
incl %eax
leaq 0xd8(%rsp), %r12
jmp 0x11a7c
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
leaq 0x360(%rsp), %rbx
movq %rbx, %rdi
movq (%rsp), %rsi
callq 0x25496
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
leaq 0x92ebf(%rip), %rdx     # 0xa4db8
movq %rax, %rdi
movq %rbx, %rsi
callq 0x14888
jmp 0x1207f
movl 0xd65a5(%rip), %eax     # 0xe84b4
movl %eax, 0x70(%rsp)
leaq 0xd6d4e(%rip), %rsi     # 0xe8c68
leaq 0x148(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a0e6
movsd 0x8(%rbx), %xmm0
ucomisd 0x20(%rbx), %xmm0
movq (%rsp), %rax
ja 0x11f62
movsd 0x158(%rsp), %xmm0
ucomisd 0x170(%rsp), %xmm0
ja 0x11f62
movsd 0x160(%rsp), %xmm0
ucomisd 0x178(%rsp), %xmm0
jbe 0x11f8b
leaq 0xf8(%rax), %rsi
leaq 0x148(%rsp), %rdi
callq 0x15d2c
leaq 0x148(%rsp), %rdi
movsd 0x8c08a(%rip), %xmm0    # 0x9e010
callq 0x3a95e
leaq 0x148(%rsp), %rdi
callq 0x3a6d6
movsd %xmm0, 0x10(%rsp)
movl $0x250, %edi            # imm = 0x250
callq 0xe460
movsd 0x10(%rsp), %xmm0
mulsd 0x8c062(%rip), %xmm0    # 0x9e018
leaq 0x148(%rsp), %rsi
pushq $0x5
popq %rdx
movq %rax, 0x10(%rsp)
movq %rax, %rdi
movl $0x200, %ecx            # imm = 0x200
movl %edx, %r8d
callq 0x40c32
xorl %r14d, %r14d
pushq $0x2
popq %rbx
movq (%rsp), %r15
movslq 0x34(%r15), %rax
cmpq %rax, %r14
jge 0x12278
movq 0x28(%r15), %rax
movq (%rax,%r14,8), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq $0x18, %rsi
addq $0x18, %rdx
movq 0x18(%rax), %rcx
addq $0x18, %rcx
incq %r14
cvtsi2sd %r14d, %xmm0
movq 0x10(%rsp), %rdi
movl %ebx, %r8d
callq 0x15d8c
jmp 0x11fe0
movl 0xd648a(%rip), %edx     # 0xe84b4
pushq $0xa
popq %rcx
movq (%rsp), %rdi
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
callq 0x13da2
jmp 0x1205c
movl 0xd646d(%rip), %edx     # 0xe84b4
pushq $0xb
popq %rcx
movq (%rsp), %rdi
movq %rbx, %rsi
movsd 0x20(%rsp), %xmm0
callq 0x141e3
movq %rax, 0x8(%rsp)
jmp 0x137ca
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x148c6
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x137ca
leaq 0xd6468(%rip), %r12     # 0xe8500
incl (%r12)
imull $0x64, %ebp, %r13d
xorl %r15d, %r15d
xorl %ebx, %ebx
testl %ebp, %ebp
jle 0x137ca
cmpl %r13d, %ebx
jge 0x137ca
movsd %xmm2, 0x10(%rsp)
callq 0x72e3a
movsd 0x10(%rsp), %xmm2
mulsd %xmm2, %xmm0
movq (%rsp), %rax
movl 0x14(%rax), %eax
movl (%r12), %ecx
leal -0x1(%rax), %edx
testl %eax, %eax
cmovlel %r15d, %eax
xorpd %xmm1, %xmm1
xorl %esi, %esi
cmpq %rsi, %rax
je 0x12202
movq (%rsp), %rdi
movq 0x8(%rdi), %rdi
movq (%rdi,%rsi,8), %r14
cmpl %ecx, 0x88(%r14)
je 0x1211b
movsd 0x80(%r14), %xmm3
addsd %xmm3, %xmm1
ucomisd %xmm0, %xmm1
jae 0x12120
cmpq %rsi, %rdx
je 0x12120
incq %rsi
jmp 0x120e5
movsd %xmm3, 0x30(%rsp)
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r15
movq %rax, %rdi
movq (%rsp), %rsi
movq %r14, %rdx
callq 0x148c6
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x14bcc
decl %ebp
movsd 0x20(%rsp), %xmm0
ucomisd 0x8bef3(%rip), %xmm0    # 0x9e050
movl (%r12), %eax
movl %eax, 0x88(%r14)
movsd 0x10(%rsp), %xmm2
subsd 0x30(%rsp), %xmm2
jbe 0x121e4
movq (%rsp), %r15
movq %r15, %rdi
movq %r14, %rsi
xorl %edx, %edx
movsd %xmm2, 0x10(%rsp)
callq 0x2e39e
movsd 0x30(%rsp), %xmm1
movsd 0x10(%rsp), %xmm2
movl 0x14(%r15), %ecx
movl (%r12), %edx
testl %ecx, %ecx
movl $0x0, %r15d
cmovlel %r15d, %ecx
xorl %esi, %esi
cmpq %rsi, %rcx
je 0x121e9
movq (%rsp), %rdi
movq 0x8(%rdi), %rdi
movq (%rdi,%rsi,8), %rdi
cmpl %edx, 0x88(%rdi)
je 0x121df
movsd 0x20(%rsp), %xmm0
ucomisd (%rax,%rsi,8), %xmm0
jb 0x121df
movl %edx, 0x88(%rdi)
subsd %xmm1, %xmm2
incq %rsi
jmp 0x121af
xorl %r15d, %r15d
jmp 0x12202
testq %rax, %rax
je 0x12202
movq %rax, %rdi
movsd %xmm2, 0x10(%rsp)
callq 0xe5e0
movsd 0x10(%rsp), %xmm2
incl %ebx
jmp 0x120a5
leaq 0x148(%rsp), %rdi
callq 0x7132e
xorl %ebx, %ebx
pushq $0x48
popq %r14
leaq 0x148(%rsp), %r15
movslq 0x224(%rsp), %rax
cmpq %rax, %rbx
jge 0x12630
movq 0x218(%rsp), %rax
movq (%rax,%rbx,8), %r12
movq %r14, %rdi
callq 0xe460
movq %rax, %r13
movq %rax, %rdi
movq (%rsp), %rsi
movq %r12, %rdx
callq 0x148c6
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x14bcc
movq %r15, %rdi
movq %r12, %rsi
callq 0x14bcc
incq %rbx
jmp 0x12224
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x422c0
movq %rbx, %rdi
callq 0x42054
movsd 0x228(%rbx), %xmm0
movq %rbx, %rdi
callq 0x44184
leaq 0x360(%rsp), %rdi
movq %rbx, %rsi
callq 0x410ca
leaq 0x360(%rsp), %rdi
movsd 0x8bd63(%rip), %xmm0    # 0x9e020
callq 0x43de4
leaq 0x278(%rsp), %rdi
callq 0x7132e
movq 0x590(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x10(%rsp), %rax
movsd 0x228(%rax), %xmm1
movsd 0x8bd37(%rip), %xmm0    # 0x9e028
mulsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rsp)
xorl %ebp, %ebp
leaq 0x278(%rsp), %rbx
movsd %xmm1, 0x50(%rsp)
cmpl 0x598(%rsp), %ebp
jge 0x125a6
xorl %r15d, %r15d
cmpl 0x59c(%rsp), %r15d
jge 0x123f5
xorl %r14d, %r14d
movl 0x5a0(%rsp), %eax
cmpl %eax, %r14d
jge 0x123ed
testl %ebp, %ebp
je 0x12377
testl %r15d, %r15d
je 0x12377
movl 0x598(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x12377
movl 0x59c(%rsp), %ecx
decl %ecx
cmpl %ecx, %r15d
sete %cl
testl %r14d, %r14d
sete %dl
orb %cl, %dl
decl %eax
cmpl %eax, %r14d
sete %al
orb %dl, %al
cmpb $0x1, %al
jne 0x123e5
movq 0x10(%rsp), %rdx
movq 0x230(%rdx), %rax
movl 0x248(%rdx), %ecx
imull %r14d, %ecx
movl 0x244(%rdx), %edx
imull %r15d, %edx
addl %ebp, %ecx
addl %edx, %ecx
movslq %ecx, %rcx
ucomisd (%rax,%rcx,8), %xmm1
ja 0x123e5
movl 0x5a8(%rsp), %eax
imull %r14d, %eax
movl 0x5a4(%rsp), %ecx
imull %r15d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r12
movq 0x28(%rsp), %rax
leaq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x14bcc
movq 0x590(%rsp), %rax
movq %r13, (%rax,%r12,8)
movsd 0x50(%rsp), %xmm1
incl %r14d
jmp 0x1232c
incl %r15d
jmp 0x1231b
incl %ebp
jmp 0x1230b
movq 0x278(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %rbp
leaq 0x278(%rsp), %rdi
callq 0x148bc
subq 0x28(%rsp), %rbp
shrq $0x3, %rbp
movl %ebp, %eax
cltd
idivl 0x5a8(%rsp)
movl %eax, %esi
movl %edx, %eax
movl 0x5a4(%rsp), %ecx
cltd
idivl %ecx
movl %eax, %ebx
movl %ebp, %eax
cltd
idivl %ecx
movl %edx, %r14d
leal -0x1(%rsi), %r9d
leal -0x1(%rbx), %eax
movl %eax, 0x78(%rsp)
leal -0x1(%r14), %eax
movl %eax, 0x20(%rsp)
pushq $-0x1
popq %rax
xorpd %xmm1, %xmm1
cmpl $0x2, %eax
je 0x125a6
movl %eax, 0x60(%rsp)
addl %esi, %eax
js 0x12598
cmpl 0x5a0(%rsp), %eax
jge 0x12598
movl 0x78(%rsp), %r10d
pushq $-0x1
popq %rax
movl %r9d, 0x58(%rsp)
cmpl $0x2, %eax
je 0x12598
movl %eax, 0x48(%rsp)
addl %ebx, %eax
js 0x1258a
cmpl 0x59c(%rsp), %eax
jge 0x1258a
pushq $0x3
popq %r15
movl 0x20(%rsp), %ebp
movl %r10d, 0x50(%rsp)
subl $0x1, %r15d
jb 0x1258a
testl %ebp, %ebp
js 0x12583
cmpl 0x598(%rsp), %ebp
jge 0x12583
movq 0x590(%rsp), %rax
movl 0x5a8(%rsp), %ecx
imull %r9d, %ecx
movl 0x5a4(%rsp), %r8d
imull %r10d, %r8d
addl %ecx, %r8d
addl %ebp, %r8d
movslq %r8d, %r13
movsd (%rax,%r13,8), %xmm0
ucomisd %xmm1, %xmm0
ja 0x12583
movq 0x10(%rsp), %r8
movq 0x230(%r8), %rax
movl 0x248(%r8), %ecx
imull %esi, %ecx
movl 0x244(%r8), %r8d
imull %ebx, %r8d
addl %r14d, %ecx
addl %r8d, %ecx
movslq %ecx, %rcx
movsd 0x30(%rsp), %xmm0
ucomisd (%rax,%rcx,8), %xmm0
ja 0x12583
movq %rsi, %r12
movq 0x28(%rsp), %rax
leaq (%rax,%r13,8), %rsi
leaq 0x278(%rsp), %rdi
callq 0x14bcc
movq 0x590(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r13,8)
xorpd %xmm1, %xmm1
movq %r12, %rsi
movl 0x58(%rsp), %r9d
movl 0x50(%rsp), %r10d
incl %ebp
jmp 0x124b9
movl 0x48(%rsp), %eax
incl %eax
incl %r10d
jmp 0x1248a
movl 0x60(%rsp), %eax
incl %eax
incl %r9d
jmp 0x1245b
movslq 0x284(%rsp), %rax
testq %rax, %rax
jne 0x123fc
leaq 0x360(%rsp), %rdi
movsd 0x8ba59(%rip), %xmm1    # 0x9e020
movsd 0x8ba61(%rip), %xmm2    # 0x9e030
xorpd %xmm0, %xmm0
callq 0x42770
leaq 0x360(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0x441b0
leaq 0x278(%rsp), %rdi
callq 0x7139c
leaq 0x360(%rsp), %rdi
callq 0x41122
pushq $0x10
popq %rdi
callq 0xe460
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x7132e
xorl %ebx, %ebx
cmpb $0x0, 0xd66a6(%rip)     # 0xe8cc8
je 0x12ee9
xorl %r15d, %r15d
jmp 0x12f00
leaq 0x278(%rsp), %rdi
callq 0x7132e
cmpl $0x0, 0x224(%rsp)
movq (%rsp), %rbx
je 0x136bb
movq 0x30(%rsp), %rax
leaq 0x10(%rax), %rbp
leaq 0x360(%rsp), %r15
movl 0x154(%rsp), %eax
movl %eax, %ecx
subl 0x284(%rsp), %ecx
cmpl 0x28(%rsp), %ecx
jge 0x12890
movq (%rsp), %rcx
movl 0x14(%rcx), %ecx
testl %ecx, %ecx
movl $0x0, %edx
cmovlel %edx, %ecx
shlq $0x5, %rcx
xorl %edx, %edx
movabsq $0x47efffffe0000000, %rsi # imm = 0x47EFFFFFE0000000
cmpq %rdx, %rcx
je 0x126b5
movq %rsi, -0x8(%rbp,%rdx)
xorpd %xmm0, %xmm0
movupd %xmm0, (%rbp,%rdx)
addq $0x20, %rdx
jmp 0x1269b
xorpd %xmm0, %xmm0
movapd %xmm0, 0x360(%rsp)
leaq 0x378(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movupd %xmm0, (%rcx)
movl $0x1, 0x390(%rsp)
movabsq $0x1800000008, %rcx     # imm = 0x1800000008
movq %rcx, 0x370(%rsp)
xorl %ebx, %ebx
cltq
cmpq %rax, %rbx
jge 0x12735
movq 0x148(%rsp), %rax
movq (%rax,%rbx,8), %rax
movslq 0x70(%rax), %rcx
shlq $0x5, %rcx
movq 0x30(%rsp), %rdx
leaq (%rdx,%rcx), %rsi
movq %rax, 0x10(%rdx,%rcx)
andq $0x0, 0x8(%rdx,%rcx)
movq %r15, %rdi
callq 0x15806
incq %rbx
movl 0x154(%rsp), %eax
jmp 0x126f2
xorl %r13d, %r13d
cmpl $0x0, 0x368(%rsp)
je 0x127e1
movq %r15, %rdi
callq 0x1590e
movq %rax, %r14
movq (%rax), %r13
xorl %ebx, %ebx
movslq 0x14(%r13), %rax
cmpq %rax, %rbx
jge 0x12738
movq 0x8(%r13), %rax
movq (%rax,%rbx,8), %rsi
movq 0x8(%rsi), %rax
cmpq %r13, %rax
jne 0x12774
movq 0x10(%rsi), %rax
movq 0x90(%rax), %r12
movsd 0x8(%r12), %xmm0
movsd %xmm0, 0x10(%rsp)
movq (%rsp), %rdi
callq 0x159ae
movsd 0x10(%rsp), %xmm1
addsd 0x8(%r14), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x127d9
movsd %xmm0, 0x8(%r12)
movq 0x10(%r14), %rax
movq %rax, 0x10(%r12)
movsd 0x8b84d(%rip), %xmm0    # 0x9e008
ucomisd %xmm1, %xmm0
jbe 0x127ce
movq %r15, %rdi
movq %r12, %rsi
callq 0x159cc
jmp 0x127d9
movq %r15, %rdi
movq %r12, %rsi
callq 0x15806
incq %rbx
jmp 0x12756
movq %r15, %rdi
callq 0x15a46
testq %r13, %r13
je 0x12890
movslq 0x70(%r13), %rbx
shlq $0x5, %rbx
addq 0x30(%rsp), %rbx
movsd 0x20(%rsp), %xmm0
ucomisd 0x8b843(%rip), %xmm0    # 0x9e050
jbe 0x1281c
movsd 0x20(%rsp), %xmm0
ucomisd 0x8(%rbx), %xmm0
ja 0x12890
movq 0x10(%rbx), %rsi
leaq 0x278(%rsp), %rdi
callq 0x713a4
testq %rax, %rax
je 0x12854
movq 0x10(%rbx), %rsi
leaq 0x278(%rsp), %rdi
callq 0x15d0a
movq 0x10(%rbx), %rsi
leaq 0x148(%rsp), %rdi
callq 0x15d0a
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
movq (%rsp), %rsi
movq %r13, %rdx
callq 0x148c6
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
leaq 0x148(%rsp), %rdi
movq %r13, %rsi
callq 0x14bcc
jmp 0x12660
movq 0x30(%rsp), %rdi
callq 0xe5e0
leaq 0x278(%rsp), %rdi
callq 0x7139c
leaq 0x148(%rsp), %rdi
callq 0x7139c
leaq 0x218(%rsp), %rdi
callq 0x7139c
jmp 0x137ca
leaq 0x278(%rsp), %rdi
callq 0x5d190
leaq 0x148(%rsp), %rdi
callq 0x5d190
leaq 0x120(%rsp), %rdi
callq 0x68312
leaq 0x218(%rsp), %rdi
callq 0x14b16
jmp 0x137ca
callq 0xe350
movsd 0x20(%rsp), %xmm1
maxsd %xmm0, %xmm1
movq (%rsp), %r14
leaq 0xf8(%r14), %rsi
leaq 0x360(%rsp), %rbx
pushq $0x5
popq %rdx
pushq $0x2
popq %r8
movq %rbx, %rdi
movapd %xmm1, %xmm0
movl $0x400, %ecx            # imm = 0x400
callq 0x40c32
movq 0x230(%rbx), %rax
movq %rax, 0x28(%rsp)
movsd 0x228(%rbx), %xmm0
movsd %xmm0, 0xf8(%rsp)
movq %r14, %rsi
leaq 0x120(%rsp), %rdi
callq 0x15ed4
leaq 0x278(%rsp), %rdi
callq 0x1495c
leaq 0x218(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x14992
leaq 0x148(%rsp), %rdi
leaq 0x218(%rsp), %rsi
pushq $0x10
popq %rdx
callq 0x14a32
leaq 0x218(%rsp), %rdi
callq 0x3ad9e
leaq 0xb0(%rsp), %rdi
callq 0x7132e
xorl %ebp, %ebp
leaq 0xb0(%rsp), %rbx
cmpl 0x598(%rsp), %ebp
jge 0x12a7d
xorl %r14d, %r14d
cmpl 0x59c(%rsp), %r14d
jge 0x12a76
xorl %r15d, %r15d
movl 0x5a0(%rsp), %eax
cmpl %eax, %r15d
jge 0x12a6e
testl %ebp, %ebp
je 0x12a2c
testl %r14d, %r14d
je 0x12a2c
movl 0x598(%rsp), %ecx
decl %ecx
cmpl %ecx, %ebp
je 0x12a2c
movl 0x59c(%rsp), %ecx
decl %ecx
cmpl %ecx, %r14d
sete %cl
testl %r15d, %r15d
sete %dl
orb %cl, %dl
decl %eax
cmpl %eax, %r15d
sete %al
orb %dl, %al
cmpb $0x1, %al
jne 0x12a66
movl 0x5a8(%rsp), %eax
imull %r15d, %eax
movl 0x5a4(%rsp), %ecx
imull %r14d, %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r12
movq 0x28(%rsp), %rax
leaq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x14bcc
movq 0x590(%rsp), %rax
movq %r13, (%rax,%r12,8)
incl %r15d
jmp 0x129e5
incl %r14d
jmp 0x129d4
incl %ebp
jmp 0x129c4
leaq 0x348(%rsp), %r15
leaq 0x98(%rsp), %r13
leaq 0x5c0(%rsp), %rbx
movslq 0xbc(%rsp), %rax
testq %rax, %rax
je 0x139bc
movq 0xb0(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %r14
leaq 0xb0(%rsp), %rdi
callq 0x148bc
subq 0x28(%rsp), %r14
shrq $0x3, %r14
movl %r14d, %eax
cltd
idivl 0x5a8(%rsp)
movl %eax, %esi
movl %edx, %eax
movl 0x5a4(%rsp), %ecx
cltd
idivl %ecx
movl %eax, %edi
movl %r14d, %eax
cltd
idivl %ecx
movl %edx, 0x70(%rsp)
cvtsi2sd %edx, %xmm0
movl %edi, 0x108(%rsp)
cvtsi2sd %edi, %xmm1
movl %esi, 0x104(%rsp)
cvtsi2sd %esi, %xmm2
movq %r15, %rdi
leaq 0x360(%rsp), %rsi
callq 0x46f7e
pushq $-0x1
popq %rcx
movl 0x70(%rsp), %esi
cmpl $0x2, %ecx
je 0x12a95
movl %ecx, %eax
addl 0x104(%rsp), %eax
movl %eax, 0x48(%rsp)
js 0x12ee2
movl 0x48(%rsp), %eax
cmpl 0x5a0(%rsp), %eax
jge 0x12ee2
cvtsi2sdl 0x48(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
pushq $-0x1
popq %rax
movl %ecx, 0x10c(%rsp)
cmpl $0x2, %eax
je 0x12ee2
movl %eax, 0xf0(%rsp)
addl 0x108(%rsp), %eax
movl %eax, 0x50(%rsp)
js 0x12ecd
movl 0x50(%rsp), %eax
cmpl 0x59c(%rsp), %eax
jge 0x12ecd
cvtsi2sdl 0x50(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
pushq $-0x1
popq %rdi
leaq 0x110(%rsp), %r12
cmpl $0x2, %edi
je 0x12ecd
movl %edi, %ebp
addl %esi, %ebp
js 0x12ec6
cmpl 0x598(%rsp), %ebp
jge 0x12ec6
movq 0x590(%rsp), %rax
movl 0x5a8(%rsp), %ecx
imull 0x48(%rsp), %ecx
movl 0x5a4(%rsp), %edx
imull 0x50(%rsp), %edx
addl %ebp, %ecx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
ucomisd 0x8b441(%rip), %xmm0    # 0x9e040
ja 0x12ec6
movl %edi, 0x58(%rsp)
cvtsi2sd %ebp, %xmm0
movq %r13, %rdi
leaq 0x360(%rsp), %rsi
movsd 0x60(%rsp), %xmm1
movsd 0x78(%rsp), %xmm2
callq 0x46f7e
leaq 0x218(%rsp), %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x4cc38
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x4d74e
leaq 0xd8(%rsp), %rdi
movq %rbx, %rsi
movsd 0x8b3e3(%rip), %xmm0    # 0x9e040
callq 0x4d794
movq %r12, %rdi
callq 0x7132e
xorpd %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
movq %r12, %rdx
movsd 0xf8(%rsp), %xmm1
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18628
leaq 0x80(%rsp), %rdi
leaq 0x4d70dd(%rip), %rsi    # 0x4e9d80
callq 0x4d030
leaq 0xc0(%rsp), %rdi
leaq 0x92101(%rip), %rsi     # 0xa4db8
callq 0x4d7f0
movq %r13, %r12
movq %r15, %r13
xorl %r15d, %r15d
movsd 0x8b33b(%rip), %xmm0    # 0x9e008
movsd %xmm0, 0x30(%rsp)
movslq 0x11c(%rsp), %rax
cmpq %rax, %r15
jge 0x12dc2
movq 0x110(%rsp), %rax
movq (%rax,%r15,8), %r14
movq 0x18(%r14), %rsi
movq (%rsp), %rdi
callq 0x14a94
movq %rbx, %rdi
movq %rax, %rsi
callq 0x4bbf4
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2290c
movsd %xmm0, 0x10(%rsp)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2290c
mulsd 0x10(%rsp), %xmm0
leaq 0xd5eb7(%rip), %rax     # 0xe8be8
movsd (%rax), %xmm1
ucomisd %xmm0, %xmm1
jb 0x12daf
movq 0x18(%r14), %rdx
movq (%rsp), %rdi
movq (%rdi), %rax
leaq 0x218(%rsp), %rsi
movq %r14, %rcx
callq *0x178(%rax)
testl %eax, %eax
je 0x12daf
movsd 0x30(%rsp), %xmm0
ucomisd 0x38(%r14), %xmm0
jbe 0x12daf
leaq 0x20(%r14), %rsi
leaq 0x80(%rsp), %rdi
callq 0x4d30a
leaq 0xc0(%rsp), %rdi
movq %rbx, %rsi
callq 0x4dd50
xorpd %xmm0, %xmm0
ucomisd 0x10(%rsp), %xmm0
jbe 0x12da3
leaq 0xc0(%rsp), %rdi
callq 0x4db36
movsd 0x38(%r14), %xmm0
movsd %xmm0, 0x30(%rsp)
movq %r14, %rdi
pushq $0x40
popq %rsi
callq 0xe470
incq %r15
jmp 0x12cd3
movsd 0x8b23e(%rip), %xmm0    # 0x9e008
ucomisd 0x30(%rsp), %xmm0
ja 0x12e30
movl 0x5a8(%rsp), %eax
imull 0x48(%rsp), %eax
movl 0x5a4(%rsp), %ecx
imull 0x50(%rsp), %ecx
addl %ebp, %eax
addl %ecx, %eax
movslq %eax, %r14
movq 0x28(%rsp), %rax
leaq (%rax,%r14,8), %rsi
leaq 0xb0(%rsp), %rdi
callq 0x14bcc
movq %r13, %r15
movq %r12, %r13
leaq 0x110(%rsp), %r12
movq 0x590(%rsp), %rax
movabsq $0x3ff0000000000000, %rcx # imm = 0x3FF0000000000000
movq %rcx, (%rax,%r14,8)
jmp 0x12eb6
movsd 0x20(%rsp), %xmm0
ucomisd 0x8b212(%rip), %xmm0    # 0x9e050
movq %r13, %r15
movq %r12, %r13
leaq 0x110(%rsp), %r12
jne 0x12e92
jp 0x12e92
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
leaq 0x80(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x14888
leaq 0x148(%rsp), %rdi
movq %r14, %rsi
callq 0x14afe
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x12eb6
xorpd %xmm0, %xmm0
leaq 0x148(%rsp), %rdi
leaq 0x80(%rsp), %rsi
movsd 0x20(%rsp), %xmm1
callq 0x14ab6
testq %rax, %rax
je 0x12e50
movq %r12, %rdi
callq 0x7139c
movl 0x70(%rsp), %esi
movl 0x58(%rsp), %edi
incl %edi
jmp 0x12bab
movl 0xf0(%rsp), %eax
incl %eax
movl 0x10c(%rsp), %ecx
jmp 0x12b62
incl %ecx
jmp 0x12b1f
pushq $0x18
popq %rdi
callq 0xe460
movq %rax, %r15
movq %rax, %rdi
movq (%rsp), %rsi
callq 0x15ed4
movl 0x70(%rsp), %r12d
testl %r12d, %r12d
cmovlel %ebx, %r12d
leaq 0x278(%rsp), %r13
pushq $0x48
popq %rbp
leaq 0x91e9a(%rip), %rbx     # 0xa4db8
subl $0x1, %r12d
jb 0x130b3
callq 0x72e3a
movsd %xmm0, 0x30(%rsp)
movsd 0x150(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0x168(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
callq 0x72e3a
movsd %xmm0, 0x28(%rsp)
movsd 0x158(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movsd 0x170(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
callq 0x72e3a
movapd %xmm0, %xmm2
movsd 0x50(%rsp), %xmm1
movsd 0x48(%rsp), %xmm3
subsd %xmm1, %xmm3
movsd 0x30(%rsp), %xmm0
mulsd %xmm3, %xmm0
addsd %xmm1, %xmm0
movsd 0x58(%rsp), %xmm3
movsd 0x20(%rsp), %xmm4
subsd %xmm3, %xmm4
movsd 0x28(%rsp), %xmm1
mulsd %xmm4, %xmm1
addsd %xmm3, %xmm1
movsd 0x160(%rsp), %xmm3
movsd 0x178(%rsp), %xmm4
subsd %xmm3, %xmm4
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
movq %r13, %rdi
callq 0x4d020
movq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x15d5e
movapd %xmm0, 0x30(%rsp)
testq %r15, %r15
je 0x13067
leaq 0x380(%rsp), %rdi
callq 0x4d01e
leaq 0xd5be7(%rip), %rax     # 0xe8bf8
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r13, %rsi
leaq 0x360(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x176c2
movsd 0x398(%rsp), %xmm0
movapd %xmm0, %xmm1
xorpd 0x8b02a(%rip), %xmm1    # 0x9e070
movapd 0x30(%rsp), %xmm2
cmpltsd 0x8affb(%rip), %xmm2    # 0x9e050
andpd %xmm2, %xmm1
andnpd %xmm0, %xmm2
orpd %xmm1, %xmm2
movapd %xmm2, 0x30(%rsp)
movq %rbp, %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
callq 0x1495c
leaq 0x10(%r14), %rdi
movq %r13, %rsi
callq 0x4d30a
movq %r14, %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0x4dd50
movapd 0x30(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x12f1e
testq %r15, %r15
je 0x130cb
movq %r15, %rdi
callq 0x15fb8
pushq $0x18
popq %rsi
movq %r15, %rdi
callq 0xe470
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x41122
movl $0x250, %esi            # imm = 0x250
movq %rbx, %rdi
callq 0xe470
leaq 0x148(%rsp), %rdi
callq 0x3ad9e
jmp 0x137ca
movsd %xmm0, 0x50(%rsp)
cvtsi2sd %ebp, %xmm0
mulsd 0x8af3f(%rip), %xmm0    # 0x9e048
movsd %xmm0, 0x48(%rsp)
leaq 0x348(%rsp), %r15
xorl %edx, %edx
movq (%rsp), %rbp
movslq 0x34(%rcx), %rax
cmpq %rax, %rdx
jge 0x137aa
movq 0x28(%rcx), %rax
movq %rdx, 0x28(%rsp)
movq (%rax,%rdx,8), %r13
movsd 0xb0(%r13), %xmm0
movapd %xmm0, 0x10(%rsp)
callq 0x72e3a
movapd 0x10(%rsp), %xmm2
mulsd 0x48(%rsp), %xmm2
divsd 0x50(%rsp), %xmm2
cvttsd2si %xmm2, %eax
cvttpd2dq %xmm2, %xmm1
cvtdq2pd %xmm1, %xmm1
subsd %xmm1, %xmm2
xorl %ebx, %ebx
ucomisd %xmm0, %xmm2
seta %bl
addl %eax, %ebx
testl %ebx, %ebx
movl $0x0, %eax
cmovlel %eax, %ebx
subl $0x1, %ebx
jb 0x136aa
movq %r15, %rdi
movq (%rsp), %rsi
movq %r13, %rdx
callq 0x2d060
leaq 0x98(%rsp), %rdi
leaq 0x91c0f(%rip), %rsi     # 0xa4db8
callq 0x4d7f0
leaq 0xd8(%rsp), %rdi
movq %rbp, %rsi
movq %r13, %rdx
movq %r15, %r12
movq %r15, %rcx
callq 0x26c1e
movq 0x8(%r13), %rsi
movq 0x10(%r13), %r15
movq 0x18(%r13), %r14
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq %rbp, %rdi
callq 0x14918
leaq 0x360(%rsp), %rdi
movq %rax, %rsi
movsd 0x10(%rsp), %xmm0
callq 0x4ded6
leaq 0x98(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x4def8
movsd 0xe0(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq (%rsp), %rdi
movq %r15, %rsi
callq 0x14918
leaq 0x360(%rsp), %rdi
movq %rax, %rsi
movsd 0x10(%rsp), %xmm0
callq 0x4ded6
leaq 0x98(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x4def8
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x14918
movq %r12, %r15
leaq 0x360(%rsp), %rdi
movq %rax, %rsi
movsd 0x10(%rsp), %xmm0
callq 0x4ded6
leaq 0x98(%rsp), %rdi
leaq 0x360(%rsp), %rsi
callq 0x4def8
leaq 0x98(%rsp), %rdi
callq 0x4dae2
leaq 0x380(%rsp), %rdi
callq 0x4d01e
leaq 0x218(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
leaq 0x98(%rsp), %rdx
xorl %ecx, %ecx
callq 0x4cc32
leaq 0xd5906(%rip), %rax     # 0xe8be8
movsd (%rax), %xmm0
movsd 0xd51ea(%rip), %xmm1    # 0xe84d8
leaq 0x120(%rsp), %rdi
movq %r14, %rsi
leaq 0x360(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18d60
cmpl $0x0, 0x360(%rsp)
jne 0x13326
movsd 0xd51bb(%rip), %xmm0    # 0xe84d8
movsd %xmm0, 0x398(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x4d01e
leaq 0x278(%rsp), %r14
movq %r14, %rdi
leaq 0x98(%rsp), %rsi
callq 0x4e146
leaq 0x5c0(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x4cc32
leaq 0xd587e(%rip), %rax     # 0xe8be8
movsd (%rax), %xmm0
movsd 0xd5162(%rip), %xmm1    # 0xe84d8
leaq 0x120(%rsp), %rdi
movq %r12, %rsi
leaq 0x148(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x18d60
cmpl $0x0, 0x148(%rsp)
je 0x133a8
movsd 0x180(%rsp), %xmm0
jmp 0x133b9
movsd 0xd5128(%rip), %xmm0    # 0xe84d8
movsd %xmm0, 0x180(%rsp)
minsd 0x398(%rsp), %xmm0
ucomisd 0x8ac3e(%rip), %xmm0    # 0x9e008
jne 0x133d2
jnp 0x13182
movsd %xmm0, 0x30(%rsp)
movsd 0xd50f8(%rip), %xmm0    # 0xe84d8
movsd %xmm0, 0x10(%rsp)
callq 0x72e3a
movsd 0x10(%rsp), %xmm1
minsd 0x30(%rsp), %xmm1
movsd %xmm1, 0x10(%rsp)
movsd 0xd50e3(%rip), %xmm1    # 0xe84e8
callq 0xe810
mulsd 0x10(%rsp), %xmm0
leaq 0x278(%rsp), %r14
movq %r14, %rdi
leaq 0x98(%rsp), %rsi
movapd %xmm0, 0x10(%rsp)
callq 0x4ded6
leaq 0x80(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x4d2e7
leaq 0xd5820(%rip), %rdi     # 0xe8c68
callq 0x1564c
testl %eax, %eax
jne 0x1346d
leaq 0xd5810(%rip), %rdi     # 0xe8c68
leaq 0x80(%rsp), %rsi
callq 0x20dc0
testl %eax, %eax
je 0x13539
cmpb $0x0, 0xd5854(%rip)     # 0xe8cc8
movsd 0x8abb4(%rip), %xmm0    # 0x9e030
movsd %xmm0, 0x30(%rsp)
jne 0x134e4
leaq 0x298(%rsp), %rdi
callq 0x4d01e
movsd 0xd503f(%rip), %xmm1    # 0xe84d8
xorpd %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x278(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x176c2
cmpl $0x0, 0x278(%rsp)
movapd 0x10(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
je 0x134e4
movsd 0x2b0(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
callq 0x1495c
movq %r13, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0x80(%rsp), %rsi
callq 0x4d30a
movq %r14, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x4dd50
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
leaq 0x278(%rsp), %r14
movq %r14, %rdi
leaq 0x98(%rsp), %rsi
movapd 0x10(%rsp), %xmm0
callq 0x4ded6
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x4d771
leaq 0xd56f7(%rip), %rdi     # 0xe8c68
callq 0x1564c
testl %eax, %eax
jne 0x13596
leaq 0xd56e7(%rip), %rdi     # 0xe8c68
leaq 0xc0(%rsp), %rsi
callq 0x20dc0
testl %eax, %eax
je 0x13182
cmpb $0x0, 0xd572b(%rip)     # 0xe8cc8
movsd 0x8aa7b(%rip), %xmm0    # 0x9e020
movsd %xmm0, 0x30(%rsp)
jne 0x13615
leaq 0x298(%rsp), %rdi
callq 0x4d01e
movsd 0xd4f16(%rip), %xmm1    # 0xe84d8
xorpd %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x278(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x176c2
cmpl $0x0, 0x278(%rsp)
je 0x13601
movsd 0x2b0(%rsp), %xmm0
movapd %xmm0, 0x10(%rsp)
movapd 0x10(%rsp), %xmm0
xorpd 0x8aa61(%rip), %xmm0    # 0x9e070
movsd %xmm0, 0x30(%rsp)
leaq 0x298(%rsp), %rdi
callq 0x4d01e
movsd 0xd4eae(%rip), %xmm1    # 0xe84d8
xorpd %xmm0, %xmm0
leaq 0x120(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x278(%rsp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x176c2
pushq $0x48
popq %rdi
callq 0xe460
movq %rax, %r14
movq %rax, %rdi
callq 0x1495c
movq %r13, 0x8(%r14)
leaq 0x10(%r14), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x4d30a
movq %r14, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x4dd50
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x40(%r14)
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
jmp 0x13182
movq 0x28(%rsp), %rdx
incq %rdx
movq (%rsp), %rcx
jmp 0x1311d
movslq 0x14(%rbx), %r12
leaq (,%r12,4), %rdi
testq %r12, %r12
cmovsq %rbp, %rdi
callq 0xe030
movq %rax, %r15
xorl %eax, %eax
testl %r12d, %r12d
movl $0x0, %ecx
cmovgl %r12d, %ecx
cmpq %rax, %rcx
je 0x136f3
andl $0x0, (%r15,%rax,4)
incq %rax
jmp 0x136e4
leaq 0x360(%rsp), %r13
xorl %ebp, %ebp
movslq %r12d, %rax
cmpq %rax, %rbp
jge 0x1264f
cmpl $0x0, (%r15,%rbp,4)
jne 0x137a2
movq 0x8(%rbx), %rax
movq (%rax,%rbp,8), %r14
movl $0x1, (%r15,%rbp,4)
cmpl $0x0, 0x14(%r14)
je 0x137a2
leaq 0x148(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
leaq 0x278(%rsp), %rdi
movq %r14, %rsi
callq 0x14bcc
movq %r13, %rdi
callq 0x7132e
movq %rbx, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x271c6
movl 0x36c(%rsp), %eax
movq 0x360(%rsp), %rcx
testl %eax, %eax
movl $0x0, %edx
cmovlel %edx, %eax
xorl %edx, %edx
cmpq %rdx, %rax
je 0x13796
movq (%rcx,%rdx,8), %rsi
movslq 0x70(%rsi), %rsi
movl $0x1, (%r15,%rsi,4)
incq %rdx
jmp 0x1377c
movq %r13, %rdi
callq 0x7139c
movl 0x14(%rbx), %r12d
incq %rbp
jmp 0x136fd
movq 0x8(%rsp), %rbx
leaq 0x120(%rsp), %rdi
callq 0x15fb8
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
je 0x139a3
movl 0xd4cec(%rip), %eax     # 0xe84bc
testl %eax, %eax
jle 0x13860
leaq 0x360(%rsp), %rbx
pushq $0x48
popq %r14
movq 0x8(%rsp), %r12
cmpl %eax, 0xc(%r12)
jge 0x13860
callq 0x72e3a
movq (%rsp), %r12
cvtsi2sdl 0x34(%r12), %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %eax
movq 0x28(%r12), %rcx
cltq
movq (%rcx,%rax,8), %r15
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x2d060
movq %r12, %rdi
movq %r15, %rsi
callq 0x14a94
movq %rax, %r12
movq %r14, %rdi
callq 0xe460
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x14888
movq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x14bcc
movl 0xd4c5e(%rip), %eax     # 0xe84bc
jmp 0x137e9
movl 0xd4c52(%rip), %eax     # 0xe84b8
testl %eax, %eax
movq 0x8(%rsp), %r15
jle 0x138be
pushq $0x48
popq %rbx
cmpl %eax, 0xc(%r15)
jle 0x138be
callq 0x72e3a
movl 0xc(%r15), %edx
cvtsi2sd %edx, %xmm1
mulsd %xmm0, %xmm1
cvttsd2si %xmm1, %esi
decl %edx
movq %r15, %rdi
callq 0x715d8
movslq 0xc(%r15), %rax
movq (%r15), %rcx
movq -0x8(%rcx,%rax,8), %r14
movq %r15, %rdi
callq 0x148bc
movq %r14, %rdi
movq %rbx, %rsi
callq 0xe470
movl 0xd4bfc(%rip), %eax     # 0xe84b8
jmp 0x13872
cmpb $0x1, 0xd53db(%rip)     # 0xe8ca0
jne 0x1398c
movq 0xd46ae(%rip), %rbx     # 0xe7f80
movq (%rbx), %rcx
leaq 0x8acbe(%rip), %rdi     # 0x9e59a
pushq $0x15
popq %rsi
pushq $0x1
popq %rdx
callq 0xe8f0
leaq 0x5b0(%rsp), %rdi
callq 0x70e20
leaq 0x8a8e6(%rip), %rdi     # 0x9e1e1
movb $0x1, %al
callq 0xe070
movq 0x8(%rsp), %rax
movl 0xc(%rax), %esi
leaq 0x8ac9f(%rip), %rdi     # 0x9e5b0
xorl %eax, %eax
callq 0xe070
leaq 0x8aca2(%rip), %rdi     # 0x9e5c1
movl 0x6c(%rsp), %esi
xorl %eax, %eax
callq 0xe070
movl 0xd4b8c(%rip), %esi     # 0xe84bc
testl %esi, %esi
jle 0x13942
leaq 0x8ac9f(%rip), %rdi     # 0x9e5da
xorl %eax, %eax
callq 0xe070
movl 0xd4b70(%rip), %esi     # 0xe84b8
testl %esi, %esi
jle 0x1395a
leaq 0x8aca0(%rip), %rdi     # 0x9e5f3
xorl %eax, %eax
callq 0xe070
movl 0xd4b54(%rip), %esi     # 0xe84b4
leaq 0x8aca5(%rip), %rdi     # 0x9e60c
xorl %eax, %eax
callq 0xe070
movsd 0xd4b4a(%rip), %xmm0    # 0xe84c0
leaq 0x8acaa(%rip), %rdi     # 0x9e627
movb $0x1, %al
callq 0xe070
movq (%rbx), %rdi
callq 0xe550
movq 0x8(%rsp), %rax
addq $0x608, %rsp            # imm = 0x608
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x8abd8(%rip), %rdi     # 0x9e582
movq $0x0, 0x8(%rsp)
xorl %eax, %eax
callq 0x731ee
jmp 0x1398c
leaq 0xb0(%rsp), %rdi
callq 0x7139c
leaq 0x148(%rsp), %rdi
callq 0x14b16
leaq 0x120(%rsp), %rdi
callq 0x15fb8
leaq 0x360(%rsp), %rdi
callq 0x41122
jmp 0x137ca
jmp 0x13b6c
movq %rax, %rbx
pushq $0x18
popq %rsi
movq %r15, %rdi
jmp 0x13b44
jmp 0x13bba
movq %rax, %rbx
pushq $0x10
popq %rsi
movq 0x8(%rsp), %rdi
jmp 0x13b44
jmp 0x13bba
jmp 0x13b99
jmp 0x13a29
movq %rax, %rbx
jmp 0x13ced
movq %rax, %rbx
jmp 0x13d73
movq %rax, %rbx
leaq 0x218(%rsp), %rdi
callq 0x3ad9e
jmp 0x13d80
jmp 0x13a50
movq %rax, %rbx
jmp 0x13d80
movq %rax, %rbx
jmp 0x13d8d
jmp 0x13be3
movq %rax, %rbx
movl $0x250, %esi            # imm = 0x250
movq 0x10(%rsp), %rdi
jmp 0x13b44
jmp 0x13be3
jmp 0x13abe
movq %rax, %rbx
jmp 0x13d29
movq %rax, %rbx
jmp 0x13d36
jmp 0x13a92
jmp 0x13a92
movq %rax, %rbx
jmp 0x13d43
jmp 0x13abe
jmp 0x13abe
jmp 0x13abe
movq %rax, %rbx
pushq $0x10
popq %rsi
movq 0x8(%rsp), %rdi
callq 0xe470
jmp 0x13cc3
jmp 0x13c33
jmp 0x13abe
jmp 0x13abe
movq %rax, %rbx
pushq $0x10
popq %rsi
movq 0x8(%rsp), %rdi
jmp 0x13bec
jmp 0x13bba
jmp 0x13cdd
movq %rax, %rbx
leaq 0x360(%rsp), %rdi
callq 0x7139c
jmp 0x13ca9
jmp 0x13b6c
movq %rax, %rbx
jmp 0x13cc3
jmp 0x13cd5
jmp 0x13cd5
jmp 0x13b6c
jmp 0x13bba
jmp 0x13bca
jmp 0x13c33
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13ca9
jmp 0x13b6c
movq %rax, %rbx
jmp 0x13d1c
jmp 0x13bba
jmp 0x13bba
jmp 0x13bba
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13cfa
jmp 0x13bba
jmp 0x13bba
jmp 0x13cdd
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r13, %rdi
callq 0xe470
jmp 0x13cb6
jmp 0x13bba
movq %rax, %rbx
jmp 0x13ca9
jmp 0x13bba
jmp 0x13c33
jmp 0x13c33
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
movq %rax, %rbx
jmp 0x13cb6
jmp 0x13c33
jmp 0x13ba8
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13c36
jmp 0x13c33
movq %rax, %rbx
jmp 0x13cfa
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r15, %rdi
jmp 0x13bec
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
jmp 0x13c33
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13d9a
jmp 0x13c99
jmp 0x13c99
jmp 0x13c33
jmp 0x13c33
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13d0f
jmp 0x13c33
jmp 0x13c33
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13c33
jmp 0x13c33
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0x15fb8
jmp 0x13d9a
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13d0c
movq %rax, %rbx
pushq $0x48
popq %rsi
movq %r14, %rdi
callq 0xe470
jmp 0x13d59
jmp 0x13d0c
jmp 0x13d0c
jmp 0x13cd5
jmp 0x13cd5
jmp 0x13d56
jmp 0x13d56
jmp 0x13cd5
jmp 0x13d56
jmp 0x13d0c
jmp 0x13d56
jmp 0x13cd5
jmp 0x13cdd
movq %rax, %rbx
leaq 0x360(%rsp), %rdi
callq 0x15a46
leaq 0x278(%rsp), %rdi
callq 0x7139c
leaq 0x148(%rsp), %rdi
callq 0x7139c
leaq 0x218(%rsp), %rdi
callq 0x7139c
jmp 0x13d9a
movq %rax, %rbx
jmp 0x13d66
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
callq 0x7139c
leaq 0x360(%rsp), %rdi
callq 0x41122
leaq 0x148(%rsp), %rdi
callq 0x3ad9e
jmp 0x13d9a
movq %rax, %rbx
leaq 0x360(%rsp), %rdi
callq 0x3cc5a
leaq 0x278(%rsp), %rdi
callq 0x5d190
leaq 0x148(%rsp), %rdi
callq 0x5d190
leaq 0x120(%rsp), %rdi
callq 0x68312
leaq 0x218(%rsp), %rdi
callq 0x14b16
jmp 0x13d9a
jmp 0x13d56
jmp 0x13d56
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x7139c
leaq 0xb0(%rsp), %rdi
callq 0x7139c
leaq 0x148(%rsp), %rdi
callq 0x14b16
leaq 0x120(%rsp), %rdi
callq 0x15fb8
leaq 0x360(%rsp), %rdi
callq 0x41122
movq %rbx, %rdi
callq 0xe820