// File: /workspace/github_cpp_makefile_star2_O2/tomfunkhouser[P]gaps/apps/msh2msh/msh2msh.cpp
// Function: main
int main(int argc, char **argv)
{
  // Check number of arguments
  if (!ParseArgs(argc, argv)) exit(1);

  // Read mesh
  R3Mesh *mesh = ReadMesh(input_mesh_name);
  if (!mesh) exit(-1);

  // Merge meshes from list
  if (merge_list_name) {
    if (!MergeList(mesh, merge_list_name)) exit(-1);
  }

  // Rotate so that principal axes are aligned with canonical coordinate frame
  if (rotate_by_pca) {
    R3Point centroid = mesh->Centroid();
    R3Triad triad = mesh->PrincipleAxes(&centroid);
    R3Affine rotation = R3identity_affine;
    rotation.Translate(centroid.Vector());
    rotation.Transform(R3Affine(triad.InverseMatrix()));
    rotation.Translate(-centroid.Vector());
    xform.Transform(rotation);
  }

  // Scale based on mesh area
  if (scale_by_area) {
    RNArea area = mesh->Area();
    if (area > 0) xform.Scale(1 / sqrt(area));
  }

  // Scale based on principal component analysis
  if (scale_by_pca) {
    RNScalar variances[3];
    R3Point centroid = mesh->Centroid();
    mesh->PrincipleAxes(&centroid, variances);
    if (variances[0] > 0) xform.Scale(1.0 / sqrt(variances[0]));
  }

  // Center mesh at origin
  if (translate_by_centroid) {
    // R3Point centroid = R3zero_point;
    // for (int i = 0; i < mesh->NVertices(); i++) {
    //   R3MeshVertex *vertex = mesh->Vertex(i);
    //   centroid += mesh->VertexPosition(vertex);
    // }
    // if (mesh->NVertices() > 0) centroid /= mesh->NVertices();
    R3Point centroid = mesh->Centroid();
    xform.Translate(-centroid.Vector());
  }

  // Normalize translation, rotation, and scale
  if (align_by_pca) {
    xform = mesh->PCANormalizationTransformation();
  }

  // Transform 
  if (!xform.IsIdentity()) {
    mesh->Transform(xform);
  }

  // Delete interior faces
  if (delete_interior_faces) {
    DeleteInteriorFaces(mesh);
  }

  // Remove small components
  if (min_component_area > 0) {
    DeleteSmallConnectedComponents(mesh, min_component_area);
  }

  // Clean 
  if (clean) {
    mesh->DeleteUnusedEdges();
    mesh->DeleteUnusedVertices();
  }

  // Flip every face
  if (flip_faces) {
    for (int i = 0; i < mesh->NFaces(); i++) {
      mesh->FlipFace(mesh->Face(i));
    }
  }

  // Fill holes
  if (fill_holes) {
    mesh->FillHoles();
  }

  // Smooth
  if (smooth_factor > 0) {
    mesh->Smooth(smooth_factor);
  }

  // Subdivide edges that are too long
  if (max_edge_length > 0) {
    mesh->SubdivideLongEdges(max_edge_length);
  }

  // Split edges that are too long
  if (min_edge_length > 0) {
    mesh->CollapseShortEdges(min_edge_length);
  }

  // Swap edges
  if (swap_edges) {
    mesh->SwapEdges();
  }

  // Transfer colors
  if (source_mesh_name) {
    CopyFromSource(mesh, source_mesh_name);
  }
  
  // Write mesh
  if (!WriteMesh(mesh, output_mesh_name)) exit(-1);

  // Write transformation
  if (!xform.IsIdentity() && output_xform_name) {
    if (!WriteMatrix(xform.Matrix(), output_xform_name)) exit(-1);
  }

  // Return success 
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1358, %rsp           # imm = 0x1358
callq 0x1042c
testl %eax, %eax
je 0x12039
movq 0xbbc8c(%rip), %rbx     # 0xccbc8
leaq 0x350(%rsp), %r14
movq %r14, %rdi
callq 0x5f0fe
movq %r14, %rdi
callq 0x12376
movl $0x138, %edi            # imm = 0x138
callq 0xe440
movq %rax, %r14
movq %rax, %rdi
callq 0x1e610
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x180(%rax)
testl %eax, %eax
je 0x1203d
cmpl $0x0, 0xbbddd(%rip)     # 0xccd64
je 0x10ff5
leaq 0x7b407(%rip), %rdi     # 0x8c397
callq 0xe6c0
leaq 0x350(%rsp), %rdi
callq 0x5f138
leaq 0x7b317(%rip), %rdi     # 0x8c2c0
movb $0x1, %al
callq 0xe070
movl 0x34(%r14), %esi
leaq 0x7b2b8(%rip), %rdi     # 0x8c273
xorl %eax, %eax
callq 0xe070
movl 0x24(%r14), %esi
leaq 0x7b2b6(%rip), %rdi     # 0x8c283
xorl %eax, %eax
callq 0xe070
movl 0x14(%r14), %esi
leaq 0x7b2b4(%rip), %rdi     # 0x8c293
xorl %eax, %eax
callq 0xe070
movq 0xbaf93(%rip), %rax     # 0xcbf80
movq (%rax), %rdi
callq 0xe520
movq %r14, 0x8(%rsp)
movq 0xbbbe7(%rip), %r14     # 0xccbe8
testq %r14, %r14
je 0x1108b
leaq 0x7f682(%rip), %rsi     # 0x90693
movq %r14, %rdi
callq 0xe530
testq %rax, %rax
je 0x12048
movq %rax, %rbx
leaq 0x7d724(%rip), %r14     # 0x8e750
leaq 0x350(%rsp), %r15
leaq 0x110(%rsp), %r12
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0xe810
cmpl $0x1, %eax
jne 0x11083
movq %r12, %rdi
callq 0x1e610
movq %r12, %rdi
movq %r15, %rsi
callq 0x29aa0
testl %eax, %eax
je 0x12024
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x293f2
movq %r12, %rdi
callq 0x1eaf8
jmp 0x1103c
movq %rbx, %rdi
callq 0xe430
cmpl $0x0, 0xbbcc6(%rip)     # 0xccd58
movq 0x8(%rsp), %r14
je 0x111ac
leaq 0xd0(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1eb56
leaq 0x88(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x1f0ca
leaq 0xbc214(%rip), %rsi     # 0xcd2e0
leaq 0x350(%rsp), %rdi
callq 0x121c6
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
callq 0x1235a
leaq 0x350(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x12344
leaq 0x250(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x36f72
leaq 0x110(%rsp), %rdi
leaq 0x250(%rsp), %rsi
xorl %edx, %edx
callq 0x362d8
leaq 0x350(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x36492
leaq 0x110(%rsp), %rdi
callq 0x36326
leaq 0x250(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x1235a
leaq 0x110(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x3c48a
leaq 0x350(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x12344
leaq 0xbba8e(%rip), %rdi     # 0xccc20
leaq 0x350(%rsp), %rsi
callq 0x36492
leaq 0x350(%rsp), %rdi
callq 0x36326
cmpl $0x0, 0xbbb9d(%rip)     # 0xccd50
je 0x111f0
movq %r14, %rdi
callq 0x1ed02
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x111f0
jb 0x111cf
sqrtsd %xmm0, %xmm0
jmp 0x111d4
callq 0xe340
movsd 0x7ae34(%rip), %xmm1    # 0x8c010
divsd %xmm0, %xmm1
leaq 0xbba39(%rip), %rdi     # 0xccc20
movapd %xmm1, %xmm0
callq 0x12268
cmpl $0x0, 0xbbb5d(%rip)     # 0xccd54
je 0x11267
leaq 0x250(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1eb56
leaq 0x350(%rsp), %rdi
movq %r14, %rsi
leaq 0x110(%rsp), %r14
movq %rbx, %rdx
movq %r14, %rcx
callq 0x1f0ca
movsd (%r14), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11262
jb 0x11241
sqrtsd %xmm0, %xmm0
jmp 0x11246
callq 0xe340
movsd 0x7adc2(%rip), %xmm1    # 0x8c010
divsd %xmm0, %xmm1
leaq 0xbb9c7(%rip), %rdi     # 0xccc20
movapd %xmm1, %xmm0
callq 0x12268
movq 0x8(%rsp), %r14
cmpl $0x0, 0xbbaf2(%rip)     # 0xccd60
je 0x112bd
leaq 0x350(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1eb56
leaq 0x250(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1235a
leaq 0x110(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq 0x8(%rsp), %r14
callq 0x3c48a
leaq 0xbb96b(%rip), %rdi     # 0xccc20
movq %rbx, %rsi
callq 0x12344
cmpl $0x0, 0xbba98(%rip)     # 0xccd5c
je 0x112fd
leaq 0x350(%rsp), %rbx
pushq $0x1
popq %rcx
movq %rbx, %rdi
movq %r14, %rsi
movl %ecx, %edx
movl %ecx, %r8d
callq 0x1f642
leaq 0xbb938(%rip), %rdi     # 0xccc20
movq %rbx, %rsi
callq 0x12226
leaq 0x350(%rsp), %rdi
callq 0x36326
leaq 0xbb91c(%rip), %rdi     # 0xccc20
callq 0x36396
testl %eax, %eax
jne 0x11320
movq (%r14), %rax
leaq 0xbb909(%rip), %rsi     # 0xccc20
movq %r14, %rdi
callq *0x118(%rax)
cmpl $0x0, 0xbb8e9(%rip)     # 0xccc10
je 0x11869
leaq 0x100(%rsp), %rbx
movq %rbx, %rdi
callq 0x5f0fe
movq %rbx, %rdi
callq 0x12376
movq %r14, %rbx
addq $0xf8, %rbx
movq 0xf8(%r14), %rax
leaq 0xd0(%rsp), %rdi
movq %rbx, %rsi
callq *0x68(%rax)
movq %rbx, %rdi
callq 0x1237e
movapd %xmm0, %xmm2
movapd %xmm0, 0x20(%rsp)
movapd 0x7acd2(%rip), %xmm0    # 0x8c050
xorpd %xmm2, %xmm0
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
movapd %xmm0, %xmm1
movapd %xmm2, %xmm3
callq 0x55eb6
movapd 0x20(%rsp), %xmm0
mulsd 0x7ac70(%rip), %xmm0    # 0x8c018
leaq 0x110(%rsp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x4b010
leaq 0x250(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x4b2f0
movsd 0x1c0(%rsp), %xmm0
movaps %xmm0, 0x10(%rsp)
leaq 0xbb762(%rip), %rax     # 0xccb48
movsd (%rax), %xmm0
movapd %xmm0, 0x50(%rsp)
movslq 0x34(%r14), %rbx
leaq (,%rbx,4), %rdi
testq %rbx, %rbx
pushq $-0x1
popq %rax
cmovsq %rax, %rdi
callq 0xe030
movq %rax, 0x20(%rsp)
movapd 0x7ac38(%rip), %xmm2    # 0x8c050
movapd 0x50(%rsp), %xmm4
xorpd %xmm4, %xmm2
movsd 0x7abe6(%rip), %xmm0    # 0x8c010
movapd 0x10(%rsp), %xmm3
divsd %xmm3, %xmm0
cmpnlesd %xmm3, %xmm2
movapd %xmm2, %xmm1
andpd %xmm0, %xmm1
cmpnlesd %xmm4, %xmm3
andpd %xmm0, %xmm3
andnpd %xmm3, %xmm2
orpd %xmm1, %xmm2
mulsd %xmm2, %xmm2
movapd %xmm2, 0x60(%rsp)
xorl %eax, %eax
testl %ebx, %ebx
cmovlel %eax, %ebx
movq 0x20(%rsp), %rcx
cmpq %rax, %rbx
je 0x11476
andl $0x0, (%rcx,%rax,4)
incq %rax
jmp 0x11468
leaq 0x7d68b(%rip), %rax     # 0x8eb08
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x340(%rsp), %r15
leaq 0x330(%rsp), %rbp
leaq 0x320(%rsp), %r12
xorl %ebx, %ebx
cmpl $0x64, %ebx
je 0x1172e
leaq 0x350(%rsp), %rdi
leaq 0xbbe27(%rip), %rsi     # 0xcd2e0
callq 0x121c6
leaq 0x38(%rsp), %rdi
callq 0x3c558
callq 0x61152
mulsd 0x10(%rsp), %xmm0
leaq 0x350(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1238e
leaq 0x38(%rsp), %rdi
callq 0x3c558
callq 0x61152
mulsd 0x10(%rsp), %xmm0
leaq 0x350(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1238e
leaq 0x38(%rsp), %rdi
callq 0x3c558
callq 0x61152
mulsd 0x10(%rsp), %xmm0
leaq 0x350(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1238e
leaq 0x70(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x1235a
leaq 0x38(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x3c48a
leaq 0x350(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x12344
movl %ebx, 0x50(%rsp)
leaq 0x110(%rsp), %rdi
movsd 0x7aaa6(%rip), %xmm0    # 0x8c020
callq 0x4c8b4
leaq 0xbb5d2(%rip), %rax     # 0xccb58
movsd (%rax), %xmm0
leaq 0x250(%rsp), %rdi
callq 0x4c8b4
xorl %ebx, %ebx
movslq 0x34(%r14), %rax
cmpq %rax, %rbx
jge 0x116ba
movq %rbp, %r13
movq %r15, %rbp
movq 0x28(%r14), %rax
movq (%rax,%rbx,8), %rax
movq 0x8(%rax), %rsi
movq 0x10(%rax), %r14
movq 0x18(%rax), %r15
addq $0x18, %rsi
leaq 0x38(%rsp), %rdi
callq 0x3b374
addq $0x18, %r14
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x3b374
addq $0x18, %r15
leaq 0xe8(%rsp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x3b374
leaq 0x350(%rsp), %r15
leaq 0x38(%rsp), %rdi
movq %r15, %rsi
callq 0x3b9aa
leaq 0x70(%rsp), %rdi
movq %r15, %rsi
callq 0x3b9aa
movq %r14, %rdi
movq %r15, %rsi
callq 0x3b9aa
movsd 0x38(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movq %rbp, %r15
movq %rbp, %rdi
callq 0x588c8
movsd 0x70(%rsp), %xmm0
movsd 0x78(%rsp), %xmm1
movq %r13, %rbp
movq %r13, %rdi
callq 0x588c8
movsd 0xe8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
movq %r12, %rdi
callq 0x588c8
cvtsi2sd %ebx, %xmm0
movsd 0x48(%rsp), %xmm3
movsd 0x80(%rsp), %xmm4
movsd 0xf8(%rsp), %xmm5
leaq 0x110(%rsp), %rdi
movq %r15, %rsi
movq %rbp, %rdx
movq %r12, %rcx
movapd %xmm0, %xmm1
movapd %xmm0, %xmm2
leaq 0x250(%rsp), %r8
callq 0x123a4
incq %rbx
movq 0x8(%rsp), %r14
jmp 0x11599
movl 0x1dc(%rsp), %ecx
movq 0x1c8(%rsp), %rdx
testl %ecx, %ecx
movl $0x0, %esi
cmovlel %esi, %ecx
xorl %esi, %esi
movq 0x20(%rsp), %r10
movl 0x50(%rsp), %ebx
cmpq %rsi, %rcx
je 0x1171a
movsd (%rdx,%rsi,8), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x11715
addsd 0x7a92e(%rip), %xmm0    # 0x8c028
cvttsd2si %xmm0, %edi
testl %edi, %edi
sets %r8b
cmpl %edi, %eax
setle %r9b
orb %r8b, %r9b
jne 0x11715
movl %edi, %edi
incl (%r10,%rdi,4)
incq %rsi
jmp 0x116de
leaq 0x350(%rsp), %rdi
callq 0x36326
incl %ebx
jmp 0x114a1
leaq 0x350(%rsp), %rdi
callq 0x5f646
xorl %r15d, %r15d
leaq 0x350(%rsp), %rbx
movslq 0x34(%r14), %rax
cmpq %rax, %r15
jge 0x117a6
movq 0x28(%r14), %rax
movq %r14, %rdi
movq (%rax,%r15,8), %r14
movq %r14, %rsi
callq 0x12462
mulsd 0x7a8c6(%rip), %xmm0    # 0x8c030
divsd 0x60(%rsp), %xmm0
movq 0x20(%rsp), %rax
cvtsi2sdl (%rax,%r15,4), %xmm1
cvttpd2dq %xmm0, %xmm0
cvtdq2pd %xmm0, %xmm0
mulsd 0x7a8ad(%rip), %xmm0    # 0x8c038
ucomisd %xmm0, %xmm1
ja 0x1179c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1249e
incq %r15
movq 0x8(%rsp), %r14
jmp 0x11746
xorl %ebx, %ebx
movslq 0x35c(%rsp), %rax
cmpq %rax, %rbx
jge 0x117cf
movq 0x350(%rsp), %rax
movq (%rax,%rbx,8), %rsi
movq (%r14), %rax
movq %r14, %rdi
callq *0x70(%rax)
incq %rbx
jmp 0x117a8
cmpl $0x0, 0xbb58e(%rip)     # 0xccd64
je 0x11835
leaq 0x7abc6(%rip), %rdi     # 0x8c3a5
callq 0xe6c0
leaq 0x100(%rsp), %rdi
callq 0x5f138
leaq 0x7aac6(%rip), %rdi     # 0x8c2be
movb $0x1, %al
callq 0xe070
movl 0x35c(%rsp), %esi
leaq 0x7aaca(%rip), %rdi     # 0x8c2d7
xorl %eax, %eax
callq 0xe070
movl 0x34(%r14), %esi
leaq 0x7aad2(%rip), %rdi     # 0x8c2f1
xorl %eax, %eax
callq 0xe070
movq 0xba753(%rip), %rax     # 0xcbf80
movq (%rax), %rdi
callq 0xe520
leaq 0x350(%rsp), %rdi
callq 0x5f6b4
leaq 0x250(%rsp), %rdi
callq 0x4b4a8
leaq 0x110(%rsp), %rdi
callq 0x4b4a8
leaq 0x88(%rsp), %rdi
callq 0x5662a
movsd 0xbb4cf(%rip), %xmm1    # 0xccd40
xorpd %xmm0, %xmm0
movsd %xmm1, 0x50(%rsp)
ucomisd %xmm0, %xmm1
jbe 0x11b41
leaq 0x350(%rsp), %rbx
movq %rbx, %rdi
callq 0x5f0fe
movq %rbx, %rdi
callq 0x12376
movslq 0x34(%r14), %rax
testq %rax, %rax
je 0x11b41
movq %rax, %rdi
shlq $0x2, %rdi
xorl %ebx, %ebx
testl %eax, %eax
pushq $-0x1
popq %rcx
cmovsq %rcx, %rdi
movl $0x0, %r15d
cmovgl %eax, %r15d
callq 0xe030
movq %rax, %r14
cmpq %rbx, %r15
je 0x118dd
orl $-0x1, (%r14,%rbx,4)
incq %rbx
jmp 0x118ce
leaq 0x110(%rsp), %rdi
callq 0x5f646
xorl %ebp, %ebp
leaq 0xbab8d(%rip), %r13     # 0xcc480
leaq 0x250(%rsp), %r12
movl $0x0, 0x60(%rsp)
movl $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rax
movslq 0x34(%rax), %rax
movslq %ebp, %rbp
cmpq %rax, %rbp
jge 0x11a6a
cmpl $0x0, (%r14,%rbp,4)
js 0x1192c
incq %rbp
jmp 0x11917
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rax
movq (%rax,%rbp,8), %r15
testq %r15, %r15
je 0x11a6a
incl (%r13)
movq %r12, %rdi
callq 0x5f646
leaq 0x88(%rsp), %rdi
callq 0x5f646
movq %r12, %rdi
movq %r15, %rsi
callq 0x1249e
movl (%r13), %eax
movl %eax, 0xb8(%r15)
xorpd %xmm0, %xmm0
movsd %xmm0, 0x20(%rsp)
movslq 0x25c(%rsp), %rax
testq %rax, %rax
je 0x11a1b
movq 0x250(%rsp), %rcx
movq -0x8(%rcx,%rax,8), %r15
movq %r12, %rdi
callq 0x124a6
leaq 0x88(%rsp), %rdi
movq %r15, %rsi
callq 0x1249e
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x12462
movsd 0x20(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
movslq 0xa4(%r15), %rax
movl 0x10(%rsp), %ecx
movl %ecx, (%r14,%rax,4)
pushq $0x4
popq %rbx
cmpq $0x7, %rbx
je 0x1197b
movq (%r15,%rbx,8), %rax
movq 0x18(%rax), %rsi
cmpq %r15, %rsi
jne 0x119f7
movq 0x20(%rax), %rsi
testq %rsi, %rsi
je 0x11a16
movl (%r13), %eax
cmpl %eax, 0xb8(%rsi)
je 0x11a16
movl %eax, 0xb8(%rsi)
movq %r12, %rdi
callq 0x1249e
incq %rbx
jmp 0x119e0
cmpl $0x0, 0x94(%rsp)
je 0x11a50
movsd 0x50(%rsp), %xmm0
ucomisd 0x20(%rsp), %xmm0
jbe 0x11a4c
leaq 0x110(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x5f90e
incl 0x60(%rsp)
incl 0x10(%rsp)
leaq 0x88(%rsp), %rdi
callq 0x5f6b4
movq %r12, %rdi
callq 0x5f6b4
jmp 0x1190b
xorl %ebx, %ebx
movslq 0x11c(%rsp), %rax
cmpq %rax, %rbx
jge 0x11a95
movq 0x110(%rsp), %rax
movq (%rax,%rbx,8), %rsi
movq 0x8(%rsp), %rdi
movq (%rdi), %rax
callq *0x70(%rax)
incq %rbx
jmp 0x11a6c
movq %r14, %rdi
callq 0xe5a0
cmpl $0x0, 0xbb2c0(%rip)     # 0xccd64
movq 0x8(%rsp), %r14
je 0x11b34
leaq 0x7a90c(%rip), %rdi     # 0x8c3c2
callq 0xe6c0
leaq 0x350(%rsp), %rdi
callq 0x5f138
leaq 0x7a7ef(%rip), %rdi     # 0x8c2be
movb $0x1, %al
callq 0xe070
leaq 0x7a830(%rip), %rdi     # 0x8c30d
movl 0x60(%rsp), %ebx
movl %ebx, %esi
xorl %eax, %eax
callq 0xe070
movl 0x11c(%rsp), %esi
leaq 0x7a7df(%rip), %rdi     # 0x8c2d7
xorl %eax, %eax
callq 0xe070
movl 0x10(%rsp), %esi
subl %ebx, %esi
leaq 0x7a820(%rip), %rdi     # 0x8c32c
xorl %eax, %eax
callq 0xe070
movl 0x34(%r14), %esi
leaq 0x7a7d3(%rip), %rdi     # 0x8c2f1
xorl %eax, %eax
callq 0xe070
movq 0xba454(%rip), %rax     # 0xcbf80
movq (%rax), %rdi
callq 0xe520
leaq 0x110(%rsp), %rdi
callq 0x5f6b4
cmpl $0x0, 0xbb0bc(%rip)     # 0xccc04
je 0x11b5f
movq (%r14), %rax
movq %r14, %rdi
callq *0x80(%rax)
movq (%r14), %rax
movq %r14, %rdi
callq *0x78(%rax)
cmpl $0x0, 0xbb09a(%rip)     # 0xccc00
je 0x11b8c
xorl %ebx, %ebx
movslq 0x34(%r14), %rax
cmpq %rax, %rbx
jge 0x11b8c
movq (%r14), %rax
movq 0x28(%r14), %rcx
movq (%rcx,%rbx,8), %rsi
movq %r14, %rdi
callq *0xe0(%rax)
incq %rbx
jmp 0x11b6a
cmpl $0x0, 0xbb079(%rip)     # 0xccc0c
je 0x11ba5
xorpd %xmm0, %xmm0
xorpd %xmm1, %xmm1
movq %r14, %rdi
callq 0x24700
movsd 0xbb06b(%rip), %xmm0    # 0xccc18
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11bc7
movq (%r14), %rax
movq %r14, %rdi
callq *0xf8(%rax)
xorpd %xmm1, %xmm1
movsd 0xbb169(%rip), %xmm0    # 0xccd38
ucomisd %xmm1, %xmm0
jbe 0x11bdd
movq %r14, %rdi
callq 0x235dc
movsd 0xbb14b(%rip), %xmm0    # 0xccd30
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x11bf7
movq %r14, %rdi
callq 0x233e8
cmpl $0x0, 0xbb00a(%rip)     # 0xccc08
je 0x11c10
movsd 0x7a438(%rip), %xmm0    # 0x8c040
movq %r14, %rdi
callq 0x23ce4
movq 0xbafc9(%rip), %rbx     # 0xccbe0
testq %rbx, %rbx
je 0x11e02
leaq 0x350(%rsp), %r14
movq %r14, %rdi
callq 0x1e610
movq %r14, %rdi
movq %rbx, %rsi
callq 0x29aa0
testl %eax, %eax
je 0x11df5
leaq 0x88(%rsp), %rdi
leaq 0x350(%rsp), %rsi
callq 0x124d0
cmpl $0x0, 0xbaf91(%rip)     # 0xccbf0
je 0x11dc1
xorl %r14d, %r14d
leaq 0x88(%rsp), %r15
leaq 0x250(%rsp), %r12
leaq 0x110(%rsp), %r13
movq 0x8(%rsp), %rcx
movslq 0x14(%rcx), %rax
cmpq %rax, %r14
jge 0x11de8
movq 0x8(%rcx), %rax
movq (%rax,%r14,8), %rbx
leaq 0x58(%rbx), %rbp
movq %rbp, %rdi
leaq 0xbd788(%rip), %rsi     # 0xcf430
callq 0x5f54e
leaq 0x270(%rsp), %rdi
callq 0x3b362
addq $0x18, %rbx
leaq 0xbae93(%rip), %rax     # 0xccb58
movsd (%rax), %xmm1
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %rbx, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x13cbe
movl 0x250(%rsp), %eax
cmpl $0x3, %eax
je 0x11d68
cmpl $0x2, %eax
je 0x11d13
cmpl $0x1, %eax
jne 0x11db9
movq 0x258(%rsp), %rsi
addq $0x58, %rsi
movq %rbp, %rdi
callq 0x5f54e
jmp 0x11db9
movq 0x260(%rsp), %rdx
movq %r13, %rdi
movq 0x8(%rsp), %rsi
callq 0x124b0
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3aa8e
movsd 0x158(%rsp), %xmm1
mulsd 0x7a2e4(%rip), %xmm1    # 0x8c028
xorl %eax, %eax
ucomisd %xmm0, %xmm1
setbe %al
movq 0x260(%rsp), %rcx
movq 0x8(%rcx,%rax,8), %rsi
addq $0x58, %rsi
movq %rbp, %rdi
callq 0x5f54e
jmp 0x11db9
movq 0x268(%rsp), %rdx
movq %r13, %rdi
leaq 0x350(%rsp), %rsi
movq %rbx, %rcx
callq 0x202de
leaq 0xd0(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1235a
movq %rbx, %rdi
callq 0x3bca8
movq 0x268(%rsp), %rcx
cltq
movq 0x8(%rcx,%rax,8), %rsi
addq $0x58, %rsi
movq %rbp, %rdi
callq 0x5f54e
incq %r14
jmp 0x11c80
cmpl $0x0, 0xbae2c(%rip)     # 0xccbf4
jne 0x11f54
cmpl $0x0, 0xbae23(%rip)     # 0xccbf8
jne 0x11f54
cmpl $0x0, 0xbae1a(%rip)     # 0xccbfc
jne 0x11f54
leaq 0x88(%rsp), %rdi
callq 0x125b4
leaq 0x350(%rsp), %rdi
callq 0x1eaf8
movq 0xbadc7(%rip), %rbx     # 0xccbd0
leaq 0x350(%rsp), %r14
movq %r14, %rdi
callq 0x5f0fe
movq %r14, %rdi
callq 0x12376
movq 0x8(%rsp), %r14
movq (%r14), %rax
movq %r14, %rdi
movq %rbx, %rsi
callq *0x1d0(%rax)
testl %eax, %eax
je 0x12031
cmpl $0x0, 0xbaf20(%rip)     # 0xccd64
je 0x11eb7
leaq 0x7a500(%rip), %rdi     # 0x8c34d
movq %rbx, %rsi
xorl %eax, %eax
callq 0xe070
leaq 0x350(%rsp), %rdi
callq 0x5f138
leaq 0x7a455(%rip), %rdi     # 0x8c2c0
movb $0x1, %al
callq 0xe070
movl 0x34(%r14), %esi
leaq 0x7a3f6(%rip), %rdi     # 0x8c273
xorl %eax, %eax
callq 0xe070
movl 0x24(%r14), %esi
leaq 0x7a3f4(%rip), %rdi     # 0x8c283
xorl %eax, %eax
callq 0xe070
movl 0x14(%r14), %esi
leaq 0x7a3f2(%rip), %rdi     # 0x8c293
xorl %eax, %eax
callq 0xe070
movq 0xba0d1(%rip), %rax     # 0xcbf80
movq (%rax), %rdi
callq 0xe520
leaq 0xbad62(%rip), %rdi     # 0xccc20
callq 0x36396
testl %eax, %eax
sete %al
movq 0xbad09(%rip), %r14     # 0xccbd8
testq %r14, %r14
setne %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x11f40
leaq 0x7bfe7(%rip), %rsi     # 0x8deca
movq %r14, %rdi
callq 0xe530
testq %rax, %rax
je 0x12051
movq %rax, %rbx
leaq 0xbad2a(%rip), %r15     # 0xccc28
xorl %r12d, %r12d
leaq 0x7a45b(%rip), %r14     # 0x8c363
cmpq $0x4, %r12
je 0x11f38
xorl %r13d, %r13d
cmpq $0x4, %r13
je 0x11f2f
movsd (%r15,%r13,8), %xmm0
movq %rbx, %rdi
movq %r14, %rsi
movb $0x1, %al
callq 0xe640
incq %r13
jmp 0x11f11
incq %r12
addq $0x20, %r15
jmp 0x11f08
movq %rbx, %rdi
callq 0xe430
xorl %eax, %eax
addq $0x1358, %rsp           # imm = 0x1358
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %ebp, %ebp
leaq 0x250(%rsp), %r14
leaq 0xbabf3(%rip), %rbx     # 0xccb58
leaq 0x88(%rsp), %r15
leaq 0x110(%rsp), %r12
movq 0x8(%rsp), %rsi
movslq 0x34(%rsi), %rax
cmpq %rax, %rbp
jge 0x11de8
movq 0x28(%rsi), %rax
movq (%rax,%rbp,8), %r13
movq %r14, %rdi
movq %r13, %rdx
callq 0x1ec8e
leaq 0x130(%rsp), %rdi
callq 0x3b362
movsd (%rbx), %xmm1
xorpd %xmm0, %xmm0
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x13cbe
cmpl $0x0, 0xbac2b(%rip)     # 0xccbf4
je 0x11fe0
movq 0x128(%rsp), %rax
movl 0xa0(%rax), %eax
movl %eax, 0xa0(%r13)
cmpl $0x0, 0xbac11(%rip)     # 0xccbf8
je 0x11ffe
movq 0x128(%rsp), %rax
movl 0x9c(%rax), %eax
movl %eax, 0x9c(%r13)
cmpl $0x0, 0xbabf7(%rip)     # 0xccbfc
je 0x1201c
movq 0x128(%rsp), %rax
movl 0x98(%rax), %eax
movl %eax, 0x98(%r13)
incq %rbp
jmp 0x11f75
leaq 0x110(%rsp), %rdi
callq 0x1eaf8
pushq $-0x1
popq %rdi
callq 0xe550
pushq $0x1
jmp 0x12033
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
jmp 0x12031
leaq 0x7a257(%rip), %rdi     # 0x8c2a6
jmp 0x12058
leaq 0x7a1fb(%rip), %rdi     # 0x8c253
movq %r14, %rsi
xorl %eax, %eax
callq 0x61506
jmp 0x12031
jmp 0x120fa
movq %rax, %rbx
jmp 0x12160
jmp 0x120fa
jmp 0x12150
jmp 0x12122
jmp 0x12087
jmp 0x1211b
movq %rax, %rbx
jmp 0x1210f
jmp 0x1211b
jmp 0x120d3
movq %rax, %rbx
jmp 0x121a3
movq %rax, %rbx
jmp 0x121b0
jmp 0x120d3
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x36326
jmp 0x120d6
movq %rax, %rbx
movl $0x138, %esi            # imm = 0x138
movq %r14, %rdi
callq 0xe450
jmp 0x121bd
jmp 0x120d3
jmp 0x120d3
movq %rax, %rbx
leaq 0x350(%rsp), %rdi
callq 0x36326
jmp 0x121bd
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
jmp 0x120ff
movq %rax, %rbx
jmp 0x1216d
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x125b4
leaq 0x350(%rsp), %rdi
jmp 0x12141
jmp 0x12122
movq %rax, %rbx
jmp 0x12196
jmp 0x12150
movq %rax, %rbx
leaq 0x350(%rsp), %rdi
callq 0x5f6b4
jmp 0x12196
jmp 0x12186
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x1eaf8
jmp 0x121bd
jmp 0x12186
jmp 0x12186
jmp 0x12186
jmp 0x12186
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x5f6b4
leaq 0x250(%rsp), %rdi
callq 0x5f6b4
leaq 0x110(%rsp), %rdi
callq 0x5f6b4
jmp 0x121bd
jmp 0x12186
jmp 0x12186
jmp 0x12186
jmp 0x12186
jmp 0x12186
movq %rax, %rbx
leaq 0x350(%rsp), %rdi
callq 0x36326
leaq 0x250(%rsp), %rdi
callq 0x4b4a8
leaq 0x110(%rsp), %rdi
callq 0x4b4a8
leaq 0x88(%rsp), %rdi
callq 0x5662a
movq %rbx, %rdi
callq 0xe7b0
nop