// File: tomfunkhouser[P]gaps/apps/scn2img/scn2img.cpp
// Function: ParseArgs(int, char**)
static int 
ParseArgs(int argc, char **argv)
{
  // Initialize variables to track whether to assign defaults
  int capture_images = 0;
  
  // Parse arguments
  argc--; argv++;
  while (argc > 0) {
    if ((*argv)[0] == '-') {
      if (!strcmp(*argv, "-v")) print_verbose = 1;
      else if (!strcmp(*argv, "-debug")) print_debug = 1;
      else if (!strcmp(*argv, "-glut")) { mesa = 0; glut = 1; }
      else if (!strcmp(*argv, "-mesa")) { mesa = 1; glut = 0; }
      else if (!strcmp(*argv, "-raycast")) { mesa = 0; glut = 0; }
      else if (!strcmp(*argv, "-lights")) { argc--; argv++; input_lights_name = *argv; }
      else if (!strcmp(*argv, "-output_nodes")) { argc--; argv++; output_nodes_filename = *argv; }
      else if (!strcmp(*argv, "-capture_color_images")) { capture_images = capture_color_images = 1; }
      else if (!strcmp(*argv, "-capture_depth_images")) { capture_images = capture_depth_images = 1; }
      else if (!strcmp(*argv, "-capture_kinect_images")) { capture_images = capture_kinect_images = 1; }
      else if (!strcmp(*argv, "-capture_height_images")) { capture_images = capture_height_images = 1; }
      else if (!strcmp(*argv, "-capture_angle_images")) { capture_images = capture_angle_images = 1; }
      else if (!strcmp(*argv, "-capture_normal_images")) { capture_images = capture_normal_images = 1; }
      else if (!strcmp(*argv, "-capture_ndotv_images")) { capture_images = capture_ndotv_images = 1; }
      else if (!strcmp(*argv, "-capture_albedo_images")) { capture_images = capture_albedo_images = 1; }
      else if (!strcmp(*argv, "-capture_brdf_images")) { capture_images = capture_brdf_images = 1; }
      else if (!strcmp(*argv, "-capture_material_images")) { capture_images = capture_material_images = 1; }
      else if (!strcmp(*argv, "-capture_face_images")) { capture_images = capture_face_images = 1; }
      else if (!strcmp(*argv, "-capture_node_images")) { capture_images = capture_node_images = 1; }
      else if (!strcmp(*argv, "-capture_instance_images")) { capture_images = capture_node_images = 1; }
      else if (!strcmp(*argv, "-capture_category_images")) { capture_images = capture_category_images = 1; }
      else if (!strcmp(*argv, "-capture_boundary_images")) { capture_images = capture_boundary_images = 1; }
      else if (!strcmp(*argv, "-capture_room_surface_images")) { capture_images = capture_room_surface_images = 1; }
      else if (!strcmp(*argv, "-capture_room_boundary_images")) { capture_images = capture_room_boundary_images = 1; }
      else if (!strcmp(*argv, "-capture_vrgb_images")) { capture_images = capture_vrgb_images = 1; }
      else if (!strcmp(*argv, "-categories")) { argc--; argv++; input_categories_name = *argv; capture_category_images = 1; }
      else if (!strcmp(*argv, "-kinect_min_depth")) { argc--; argv++; kinect_min_depth = atof(*argv); }
      else if (!strcmp(*argv, "-kinect_max_depth")) { argc--; argv++; kinect_max_depth = atof(*argv); }
      else if (!strcmp(*argv, "-kinect_min_reflection")) { argc--; argv++; kinect_min_reflection = atof(*argv); }
      else if (!strcmp(*argv, "-kinect_noise_fraction")) { argc--; argv++; kinect_noise_fraction = atof(*argv); }
      else if (!strcmp(*argv, "-kinect_stereo_baseline")) { argc--; argv++; kinect_stereo_baseline = atof(*argv); }
      else if (!strcmp(*argv, "-max_vertex_spacing")) { argc--; argv++; max_vertex_spacing = atof(*argv); }
      else if (!strcmp(*argv, "-width")) { argc--; argv++; width = atoi(*argv); }
      else if (!strcmp(*argv, "-height")) { argc--; argv++; height = atoi(*argv); }
      else if (!strcmp(*argv, "-xfov")) { argc--; argv++; xfov = atof(*argv); }
      else if (!strcmp(*argv, "-headlight")) { headlight = 1; }
      else if (!strcmp(*argv, "-background")) {
        argc--; argv++; background[0] = atof(*argv);
        argc--; argv++; background[1] = atof(*argv);
        argc--; argv++; background[2] = atof(*argv);
      }
      else {
        RNFail("Invalid program argument: %s", *argv);
        exit(1);
      }
      argv++; argc--;
    }
    else {
      if (!input_scene_name) input_scene_name = *argv;
      else if (!input_cameras_name) input_cameras_name = *argv;
      else if (!output_image_directory) output_image_directory = *argv;
      else { RNFail("Invalid program argument: %s", *argv); exit(1); }
      argv++; argc--;
    }
  }

  // Set default capture options
  if (!capture_images) {
    capture_color_images = 1;
    capture_depth_images = 1;
    capture_kinect_images = 1;
    capture_normal_images = 1;
    capture_ndotv_images = 1;
    capture_albedo_images = 1;
    capture_brdf_images = 1;
    capture_material_images = 1;
    capture_face_images = 1;
    capture_node_images = 1;
    capture_category_images = 1;
    capture_boundary_images = 1;
    capture_room_surface_images = 1;
    capture_room_boundary_images = 1;
  }

  // Check filenames
  if (!input_scene_name || !input_cameras_name || !output_image_directory) {
    RNFail("Usage: scn2img inputscenefile inputcamerasfile outputimagedirectory\n");
    return 0;
  }

  // Return OK status 
  return 1;
}

// Assembly:
subq $0x38, %rsp
movl %edi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl $0x0, 0x24(%rsp)
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
cmpl $0x0, 0x30(%rsp)
jle 0x2bcc9
movq 0x28(%rsp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x2bc36
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x182063(%rip), %rsi    # 0x1ad33f
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b2f5
movl $0x1, 0x1f38ec(%rip)    # 0x21ebdc
jmp 0x2bc18
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x18203e(%rip), %rsi    # 0x1ad342
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b31d
movl $0x1, 0x1f38cc(%rip)    # 0x21ebe4
jmp 0x2bc16
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x18201d(%rip), %rsi    # 0x1ad349
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b34f
movl $0x0, 0x1f39b0(%rip)    # 0x21ecf0
movl $0x1, 0x1ed796(%rip)    # 0x218ae0
jmp 0x2bc14
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ff1(%rip), %rsi    # 0x1ad34f
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b381
movl $0x1, 0x1f397e(%rip)    # 0x21ecf0
movl $0x0, 0x1ed764(%rip)    # 0x218ae0
jmp 0x2bc12
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181fc5(%rip), %rsi    # 0x1ad355
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b3b3
movl $0x0, 0x1f394c(%rip)    # 0x21ecf0
movl $0x0, 0x1ed732(%rip)    # 0x218ae0
jmp 0x2bc10
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181f9c(%rip), %rsi    # 0x1ad35e
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b3f9
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f385c(%rip)    # 0x21ec50
jmp 0x2bc0e
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181f5e(%rip), %rsi    # 0x1ad366
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b43f
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f381e(%rip)    # 0x21ec58
jmp 0x2bc0c
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181f26(%rip), %rsi    # 0x1ad374
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b46f
movl $0x1, 0x1f37d2(%rip)    # 0x21ec34
movl $0x1, 0x24(%rsp)
jmp 0x2bc0a
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181f0c(%rip), %rsi    # 0x1ad38a
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b49f
movl $0x1, 0x1f3756(%rip)    # 0x21ebe8
movl $0x1, 0x24(%rsp)
jmp 0x2bc08
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ef2(%rip), %rsi    # 0x1ad3a0
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b4cf
movl $0x1, 0x1f376e(%rip)    # 0x21ec30
movl $0x1, 0x24(%rsp)
jmp 0x2bc06
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ed9(%rip), %rsi    # 0x1ad3b7
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b4ff
movl $0x1, 0x1f3706(%rip)    # 0x21ebf8
movl $0x1, 0x24(%rsp)
jmp 0x2bc04
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ec0(%rip), %rsi    # 0x1ad3ce
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b52f
movl $0x1, 0x1f36da(%rip)    # 0x21ebfc
movl $0x1, 0x24(%rsp)
jmp 0x2bc02
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ea6(%rip), %rsi    # 0x1ad3e4
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b55f
movl $0x1, 0x1f36d2(%rip)    # 0x21ec24
movl $0x1, 0x24(%rsp)
jmp 0x2bc00
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e8d(%rip), %rsi    # 0x1ad3fb
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b58f
movl $0x1, 0x1f367e(%rip)    # 0x21ec00
movl $0x1, 0x24(%rsp)
jmp 0x2bbfe
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e73(%rip), %rsi    # 0x1ad411
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b5bf
movl $0x1, 0x1f3652(%rip)    # 0x21ec04
movl $0x1, 0x24(%rsp)
jmp 0x2bbfc
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e5a(%rip), %rsi    # 0x1ad428
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b5ef
movl $0x1, 0x1f3626(%rip)    # 0x21ec08
movl $0x1, 0x24(%rsp)
jmp 0x2bbfa
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e3f(%rip), %rsi    # 0x1ad43d
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b61f
movl $0x1, 0x1f35fa(%rip)    # 0x21ec0c
movl $0x1, 0x24(%rsp)
jmp 0x2bbf8
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e28(%rip), %rsi    # 0x1ad456
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b64f
movl $0x1, 0x1f35ce(%rip)    # 0x21ec10
movl $0x1, 0x24(%rsp)
jmp 0x2bbf6
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181e0d(%rip), %rsi    # 0x1ad46b
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b67f
movl $0x1, 0x1f35a2(%rip)    # 0x21ec14
movl $0x1, 0x24(%rsp)
jmp 0x2bbf4
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181df2(%rip), %rsi    # 0x1ad480
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b6af
movl $0x1, 0x1f3572(%rip)    # 0x21ec14
movl $0x1, 0x24(%rsp)
jmp 0x2bbf2
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181ddb(%rip), %rsi    # 0x1ad499
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b6df
movl $0x1, 0x1f3546(%rip)    # 0x21ec18
movl $0x1, 0x24(%rsp)
jmp 0x2bbf0
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181dc4(%rip), %rsi    # 0x1ad4b2
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b70f
movl $0x1, 0x1f3526(%rip)    # 0x21ec28
movl $0x1, 0x24(%rsp)
jmp 0x2bbee
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181dad(%rip), %rsi    # 0x1ad4cb
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b73f
movl $0x1, 0x1f34ea(%rip)    # 0x21ec1c
movl $0x1, 0x24(%rsp)
jmp 0x2bbec
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181d9a(%rip), %rsi    # 0x1ad4e8
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b76f
movl $0x1, 0x1f34ca(%rip)    # 0x21ec2c
movl $0x1, 0x24(%rsp)
jmp 0x2bbea
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181d88(%rip), %rsi    # 0x1ad506
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b79f
movl $0x1, 0x1f348e(%rip)    # 0x21ec20
movl $0x1, 0x24(%rsp)
jmp 0x2bbe8
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181d6d(%rip), %rsi    # 0x1ad51b
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b7ef
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f3468(%rip)    # 0x21ec48
movl $0x1, 0x1f342e(%rip)    # 0x21ec18
jmp 0x2bbe6
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181d29(%rip), %rsi    # 0x1ad527
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b83b
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1ed28a(%rip)   # 0x218ac0
jmp 0x2bbe4
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181cef(%rip), %rsi    # 0x1ad539
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b887
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1ed246(%rip)   # 0x218ac8
jmp 0x2bbe2
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181cb5(%rip), %rsi    # 0x1ad54b
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b8d3
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1ed202(%rip)   # 0x218ad0
jmp 0x2bbe0
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181c80(%rip), %rsi    # 0x1ad562
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b91f
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1ed19e(%rip)   # 0x218ab8
jmp 0x2bbde
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181c4b(%rip), %rsi    # 0x1ad579
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b96b
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1ed172(%rip)   # 0x218ad8
jmp 0x2bbdc
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181c17(%rip), %rsi    # 0x1ad591
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2b9b7
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1f3346(%rip)   # 0x21ecf8
jmp 0x2bbda
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181bdf(%rip), %rsi    # 0x1ad5a5
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2ba01
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x24070
movl %eax, 0x1ed0b4(%rip)    # 0x218ab0
jmp 0x2bbd8
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181b9c(%rip), %rsi    # 0x1ad5ac
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2ba4b
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x24070
movl %eax, 0x1ed06e(%rip)    # 0x218ab4
jmp 0x2bbd6
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181b5a(%rip), %rsi    # 0x1ad5b4
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2ba97
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x1f326e(%rip)   # 0x21ed00
jmp 0x2bbd4
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181b14(%rip), %rsi    # 0x1ad5ba
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2babf
movl $0x1, 0x1f3126(%rip)    # 0x21ebe0
jmp 0x2bbd2
movq 0x28(%rsp), %rax
movq (%rax), %rdi
leaq 0x181af7(%rip), %rsi    # 0x1ad5c5
callq 0x23ea0
cmpl $0x0, %eax
jne 0x2bbb0
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x8(%rsp)
leaq 0x1f3081(%rip), %rdi    # 0x21eb90
xorl %esi, %esi
callq 0x30360
movsd 0x8(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x10(%rsp)
leaq 0x1f303d(%rip), %rdi    # 0x21eb90
movl $0x1, %esi
callq 0x30360
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax)
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x23cd0
movsd %xmm0, 0x18(%rsp)
leaq 0x1f2ff6(%rip), %rdi    # 0x21eb90
movl $0x2, %esi
callq 0x30360
movsd 0x18(%rsp), %xmm0
movsd %xmm0, (%rax)
jmp 0x2bbd0
movq 0x28(%rsp), %rax
movq (%rax), %rsi
leaq 0x181a12(%rip), %rdi    # 0x1ad5d1
movb $0x0, %al
callq 0x1130a0
movl $0x1, %edi
callq 0x23c30
jmp 0x2bbd2
jmp 0x2bbd4
jmp 0x2bbd6
jmp 0x2bbd8
jmp 0x2bbda
jmp 0x2bbdc
jmp 0x2bbde
jmp 0x2bbe0
jmp 0x2bbe2
jmp 0x2bbe4
jmp 0x2bbe6
jmp 0x2bbe8
jmp 0x2bbea
jmp 0x2bbec
jmp 0x2bbee
jmp 0x2bbf0
jmp 0x2bbf2
jmp 0x2bbf4
jmp 0x2bbf6
jmp 0x2bbf8
jmp 0x2bbfa
jmp 0x2bbfc
jmp 0x2bbfe
jmp 0x2bc00
jmp 0x2bc02
jmp 0x2bc04
jmp 0x2bc06
jmp 0x2bc08
jmp 0x2bc0a
jmp 0x2bc0c
jmp 0x2bc0e
jmp 0x2bc10
jmp 0x2bc12
jmp 0x2bc14
jmp 0x2bc16
jmp 0x2bc18
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x2bcc4
cmpq $0x0, 0x1f2ffa(%rip)    # 0x21ec38
jne 0x2bc51
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f2fe9(%rip)    # 0x21ec38
jmp 0x2bcab
cmpq $0x0, 0x1f2fe7(%rip)    # 0x21ec40
jne 0x2bc6c
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f2fd6(%rip)    # 0x21ec40
jmp 0x2bca9
cmpq $0x0, 0x1f2f7c(%rip)    # 0x21ebf0
jne 0x2bc87
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x1f2f6b(%rip)    # 0x21ebf0
jmp 0x2bca7
movq 0x28(%rsp), %rax
movq (%rax), %rsi
leaq 0x18193b(%rip), %rdi    # 0x1ad5d1
movb $0x0, %al
callq 0x1130a0
movl $0x1, %edi
callq 0x23c30
jmp 0x2bca9
jmp 0x2bcab
movq 0x28(%rsp), %rax
addq $0x8, %rax
movq %rax, 0x28(%rsp)
movl 0x30(%rsp), %eax
addl $-0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x2b2ae
cmpl $0x0, 0x24(%rsp)
jne 0x2bd60
movl $0x1, 0x1f2f56(%rip)    # 0x21ec34
movl $0x1, 0x1f2f00(%rip)    # 0x21ebe8
movl $0x1, 0x1f2f3e(%rip)    # 0x21ec30
movl $0x1, 0x1f2f28(%rip)    # 0x21ec24
movl $0x1, 0x1f2efa(%rip)    # 0x21ec00
movl $0x1, 0x1f2ef4(%rip)    # 0x21ec04
movl $0x1, 0x1f2eee(%rip)    # 0x21ec08
movl $0x1, 0x1f2ee8(%rip)    # 0x21ec0c
movl $0x1, 0x1f2ee2(%rip)    # 0x21ec10
movl $0x1, 0x1f2edc(%rip)    # 0x21ec14
movl $0x1, 0x1f2ed6(%rip)    # 0x21ec18
movl $0x1, 0x1f2edc(%rip)    # 0x21ec28
movl $0x1, 0x1f2ec6(%rip)    # 0x21ec1c
movl $0x1, 0x1f2ecc(%rip)    # 0x21ec2c
cmpq $0x0, 0x1f2ed0(%rip)    # 0x21ec38
je 0x2bd7e
cmpq $0x0, 0x1f2ece(%rip)    # 0x21ec40
je 0x2bd7e
cmpq $0x0, 0x1f2e74(%rip)    # 0x21ebf0
jne 0x2bd96
leaq 0x181869(%rip), %rdi    # 0x1ad5ee
movb $0x0, %al
callq 0x1130a0
movl $0x0, 0x34(%rsp)
jmp 0x2bd9e
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw (%rax,%rax)