// File: tomfunkhouser[P]gaps/apps/msh2msh/msh2msh.cpp
// Function: ParseArgs(int, char**)
int ParseArgs(int argc, char **argv)
{
  // Check number of arguments
  if (argc == 1) {
    printf("Usage: mesh2mesh inputname outputname [options]\n");
    exit(0);
  }

  // Parse arguments
  argc--; argv++;
  while (argc > 0) {
    if ((*argv)[0] == '-') {
      R3Affine prev_xform = xform;
      if (!strcmp(*argv, "-v")) print_verbose = 1;
      else if (!strcmp(*argv, "-flip")) flip_faces = 1;
      else if (!strcmp(*argv, "-clean")) clean = 1;
      else if (!strcmp(*argv, "-fill_holes")) fill_holes = 1;
      else if (!strcmp(*argv, "-delete_interior_faces")) delete_interior_faces = 1;
      else if (!strcmp(*argv, "-swap_edges")) swap_edges = 1;
      else if (!strcmp(*argv, "-scale_by_area")) scale_by_area = 1;
      else if (!strcmp(*argv, "-scale_by_pca")) scale_by_pca = 1;
      else if (!strcmp(*argv, "-translate_by_centroid")) translate_by_centroid = 1;
      else if (!strcmp(*argv, "-center_at_origin")) translate_by_centroid = 1;
      else if (!strcmp(*argv, "-rotate_by_pca")) rotate_by_pca = 1;
      else if (!strcmp(*argv, "-align_by_pca")) align_by_pca = 1;
      else if (!strcmp(*argv, "-copy_colors")) copy_colors = 1;
      else if (!strcmp(*argv, "-copy_categories")) copy_categories = 1;
      else if (!strcmp(*argv, "-copy_segments")) copy_segments = 1;
      else if (!strcmp(*argv, "-copy_materials")) copy_materials = 1;
      else if (!strcmp(*argv, "-smooth"))  { argv++; argc--; smooth_factor = atof(*argv); }
      else if (!strcmp(*argv, "-scale")) { argv++; argc--; xform = R3identity_affine; xform.Scale(atof(*argv)); xform.Transform(prev_xform); }
      else if (!strcmp(*argv, "-tx")) { argv++; argc--; xform = R3identity_affine; xform.XTranslate(atof(*argv)); xform.Transform(prev_xform); }
      else if (!strcmp(*argv, "-ty")) { argv++; argc--; xform = R3identity_affine; xform.YTranslate(atof(*argv)); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-tz")) { argv++; argc--; xform = R3identity_affine; xform.ZTranslate(atof(*argv)); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-sx")) { argv++; argc--; xform = R3identity_affine; xform.XScale(atof(*argv)); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-sy")) { argv++; argc--; xform = R3identity_affine; xform.YScale(atof(*argv)); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-sz")) { argv++; argc--; xform = R3identity_affine; xform.ZScale(atof(*argv)); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-rx")) { argv++; argc--; xform = R3identity_affine; xform.XRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-ry")) { argv++; argc--; xform = R3identity_affine; xform.YRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-rz")) { argv++; argc--; xform = R3identity_affine; xform.ZRotate(RN_PI*atof(*argv)/180.0); xform.Transform(prev_xform);}
      else if (!strcmp(*argv, "-xform")) { argv++; argc--; R4Matrix m;  if (ReadMatrix(m, *argv)) { xform = R3identity_affine; xform.Transform(R3Affine(m)); xform.Transform(prev_xform);} } 
      else if (!strcmp(*argv, "-min_edge_length")) { argv++; argc--; min_edge_length = atof(*argv); }
      else if (!strcmp(*argv, "-max_edge_length")) { argv++; argc--; max_edge_length = atof(*argv); }
      else if (!strcmp(*argv, "-remove_small_components")) { argv++; argc--; min_component_area = atof(*argv); }
      else if (!strcmp(*argv, "-source_mesh")) { argv++; argc--; source_mesh_name = *argv; }
      else if (!strcmp(*argv, "-merge_list")) { argv++; argc--; merge_list_name = *argv; }
      else if (!strcmp(*argv, "-debug_matrix")) { argv++; argc--; output_xform_name = *argv; }
      else if (!strcmp(*argv, "-transform")) {
        R4Matrix m;
        argv++; argc--; m[0][0] = atof(*argv); argv++; argc--; m[0][1] = atof(*argv);
        argv++; argc--; m[0][2] = atof(*argv); argv++; argc--; m[0][3] = atof(*argv);
        argv++; argc--; m[1][0] = atof(*argv); argv++; argc--; m[1][1] = atof(*argv);
        argv++; argc--; m[1][2] = atof(*argv); argv++; argc--; m[1][3] = atof(*argv);
        argv++; argc--; m[2][0] = atof(*argv); argv++; argc--; m[2][1] = atof(*argv);
        argv++; argc--; m[2][2] = atof(*argv); argv++; argc--; m[2][3] = atof(*argv);
        argv++; argc--; m[3][0] = atof(*argv); argv++; argc--; m[3][1] = atof(*argv);
        argv++; argc--; m[3][2] = atof(*argv); argv++; argc--; m[3][3] = atof(*argv);
        xform = R3identity_affine;
        xform.Transform(R3Affine(m));
        xform.Transform(prev_xform);
      }  
      else { RNFail("Invalid program argument: %s", *argv); exit(1); }
      argv++; argc--;
    }
    else {
      if (!input_mesh_name) input_mesh_name = *argv;
      else if (!output_mesh_name) output_mesh_name = *argv;
      else { RNFail("Invalid program argument: %s", *argv); exit(1); }
      argv++; argc--;
    }
  }

  // Check input filename
  if (!input_mesh_name) {
    RNFail("You did not specify an input file name.\n");
    return 0;
  }

  // Check output filename
  if (!output_mesh_name) {
    RNFail("You did not specify an output file name.\n");
    return 0;
  }

  // Return OK status 
  return 1;
}

// Assembly:
subq $0x578, %rsp            # imm = 0x578
movl %edi, 0x570(%rsp)
movq %rsi, 0x568(%rsp)
cmpl $0x1, 0x570(%rsp)
jne 0x12545
leaq 0x113b19(%rip), %rdi    # 0x126050
movb $0x0, %al
callq 0xf070
xorl %edi, %edi
callq 0xf5d0
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
cmpl $0x0, 0x570(%rsp)
jle 0x13ab1
movq 0x568(%rsp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x13a26
leaq 0x458(%rsp), %rdi
leaq 0x14e7b2(%rip), %rsi    # 0x160d50
callq 0x16070
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113acc(%rip), %rsi    # 0x126081
callq 0xf690
cmpl $0x0, %eax
jne 0x125ce
movl $0x1, 0x14e8cb(%rip)    # 0x160e94
jmp 0x139dd
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113aa4(%rip), %rsi    # 0x126084
callq 0xf690
cmpl $0x0, %eax
jne 0x125f9
movl $0x1, 0x14e73c(%rip)    # 0x160d30
jmp 0x139db
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113a7f(%rip), %rsi    # 0x12608a
callq 0xf690
cmpl $0x0, %eax
jne 0x12624
movl $0x1, 0x14e715(%rip)    # 0x160d34
jmp 0x139d9
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113a5b(%rip), %rsi    # 0x126091
callq 0xf690
cmpl $0x0, %eax
jne 0x1264f
movl $0x1, 0x14e6f2(%rip)    # 0x160d3c
jmp 0x139d7
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113a3c(%rip), %rsi    # 0x12609d
callq 0xf690
cmpl $0x0, %eax
jne 0x1267a
movl $0x1, 0x14e6cb(%rip)    # 0x160d40
jmp 0x139d5
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113a28(%rip), %rsi    # 0x1260b4
callq 0xf690
cmpl $0x0, %eax
jne 0x126a5
movl $0x1, 0x14e698(%rip)    # 0x160d38
jmp 0x139d3
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113a09(%rip), %rsi    # 0x1260c0
callq 0xf690
cmpl $0x0, %eax
jne 0x126d0
movl $0x1, 0x14e7b5(%rip)    # 0x160e80
jmp 0x139d1
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1139ed(%rip), %rsi    # 0x1260cf
callq 0xf690
cmpl $0x0, %eax
jne 0x126fb
movl $0x1, 0x14e78e(%rip)    # 0x160e84
jmp 0x139cf
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1139d0(%rip), %rsi    # 0x1260dd
callq 0xf690
cmpl $0x0, %eax
jne 0x12726
movl $0x1, 0x14e76f(%rip)    # 0x160e90
jmp 0x139cd
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1139bc(%rip), %rsi    # 0x1260f4
callq 0xf690
cmpl $0x0, %eax
jne 0x12751
movl $0x1, 0x14e744(%rip)    # 0x160e90
jmp 0x139cb
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1139a3(%rip), %rsi    # 0x126106
callq 0xf690
cmpl $0x0, %eax
jne 0x1277c
movl $0x1, 0x14e711(%rip)    # 0x160e88
jmp 0x139c9
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113987(%rip), %rsi    # 0x126115
callq 0xf690
cmpl $0x0, %eax
jne 0x127a7
movl $0x1, 0x14e6ea(%rip)    # 0x160e8c
jmp 0x139c7
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11396a(%rip), %rsi    # 0x126123
callq 0xf690
cmpl $0x0, %eax
jne 0x127d2
movl $0x1, 0x14e553(%rip)    # 0x160d20
jmp 0x139c5
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11394c(%rip), %rsi    # 0x126130
callq 0xf690
cmpl $0x0, %eax
jne 0x127fd
movl $0x1, 0x14e52c(%rip)    # 0x160d24
jmp 0x139c3
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113932(%rip), %rsi    # 0x126141
callq 0xf690
cmpl $0x0, %eax
jne 0x12828
movl $0x1, 0x14e505(%rip)    # 0x160d28
jmp 0x139c1
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113916(%rip), %rsi    # 0x126150
callq 0xf690
cmpl $0x0, %eax
jne 0x12853
movl $0x1, 0x14e4de(%rip)    # 0x160d2c
jmp 0x139bf
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1138fb(%rip), %rsi    # 0x126160
callq 0xf690
cmpl $0x0, %eax
jne 0x128b1
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x14e49c(%rip)   # 0x160d48
jmp 0x139bd
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1138a5(%rip), %rsi    # 0x126168
callq 0xf690
cmpl $0x0, %eax
jne 0x1295c
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e454(%rip), %rdi    # 0x160d50
leaq 0x14eb0d(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x1290a
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e42f(%rip), %rdi    # 0x160d50
callq 0x16190
jmp 0x12928
leaq 0x14e421(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x1293e
jmp 0x139bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x450(%rsp)
movl %eax, 0x44c(%rsp)
jmp 0x13a14
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113801(%rip), %rsi    # 0x12616f
callq 0xf690
cmpl $0x0, %eax
jne 0x129ea
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e3ad(%rip), %rdi    # 0x160d50
leaq 0x14ea66(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x129b1
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e388(%rip), %rdi    # 0x160d50
callq 0x161d0
jmp 0x129cf
leaq 0x14e37a(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x129e5
jmp 0x139b9
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113777(%rip), %rsi    # 0x126173
callq 0xf690
cmpl $0x0, %eax
jne 0x12a78
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e31f(%rip), %rdi    # 0x160d50
leaq 0x14e9d8(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12a3f
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e2fa(%rip), %rdi    # 0x160d50
callq 0x16210
jmp 0x12a5d
leaq 0x14e2ec(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12a73
jmp 0x139b7
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1136ed(%rip), %rsi    # 0x126177
callq 0xf690
cmpl $0x0, %eax
jne 0x12b06
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e291(%rip), %rdi    # 0x160d50
leaq 0x14e94a(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12acd
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e26c(%rip), %rdi    # 0x160d50
callq 0x16250
jmp 0x12aeb
leaq 0x14e25e(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12b01
jmp 0x139b5
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113663(%rip), %rsi    # 0x12617b
callq 0xf690
cmpl $0x0, %eax
jne 0x12b94
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e203(%rip), %rdi    # 0x160d50
leaq 0x14e8bc(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12b5b
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e1de(%rip), %rdi    # 0x160d50
callq 0x16290
jmp 0x12b79
leaq 0x14e1d0(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12b8f
jmp 0x139b3
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1135d9(%rip), %rsi    # 0x12617f
callq 0xf690
cmpl $0x0, %eax
jne 0x12c22
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e175(%rip), %rdi    # 0x160d50
leaq 0x14e82e(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12be9
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e150(%rip), %rdi    # 0x160d50
callq 0x162d0
jmp 0x12c07
leaq 0x14e142(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12c1d
jmp 0x139b1
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11354f(%rip), %rsi    # 0x126183
callq 0xf690
cmpl $0x0, %eax
jne 0x12cb0
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e0e7(%rip), %rdi    # 0x160d50
leaq 0x14e7a0(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12c77
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
leaq 0x14e0c2(%rip), %rdi    # 0x160d50
callq 0x16310
jmp 0x12c95
leaq 0x14e0b4(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12cab
jmp 0x139af
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1134c5(%rip), %rsi    # 0x126187
callq 0xf690
cmpl $0x0, %eax
jne 0x12d72
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14e055(%rip), %rdi    # 0x160d50
leaq 0x14e70e(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12d09
leaq 0x115b30(%rip), %rax    # 0x128840
movsd (%rax), %xmm0
movsd %xmm0, 0x120(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movaps %xmm0, %xmm1
movsd 0x120(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x1132cb(%rip), %xmm1   # 0x126010
divsd %xmm1, %xmm0
leaq 0x14e000(%rip), %rdi    # 0x160d50
callq 0x16350
jmp 0x12d57
leaq 0x14dff2(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12d6d
jmp 0x139ad
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113407(%rip), %rsi    # 0x12618b
callq 0xf690
cmpl $0x0, %eax
jne 0x12e34
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14df93(%rip), %rdi    # 0x160d50
leaq 0x14e64c(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12dcb
leaq 0x115a6e(%rip), %rax    # 0x128840
movsd (%rax), %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movaps %xmm0, %xmm1
movsd 0x118(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x113209(%rip), %xmm1   # 0x126010
divsd %xmm1, %xmm0
leaq 0x14df3e(%rip), %rdi    # 0x160d50
callq 0x16390
jmp 0x12e19
leaq 0x14df30(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12e2f
jmp 0x139ab
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113349(%rip), %rsi    # 0x12618f
callq 0xf690
cmpl $0x0, %eax
jne 0x12ef6
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x14ded1(%rip), %rdi    # 0x160d50
leaq 0x14e58a(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12e8d
leaq 0x1159ac(%rip), %rax    # 0x128840
movsd (%rax), %xmm0
movsd %xmm0, 0x110(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movaps %xmm0, %xmm1
movsd 0x110(%rsp), %xmm0
mulsd %xmm1, %xmm0
movsd 0x113147(%rip), %xmm1   # 0x126010
divsd %xmm1, %xmm0
leaq 0x14de7c(%rip), %rdi    # 0x160d50
callq 0x163d0
jmp 0x12edb
leaq 0x14de6e(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12ef1
jmp 0x139a9
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11328b(%rip), %rsi    # 0x126193
callq 0xf690
cmpl $0x0, %eax
jne 0x1300e
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
leaq 0x3c8(%rsp), %rdi
callq 0x71d10
jmp 0x12f49
movq 0x568(%rsp), %rax
movq (%rax), %rsi
leaq 0x3c8(%rsp), %rdi
callq 0x13b30
movl %eax, 0x10c(%rsp)
jmp 0x12f6a
movl 0x10c(%rsp), %eax
cmpl $0x0, %eax
je 0x13009
leaq 0x14ddcf(%rip), %rdi    # 0x160d50
leaq 0x14e488(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x12f8f
leaq 0x2b8(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
xorl %edx, %edx
callq 0x6d660
jmp 0x12fa8
leaq 0x14dda1(%rip), %rdi    # 0x160d50
leaq 0x2b8(%rsp), %rsi
callq 0x6d9d0
jmp 0x12fbe
leaq 0x2b8(%rsp), %rdi
callq 0x6d700
leaq 0x14dd7e(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x12fe1
jmp 0x13009
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x450(%rsp)
movl %eax, 0x44c(%rsp)
leaq 0x2b8(%rsp), %rdi
callq 0x6d700
jmp 0x13a14
jmp 0x139a7
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11317a(%rip), %rsi    # 0x12619a
callq 0xf690
cmpl $0x0, %eax
jne 0x1306c
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x14ddf9(%rip)   # 0x160e60
jmp 0x139a5
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11312d(%rip), %rsi    # 0x1261ab
callq 0xf690
cmpl $0x0, %eax
jne 0x130ca
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x14dda3(%rip)   # 0x160e68
jmp 0x139a3
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x1130e0(%rip), %rsi    # 0x1261bc
callq 0xf690
cmpl $0x0, %eax
jne 0x13128
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x14dd4d(%rip)   # 0x160e70
jmp 0x139a1
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x11309b(%rip), %rsi    # 0x1261d5
callq 0xf690
cmpl $0x0, %eax
jne 0x13180
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x14db95(%rip)    # 0x160d10
jmp 0x1399f
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113050(%rip), %rsi    # 0x1261e2
callq 0xf690
cmpl $0x0, %eax
jne 0x131d8
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x14db45(%rip)    # 0x160d18
jmp 0x1399d
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x113004(%rip), %rsi    # 0x1261ee
callq 0xf690
cmpl $0x0, %eax
jne 0x13230
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x14dadd(%rip)    # 0x160d08
jmp 0x1399b
movq 0x568(%rsp), %rax
movq (%rax), %rdi
leaq 0x112fba(%rip), %rsi    # 0x1261fc
callq 0xf690
cmpl $0x0, %eax
jne 0x13974
leaq 0x238(%rsp), %rdi
callq 0x71d10
jmp 0x1325f
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xf8(%rsp)
leaq 0x238(%rsp), %rdi
xorl %esi, %esi
callq 0x16410
movq %rax, 0x100(%rsp)
jmp 0x132b5
movq 0x100(%rsp), %rax
movsd 0xf8(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xe8(%rsp)
leaq 0x238(%rsp), %rdi
xorl %esi, %esi
callq 0x16410
movq %rax, 0xf0(%rsp)
jmp 0x13320
movq 0xf0(%rsp), %rax
movsd 0xe8(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xd8(%rsp)
leaq 0x238(%rsp), %rdi
xorl %esi, %esi
callq 0x16410
movq %rax, 0xe0(%rsp)
jmp 0x1338c
movq 0xe0(%rsp), %rax
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xc8(%rsp)
leaq 0x238(%rsp), %rdi
xorl %esi, %esi
callq 0x16410
movq %rax, 0xd0(%rsp)
jmp 0x133f8
movq 0xd0(%rsp), %rax
movsd 0xc8(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xb8(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x1, %esi
callq 0x16410
movq %rax, 0xc0(%rsp)
jmp 0x13467
movq 0xc0(%rsp), %rax
movsd 0xb8(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0xa8(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x1, %esi
callq 0x16410
movq %rax, 0xb0(%rsp)
jmp 0x134d5
movq 0xb0(%rsp), %rax
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x98(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x1, %esi
callq 0x16410
movq %rax, 0xa0(%rsp)
jmp 0x13544
movq 0xa0(%rsp), %rax
movsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x88(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x1, %esi
callq 0x16410
movq %rax, 0x90(%rsp)
jmp 0x135b3
movq 0x90(%rsp), %rax
movsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x78(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x2, %esi
callq 0x16410
movq %rax, 0x80(%rsp)
jmp 0x1361f
movq 0x80(%rsp), %rax
movsd 0x78(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x68(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x2, %esi
callq 0x16410
movq %rax, 0x70(%rsp)
jmp 0x13684
movq 0x70(%rsp), %rax
movsd 0x68(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x58(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x2, %esi
callq 0x16410
movq %rax, 0x60(%rsp)
jmp 0x136e7
movq 0x60(%rsp), %rax
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x48(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x2, %esi
callq 0x16410
movq %rax, 0x50(%rsp)
jmp 0x1374a
movq 0x50(%rsp), %rax
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x38(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x3, %esi
callq 0x16410
movq %rax, 0x40(%rsp)
jmp 0x137ad
movq 0x40(%rsp), %rax
movsd 0x38(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x28(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x3, %esi
callq 0x16410
movq %rax, 0x30(%rsp)
jmp 0x1380f
movq 0x30(%rsp), %rax
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x18(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x3, %esi
callq 0x16410
movq %rax, 0x20(%rsp)
jmp 0x13872
movq 0x20(%rsp), %rax
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
decl %eax
movl %eax, 0x570(%rsp)
movq 0x568(%rsp), %rax
movq (%rax), %rdi
callq 0xf600
movsd %xmm0, 0x8(%rsp)
leaq 0x238(%rsp), %rdi
movl $0x3, %esi
callq 0x16410
movq %rax, 0x10(%rsp)
jmp 0x138d5
movq 0x10(%rsp), %rax
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
leaq 0x14d464(%rip), %rdi    # 0x160d50
leaq 0x14db1d(%rip), %rsi    # 0x161410
callq 0x16120
jmp 0x138fa
leaq 0x128(%rsp), %rdi
leaq 0x238(%rsp), %rsi
xorl %edx, %edx
callq 0x6d660
jmp 0x13913
leaq 0x14d436(%rip), %rdi    # 0x160d50
leaq 0x128(%rsp), %rsi
callq 0x6d9d0
jmp 0x13929
leaq 0x128(%rsp), %rdi
callq 0x6d700
leaq 0x14d413(%rip), %rdi    # 0x160d50
leaq 0x458(%rsp), %rsi
callq 0x6d9d0
jmp 0x1394c
jmp 0x13999
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x450(%rsp)
movl %eax, 0x44c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x6d700
jmp 0x13a14
movq 0x568(%rsp), %rax
movq (%rax), %rsi
leaq 0x112881(%rip), %rdi    # 0x126207
xorl %eax, %eax
callq 0xc77f0
jmp 0x1398f
movl $0x1, %edi
callq 0xf5d0
jmp 0x1399b
jmp 0x1399d
jmp 0x1399f
jmp 0x139a1
jmp 0x139a3
jmp 0x139a5
jmp 0x139a7
jmp 0x139a9
jmp 0x139ab
jmp 0x139ad
jmp 0x139af
jmp 0x139b1
jmp 0x139b3
jmp 0x139b5
jmp 0x139b7
jmp 0x139b9
jmp 0x139bb
jmp 0x139bd
jmp 0x139bf
jmp 0x139c1
jmp 0x139c3
jmp 0x139c5
jmp 0x139c7
jmp 0x139c9
jmp 0x139cb
jmp 0x139cd
jmp 0x139cf
jmp 0x139d1
jmp 0x139d3
jmp 0x139d5
jmp 0x139d7
jmp 0x139d9
jmp 0x139db
jmp 0x139dd
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
leaq 0x458(%rsp), %rdi
callq 0x6d700
jmp 0x13aac
leaq 0x458(%rsp), %rdi
callq 0x6d700
jmp 0x13b15
cmpq $0x0, 0x14d2ca(%rip)    # 0x160cf8
jne 0x13a44
movq 0x568(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x14d2b6(%rip)    # 0x160cf8
jmp 0x13a87
cmpq $0x0, 0x14d2b4(%rip)    # 0x160d00
jne 0x13a62
movq 0x568(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x14d2a0(%rip)    # 0x160d00
jmp 0x13a85
movq 0x568(%rsp), %rax
movq (%rax), %rsi
leaq 0x112793(%rip), %rdi    # 0x126207
movb $0x0, %al
callq 0xc77f0
movl $0x1, %edi
callq 0xf5d0
jmp 0x13a87
movq 0x568(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x568(%rsp)
movl 0x570(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x570(%rsp)
jmp 0x1256a
cmpq $0x0, 0x14d23f(%rip)    # 0x160cf8
jne 0x13ad6
leaq 0x112762(%rip), %rdi    # 0x126224
movb $0x0, %al
callq 0xc77f0
movl $0x0, 0x574(%rsp)
jmp 0x13b06
cmpq $0x0, 0x14d222(%rip)    # 0x160d00
jne 0x13afb
leaq 0x112766(%rip), %rdi    # 0x12624d
movb $0x0, %al
callq 0xc77f0
movl $0x0, 0x574(%rsp)
jmp 0x13b06
movl $0x1, 0x574(%rsp)
movl 0x574(%rsp), %eax
addq $0x578, %rsp            # imm = 0x578
retq
movq 0x450(%rsp), %rdi
callq 0xf820
nopw %cs:(%rax,%rax)