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

  // Read configuration
  RGBDConfiguration *configuration = ReadConfigurationFile(input_configuration_filename);
  if (!configuration) exit(-1);

  // Read mesh
  if (input_mesh_filename) {
    if (!ReadMeshFile(configuration, input_mesh_filename)) exit(-1);
  }
  
  // Read oriented boxes
  if (input_obbs_filename) {
    if (!ReadOrientedBoxFile(configuration, input_obbs_filename)) exit(-1);
  }
  
  // Read segmentation
  if (input_segmentation_filename) {
    if (!ReadSegmentationFile(configuration, input_segmentation_filename)) exit(-1);
  }
  
  // Execute commands (this has to mimic the code in ParseArgs)
  argc--; argv++;
  while (argc > 0) {
    if ((*argv)[0] == '-') {
      if (!strcmp(*argv, "-v")) {}
      else if (!strcmp(*argv, "-color_textures")) {}
      else if (!strcmp(*argv, "-semantic_textures")) {}
      else if (!strcmp(*argv, "-input_mesh")) { argc--; argv++; }
      else if (!strcmp(*argv, "-input_depth_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-input_color_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-input_texture_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-output_depth_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-output_color_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-output_texture_directory")) { argc--; argv++; }
      else if (!strcmp(*argv, "-load_images_starting_at_index")) { argc--; argv++; }
      else if (!strcmp(*argv, "-load_images_ending_at_index")) { argc--; argv++; }
      else if (!strcmp(*argv, "-load_every_kth_image")) { argc--; argv++; }
      else if (!strcmp(*argv, "-write_every_kth_image")) { argc--; argv++; }
      else if (!strcmp(*argv, "-texture_aggregation_method")) { argc--; argv++; }
      else if (!strcmp(*argv, "-texture_aggregation_weighting")) { argc--; argv++; }
      else if (!strcmp(*argv, "-texel_spacing")) { argc--; argv++; }
      else if (!strcmp(*argv, "-viewpoint_bbox")) { argc -= 6; argv += 6; }
      else if (!strcmp(*argv, "-observation_bbox")) { argc -= 6; argv += 6; }
      else if (!strcmp(*argv, "-compute_surface_textures")) {
        if (!ComputeSurfaceTextures(configuration)) exit(-1);
      }
      else if (!strcmp(*argv, "-negate_yz")) {
        if (!NegateYZ(configuration)) exit(-1);
      }
      else if (!strcmp(*argv, "-identity_transformations")) {
        if (!ResetTransformations(configuration)) exit(-1);
      }
      else if (!strcmp(*argv, "-transform")) {
        R4Matrix matrix;
        argv++; argc--; matrix[0][0] = atof(*argv);
        argv++; argc--; matrix[0][1] = atof(*argv);
        argv++; argc--; matrix[0][2] = atof(*argv);
        argv++; argc--; matrix[0][3] = atof(*argv);
        argv++; argc--; matrix[1][0] = atof(*argv);
        argv++; argc--; matrix[1][1] = atof(*argv);
        argv++; argc--; matrix[1][2] = atof(*argv);
        argv++; argc--; matrix[1][3] = atof(*argv);
        argv++; argc--; matrix[2][0] = atof(*argv);
        argv++; argc--; matrix[2][1] = atof(*argv);
        argv++; argc--; matrix[2][2] = atof(*argv);
        argv++; argc--; matrix[2][3] = atof(*argv);
        argv++; argc--; matrix[3][0] = atof(*argv);
        argv++; argc--; matrix[3][1] = atof(*argv);
        argv++; argc--; matrix[3][2] = atof(*argv);
        argv++; argc--; matrix[3][3] = atof(*argv);
        if (!Transform(configuration, matrix)) exit(-1);
      }
      else {
        RNFail("Invalid program argument: %s", *argv);
        exit(1);
      }
      argv++; argc--;
    }
    else {
      static int nfilenames = 0;
      if (nfilenames < 2) nfilenames++;
      else { RNFail("Invalid program argument: %s", *argv); exit(1); }
      argv++; argc--;
    }
  }
  
  // Write configuration
  if (!WriteConfigurationFile(configuration, output_configuration_filename)) exit(-1);
  
  // Return success 
  return 0;
}

// Assembly:
subq $0x118, %rsp            # imm = 0x118
movl $0x0, 0x114(%rsp)
movl %edi, 0x110(%rsp)
movq %rsi, 0x108(%rsp)
movl 0x110(%rsp), %edi
movq 0x108(%rsp), %rsi
callq 0x16710
cmpl $0x0, %eax
jne 0x159c4
movl $0x1, %edi
callq 0x12880
movq 0x19c5ed(%rip), %rdi    # 0x1b1fb8
callq 0x17110
movq %rax, 0x100(%rsp)
cmpq $0x0, 0x100(%rsp)
jne 0x159ed
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
cmpq $0x0, 0x19c5cb(%rip)    # 0x1b1fc0
je 0x15a1d
movq 0x100(%rsp), %rdi
movq 0x19c5ba(%rip), %rsi    # 0x1b1fc0
callq 0x17300
cmpq $0x0, %rax
jne 0x15a1b
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x15a1d
cmpq $0x0, 0x19c5a3(%rip)    # 0x1b1fc8
je 0x15a4c
movq 0x100(%rsp), %rdi
movq 0x19c592(%rip), %rsi    # 0x1b1fc8
callq 0x17560
cmpl $0x0, %eax
jne 0x15a4a
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x15a4c
cmpq $0x0, 0x19c57c(%rip)    # 0x1b1fd0
je 0x15a7b
movq 0x100(%rsp), %rdi
movq 0x19c56b(%rip), %rsi    # 0x1b1fd0
callq 0x17630
cmpl $0x0, %eax
jne 0x15a79
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x15a7b
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
cmpl $0x0, 0x110(%rsp)
jle 0x166dd
movq 0x108(%rsp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x16676
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150561(%rip), %rsi    # 0x166038
callq 0x12a00
cmpl $0x0, %eax
jne 0x15ae6
jmp 0x1664f
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150543(%rip), %rsi    # 0x16603b
callq 0x12a00
cmpl $0x0, %eax
jne 0x15b07
jmp 0x1664d
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150532(%rip), %rsi    # 0x16604b
callq 0x12a00
cmpl $0x0, %eax
jne 0x15b28
jmp 0x1664b
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150524(%rip), %rsi    # 0x16605e
callq 0x12a00
cmpl $0x0, %eax
jne 0x15b6e
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16649
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1504ea(%rip), %rsi    # 0x16606a
callq 0x12a00
cmpl $0x0, %eax
jne 0x15bb4
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16647
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1504bb(%rip), %rsi    # 0x166081
callq 0x12a00
cmpl $0x0, %eax
jne 0x15bfa
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16645
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x15048c(%rip), %rsi    # 0x166098
callq 0x12a00
cmpl $0x0, %eax
jne 0x15c40
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16643
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x15045f(%rip), %rsi    # 0x1660b1
callq 0x12a00
cmpl $0x0, %eax
jne 0x15c86
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16641
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150431(%rip), %rsi    # 0x1660c9
callq 0x12a00
cmpl $0x0, %eax
jne 0x15ccc
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x1663f
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150403(%rip), %rsi    # 0x1660e1
callq 0x12a00
cmpl $0x0, %eax
jne 0x15d12
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x1663d
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1503d7(%rip), %rsi    # 0x1660fb
callq 0x12a00
cmpl $0x0, %eax
jne 0x15d58
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x1663b
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1503b0(%rip), %rsi    # 0x16611a
callq 0x12a00
cmpl $0x0, %eax
jne 0x15d9e
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16639
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150387(%rip), %rsi    # 0x166137
callq 0x12a00
cmpl $0x0, %eax
jne 0x15de4
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16637
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150357(%rip), %rsi    # 0x16614d
callq 0x12a00
cmpl $0x0, %eax
jne 0x15e2a
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16635
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150328(%rip), %rsi    # 0x166164
callq 0x12a00
cmpl $0x0, %eax
jne 0x15e70
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16633
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1502fe(%rip), %rsi    # 0x166180
callq 0x12a00
cmpl $0x0, %eax
jne 0x15eb6
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x16631
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1502d7(%rip), %rsi    # 0x16619f
callq 0x12a00
cmpl $0x0, %eax
jne 0x15efc
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
jmp 0x1662f
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1502a0(%rip), %rsi    # 0x1661ae
callq 0x12a00
cmpl $0x0, %eax
jne 0x15f42
movl 0x110(%rsp), %eax
subl $0x6, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x108(%rsp)
jmp 0x1662d
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x15026a(%rip), %rsi    # 0x1661be
callq 0x12a00
cmpl $0x0, %eax
jne 0x15f88
movl 0x110(%rsp), %eax
subl $0x6, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
addq $0x30, %rax
movq %rax, 0x108(%rsp)
jmp 0x1662b
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150236(%rip), %rsi    # 0x1661d0
callq 0x12a00
cmpl $0x0, %eax
jne 0x15fc5
movq 0x100(%rsp), %rdi
callq 0x17700
cmpl $0x0, %eax
jne 0x15fc0
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x16629
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x150213(%rip), %rsi    # 0x1661ea
callq 0x12a00
cmpl $0x0, %eax
jne 0x16002
movq 0x100(%rsp), %rdi
callq 0x17900
cmpl $0x0, %eax
jne 0x15ffd
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x16627
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1501e1(%rip), %rsi    # 0x1661f5
callq 0x12a00
cmpl $0x0, %eax
jne 0x1603f
movq 0x100(%rsp), %rdi
callq 0x17aa0
cmpl $0x0, %eax
jne 0x1603a
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x16625
movq 0x108(%rsp), %rax
movq (%rax), %rdi
leaq 0x1501be(%rip), %rsi    # 0x16620f
callq 0x12a00
cmpl $0x0, %eax
jne 0x16600
leaq 0x80(%rsp), %rdi
callq 0x84260
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, (%rsp)
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd (%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x8(%rsp)
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x10(%rsp)
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x18(%rsp)
leaq 0x80(%rsp), %rdi
xorl %esi, %esi
callq 0x19ba0
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x20(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x20(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x28(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x30(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x38(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x1, %esi
callq 0x19ba0
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x40(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x40(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x48(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x50(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x58(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x2, %esi
callq 0x19ba0
movsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x60(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x60(%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x68(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x68(%rsp), %xmm0
movsd %xmm0, 0x8(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x70(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x10(%rax)
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
movq 0x108(%rsp), %rax
movq (%rax), %rdi
callq 0x128e0
movsd %xmm0, 0x78(%rsp)
leaq 0x80(%rsp), %rdi
movl $0x3, %esi
callq 0x19ba0
movsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x100(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x17b90
cmpl $0x0, %eax
jne 0x165fe
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
jmp 0x16623
movq 0x108(%rsp), %rax
movq (%rax), %rsi
leaq 0x14fc08(%rip), %rdi    # 0x16621a
movb $0x0, %al
callq 0xdf990
movl $0x1, %edi
callq 0x12880
jmp 0x16625
jmp 0x16627
jmp 0x16629
jmp 0x1662b
jmp 0x1662d
jmp 0x1662f
jmp 0x16631
jmp 0x16633
jmp 0x16635
jmp 0x16637
jmp 0x16639
jmp 0x1663b
jmp 0x1663d
jmp 0x1663f
jmp 0x16641
jmp 0x16643
jmp 0x16645
jmp 0x16647
jmp 0x16649
jmp 0x1664b
jmp 0x1664d
jmp 0x1664f
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
jmp 0x166d8
cmpl $0x2, 0x19b95b(%rip)    # 0x1b1fd8
jge 0x16690
movl 0x19b953(%rip), %eax    # 0x1b1fd8
addl $0x1, %eax
movl %eax, 0x19b94a(%rip)    # 0x1b1fd8
jmp 0x166b3
movq 0x108(%rsp), %rax
movq (%rax), %rsi
leaq 0x14fb78(%rip), %rdi    # 0x16621a
movb $0x0, %al
callq 0xdf990
movl $0x1, %edi
callq 0x12880
movq 0x108(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x108(%rsp)
movl 0x110(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x110(%rsp)
jmp 0x15aa0
movq 0x100(%rsp), %rdi
movq 0x19b8f4(%rip), %rsi    # 0x1b1fe0
callq 0x18110
cmpl $0x0, %eax
jne 0x16700
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x12880
xorl %eax, %eax
addq $0x118, %rsp            # imm = 0x118
retq
nopw (%rax,%rax)