// File: tomfunkhouser[P]gaps/apps/gapsview/gapsview.cpp
// Function: ParseArgs(int, char**)
static int 
ParseArgs(int argc, char **argv)
{
  // Parse arguments
  argc--; argv++;
  while (argc > 0) {
    if ((*argv)[0] == '-') {
      if (!strcmp(*argv, "-v")) {
        print_verbose = 1;
      }
      else if (!strcmp(*argv, "-pointset")) {
        argc--; argv++; pointset_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-mesh")) {
        argc--; argv++; mesh_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-scene")) {
        argc--; argv++; scene_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-grid")) {
        argc--; argv++; grid_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-sfl")) {
        argc--; argv++; ssa_filenames.Insert(*argv);
        argc--; argv++; ssb_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-gsv")) {
        argc--; argv++; gsv_filenames.Insert(*argv);
      }
      else if (!strcmp(*argv, "-image_directory")) {
        argc--; argv++; image_directory = *argv;
      }
      else if (!strcmp(*argv, "-depth_scale")) {
        argc--; argv++; depth_scale = atof(*argv);
      }
      else if (!strcmp(*argv, "-depth_exponent")) {
        argc--; argv++; depth_exponent = atof(*argv);
      }
      else if (!strcmp(*argv, "-camera")) { 
        RNCoord x, y, z, tx, ty, tz, ux, uy, uz;
        argv++; argc--; x = atof(*argv); 
        argv++; argc--; y = atof(*argv); 
        argv++; argc--; z = atof(*argv); 
        argv++; argc--; tx = atof(*argv); 
        argv++; argc--; ty = atof(*argv); 
        argv++; argc--; tz = atof(*argv); 
        argv++; argc--; ux = atof(*argv); 
        argv++; argc--; uy = atof(*argv); 
        argv++; argc--; uz = atof(*argv); 
        initial_camera_origin = R3Point(x, y, z);
        initial_camera_towards.Reset(tx, ty, tz);
        initial_camera_up.Reset(ux, uy, uz);
        initial_camera = TRUE;
      }
      else if (!strcmp(*argv, "-background")) { 
        argc--; argv++; background_color[0] = atof(*argv); 
        argc--; argv++; background_color[1] = atof(*argv); 
        argc--; argv++; background_color[2] = atof(*argv); 
      }
      else { 
        RNFail("Invalid program argument: %s", *argv); 
        exit(1); 
      }
      argv++; argc--;
    }
    else {
      // Parse filename
      char *ext = strrchr(*argv, '.');
      if (ext && (!strcmp(ext, ".obj") || !strcmp(ext, ".scn") || !strcmp(ext, ".json"))) 
        scene_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".off") || !strcmp(ext, ".ply") || !strcmp(ext, ".wrl"))) 
        mesh_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".xyzn") || !strcmp(ext, ".pts") || !strcmp(ext, ".sdf"))) 
        pointset_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".grd"))) 
        grid_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".ssa") || !strcmp(ext, ".ssx"))) 
        ssa_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".ssb")))
        ssb_filenames.Insert(*argv);
      else if (ext && (!strcmp(ext, ".gsv"))) 
        gsv_filenames.Insert(*argv);
      else { 
        RNFail("Invalid program argument: %s", *argv); 
        exit(1); 
      }
      argv++; argc--;
    }
  }

  // Get number of models
  nmodels = 0;
  if (pointset_filenames.NEntries() > nmodels) nmodels = pointset_filenames.NEntries();
  if (mesh_filenames.NEntries() > nmodels) nmodels = mesh_filenames.NEntries();
  if (scene_filenames.NEntries() > nmodels) nmodels = scene_filenames.NEntries();
  if (grid_filenames.NEntries() > nmodels) nmodels = grid_filenames.NEntries();
  if (ssa_filenames.NEntries() > nmodels) nmodels = ssa_filenames.NEntries();
  if (gsv_filenames.NEntries() > nmodels) nmodels = gsv_filenames.NEntries();

  // Check inputs
  if (nmodels == 0) {
    RNFail("Usage: gapsview <scenes> <meshes> <pointsets> <grids> <sfls> <gsvs> [options]\n");
    return 0;
  }

  // Return OK status 
  return 1;
}

// Assembly:
subq $0x78, %rsp
movl %edi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
cmpl $0x0, 0x70(%rsp)
jle 0x2f6e8
movq 0x68(%rsp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x2f488
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x2375fc(%rip), %rsi    # 0x266480
callq 0x29f00
cmpl $0x0, %eax
jne 0x2ee9d
movl $0x1, 0x2cfe24(%rip)    # 0x2fecbc
jmp 0x2f46a
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x2375d7(%rip), %rsi    # 0x266483
callq 0x29f00
cmpl $0x0, %eax
jne 0x2eee8
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf842(%rip), %rdi    # 0x2fe720
callq 0x3a4a0
jmp 0x2f468
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x237596(%rip), %rsi    # 0x26648d
callq 0x29f00
cmpl $0x0, %eax
jne 0x2ef33
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf807(%rip), %rdi    # 0x2fe730
callq 0x3a4a0
jmp 0x2f466
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x237551(%rip), %rsi    # 0x266493
callq 0x29f00
cmpl $0x0, %eax
jne 0x2ef7e
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf7cc(%rip), %rdi    # 0x2fe740
callq 0x3a4a0
jmp 0x2f464
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x23750d(%rip), %rsi    # 0x26649a
callq 0x29f00
cmpl $0x0, %eax
jne 0x2efc9
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf791(%rip), %rdi    # 0x2fe750
callq 0x3a4a0
jmp 0x2f462
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x2374c8(%rip), %rsi    # 0x2664a0
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f041
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf756(%rip), %rdi    # 0x2fe760
callq 0x3a4a0
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf739(%rip), %rdi    # 0x2fe770
callq 0x3a4a0
jmp 0x2f460
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x237455(%rip), %rsi    # 0x2664a5
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f08c
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf6fe(%rip), %rdi    # 0x2fe780
callq 0x3a4a0
jmp 0x2f45e
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x23740f(%rip), %rsi    # 0x2664aa
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f0d2
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x2cfe5b(%rip)    # 0x2fef28
jmp 0x2f45c
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x2373da(%rip), %rsi    # 0x2664bb
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f11e
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x2c0a8f(%rip)   # 0x2efba8
jmp 0x2f45a
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x23739b(%rip), %rsi    # 0x2664c8
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f16a
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x2c0a4b(%rip)   # 0x2efbb0
jmp 0x2f458
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x23735f(%rip), %rsi    # 0x2664d8
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f38b
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x60(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x58(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x50(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x48(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x40(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x38(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x30(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x28(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x20(%rsp)
movsd 0x60(%rsp), %xmm0
movsd 0x58(%rsp), %xmm1
movsd 0x50(%rsp), %xmm2
leaq 0x8(%rsp), %rdi
callq 0x17fd90
leaq 0x2cf45a(%rip), %rdi    # 0x2fe790
leaq 0x8(%rsp), %rsi
callq 0x180420
movsd 0x48(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x38(%rsp), %xmm2
leaq 0x2cf44f(%rip), %rdi    # 0x2fe7a8
callq 0x3a4d0
movsd 0x30(%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
movsd 0x20(%rsp), %xmm2
leaq 0x2cf449(%rip), %rdi    # 0x2fe7c0
callq 0x3a4d0
movl $0x1, 0x2cf932(%rip)    # 0x2fecb8
jmp 0x2f456
movq 0x68(%rsp), %rax
movq (%rax), %rdi
leaq 0x237146(%rip), %rsi    # 0x2664e0
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f434
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x2c075a(%rip)   # 0x2efb30
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x2c0734(%rip)   # 0x2efb38
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq (%rax), %rdi
callq 0x29ef0
movsd %xmm0, 0x2c070e(%rip)   # 0x2efb40
jmp 0x2f454
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2370a9(%rip), %rdi    # 0x2664ec
movb $0x0, %al
callq 0x1cbff0
movl $0x1, %edi
callq 0x29c60
jmp 0x2f456
jmp 0x2f458
jmp 0x2f45a
jmp 0x2f45c
jmp 0x2f45e
jmp 0x2f460
jmp 0x2f462
jmp 0x2f464
jmp 0x2f466
jmp 0x2f468
jmp 0x2f46a
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
jmp 0x2f6e3
movq 0x68(%rsp), %rax
movq (%rax), %rdi
movl $0x2e, %esi
callq 0x2a110
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
je 0x2f4fd
movq (%rsp), %rdi
leaq 0x23aadc(%rip), %rsi    # 0x269f8c
callq 0x29f00
cmpl $0x0, %eax
je 0x2f4e4
movq (%rsp), %rdi
leaq 0x237044(%rip), %rsi    # 0x266509
callq 0x29f00
cmpl $0x0, %eax
je 0x2f4e4
movq (%rsp), %rdi
leaq 0x237034(%rip), %rsi    # 0x26650e
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f4fd
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf24d(%rip), %rdi    # 0x2fe740
callq 0x3a4a0
jmp 0x2f6ca
cmpq $0x0, (%rsp)
je 0x2f55c
movq (%rsp), %rdi
leaq 0x23a71c(%rip), %rsi    # 0x269c2b
callq 0x29f00
cmpl $0x0, %eax
je 0x2f543
movq (%rsp), %rdi
leaq 0x237df5(%rip), %rsi    # 0x267319
callq 0x29f00
cmpl $0x0, %eax
je 0x2f543
movq (%rsp), %rdi
leaq 0x236fdb(%rip), %rsi    # 0x266514
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f55c
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf1de(%rip), %rdi    # 0x2fe730
callq 0x3a4a0
jmp 0x2f6c8
cmpq $0x0, (%rsp)
je 0x2f5bb
movq (%rsp), %rdi
leaq 0x236fab(%rip), %rsi    # 0x266519
callq 0x29f00
cmpl $0x0, %eax
je 0x2f5a2
movq (%rsp), %rdi
leaq 0x236f9c(%rip), %rsi    # 0x26651f
callq 0x29f00
cmpl $0x0, %eax
je 0x2f5a2
movq (%rsp), %rdi
leaq 0x236f8c(%rip), %rsi    # 0x266524
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f5bb
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf16f(%rip), %rdi    # 0x2fe720
callq 0x3a4a0
jmp 0x2f6c6
cmpq $0x0, (%rsp)
je 0x2f5f0
movq (%rsp), %rdi
leaq 0x236f5c(%rip), %rsi    # 0x266529
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f5f0
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf16a(%rip), %rdi    # 0x2fe750
callq 0x3a4a0
jmp 0x2f6c4
cmpq $0x0, (%rsp)
je 0x2f63a
movq (%rsp), %rdi
leaq 0x236f2c(%rip), %rsi    # 0x26652e
callq 0x29f00
cmpl $0x0, %eax
je 0x2f621
movq (%rsp), %rdi
leaq 0x236f1c(%rip), %rsi    # 0x266533
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f63a
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf130(%rip), %rdi    # 0x2fe760
callq 0x3a4a0
jmp 0x2f6c2
cmpq $0x0, (%rsp)
je 0x2f66c
movq (%rsp), %rdi
leaq 0x236eec(%rip), %rsi    # 0x266538
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f66c
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf10b(%rip), %rdi    # 0x2fe770
callq 0x3a4a0
jmp 0x2f6c0
cmpq $0x0, (%rsp)
je 0x2f69e
movq (%rsp), %rdi
leaq 0x236ebf(%rip), %rsi    # 0x26653d
callq 0x29f00
cmpl $0x0, %eax
jne 0x2f69e
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x2cf0e9(%rip), %rdi    # 0x2fe780
callq 0x3a4a0
jmp 0x2f6be
movq 0x68(%rsp), %rax
movq (%rax), %rsi
leaq 0x236e3f(%rip), %rdi    # 0x2664ec
movb $0x0, %al
callq 0x1cbff0
movl $0x1, %edi
callq 0x29c60
jmp 0x2f6c0
jmp 0x2f6c2
jmp 0x2f6c4
jmp 0x2f6c6
jmp 0x2f6c8
jmp 0x2f6ca
movq 0x68(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x68(%rsp)
movl 0x70(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x70(%rsp)
jmp 0x2ee56
movl $0x0, 0x2cf812(%rip)    # 0x2fef04
leaq 0x2cf027(%rip), %rdi    # 0x2fe720
callq 0x38730
cmpl 0x2cf800(%rip), %eax    # 0x2fef04
jle 0x2f718
leaq 0x2cf013(%rip), %rdi    # 0x2fe720
callq 0x38730
movl %eax, 0x2cf7ec(%rip)    # 0x2fef04
leaq 0x2cf011(%rip), %rdi    # 0x2fe730
callq 0x38730
cmpl 0x2cf7da(%rip), %eax    # 0x2fef04
jle 0x2f73e
leaq 0x2ceffd(%rip), %rdi    # 0x2fe730
callq 0x38730
movl %eax, 0x2cf7c6(%rip)    # 0x2fef04
leaq 0x2ceffb(%rip), %rdi    # 0x2fe740
callq 0x38730
cmpl 0x2cf7b4(%rip), %eax    # 0x2fef04
jle 0x2f764
leaq 0x2cefe7(%rip), %rdi    # 0x2fe740
callq 0x38730
movl %eax, 0x2cf7a0(%rip)    # 0x2fef04
leaq 0x2cefe5(%rip), %rdi    # 0x2fe750
callq 0x38730
cmpl 0x2cf78e(%rip), %eax    # 0x2fef04
jle 0x2f78a
leaq 0x2cefd1(%rip), %rdi    # 0x2fe750
callq 0x38730
movl %eax, 0x2cf77a(%rip)    # 0x2fef04
leaq 0x2cefcf(%rip), %rdi    # 0x2fe760
callq 0x38730
cmpl 0x2cf768(%rip), %eax    # 0x2fef04
jle 0x2f7b0
leaq 0x2cefbb(%rip), %rdi    # 0x2fe760
callq 0x38730
movl %eax, 0x2cf754(%rip)    # 0x2fef04
leaq 0x2cefc9(%rip), %rdi    # 0x2fe780
callq 0x38730
cmpl 0x2cf742(%rip), %eax    # 0x2fef04
jle 0x2f7d6
leaq 0x2cefb5(%rip), %rdi    # 0x2fe780
callq 0x38730
movl %eax, 0x2cf72e(%rip)    # 0x2fef04
cmpl $0x0, 0x2cf727(%rip)    # 0x2fef04
jne 0x2f7f7
leaq 0x236d5c(%rip), %rdi    # 0x266542
movb $0x0, %al
callq 0x1cbff0
movl $0x0, 0x74(%rsp)
jmp 0x2f7ff
movl $0x1, 0x74(%rsp)
movl 0x74(%rsp), %eax
addq $0x78, %rsp
retq
nopl (%rax,%rax)