// File: knei-knurow[P]lidar-visualizations/src/app.cpp
// Function: App::parse_args(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
bool App::parse_args(std::vector<std::string>& args) {
  // Print help
  if (check_arg(args, "-h", "--help")) {
    print_help();
    return false;
  }

  // Input RPLIDAR port name
  std::string rplidar_port = get_arg_value(args, "-p", "--port");

  // Input cloud filename
  std::string cloud_filename = get_arg_value(args, "-f", "--file");

  // Input cloud series filename
  std::string cloud_series_filename = get_arg_value(args, "-fs", "--file-series");

  // Output directory
  std::string output_dir = get_arg_value(args, "-o", "--output-dir", ".");

#ifdef USING_RPLIDAR
  // RPLIDAR mode
  std::string rplidar_mode_val = get_arg_value(args, "-m", "--rplidar-mode",
                                               std::to_string(int(RPLIDARScanModes::SENSITIVITY)));
  RPLIDARScanModes rplidar_mode;
  if (rplidar_mode_val == std::to_string(int(RPLIDARScanModes::STANDARD))) {
    rplidar_mode = RPLIDARScanModes::STANDARD;
  } else if (rplidar_mode_val == std::to_string(int(RPLIDARScanModes::EXPRESS))) {
    rplidar_mode = RPLIDARScanModes::EXPRESS;
  } else if (rplidar_mode_val == std::to_string(int(RPLIDARScanModes::BOOST))) {
    rplidar_mode = RPLIDARScanModes::BOOST;
  } else if (rplidar_mode_val == std::to_string(int(RPLIDARScanModes::SENSITIVITY))) {
    rplidar_mode = RPLIDARScanModes::SENSITIVITY;
  } else if (rplidar_mode_val == std::to_string(int(RPLIDARScanModes::STABILITY))) {
    rplidar_mode = RPLIDARScanModes::STABILITY;
  } else {
    std::cerr << "ERROR: Invalid RPLIDAR mode id." << std::endl;
    return false;
  }

  // RPLIDAR RPM
  int rplidar_rpm = 660;
  std::stringstream(get_arg_value(args, "-r", "--rpm")) >> rplidar_rpm;
#endif

  // GUI
  std::string gui_type_val = get_arg_value(args, "-g", "--gui", std::to_string(int(GUIType::SFML)));
  GUIType gui_type;
  if (gui_type_val == std::to_string(int(GUIType::TERMINAL))) {
    gui_type = GUIType::TERMINAL;
  }
#ifdef USING_SFML
  else if (gui_type_val == std::to_string(int(GUIType::SFML))) {
    gui_type = GUIType::SFML;
  }
#endif
  else {
    std::cerr << "ERROR: Invalid GUI id." << std::endl;
    return false;
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x610, %rsp            # imm = 0x610
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x4f0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x4e8(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x4e0(%rbp)
callq 0x4620
movq -0x4e0(%rbp), %rdx
leaq 0xd846(%rip), %rsi      # 0x1337d
leaq -0x38(%rbp), %rdi
callq 0x4ae0
jmp 0x5b42
leaq -0x71(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0x4620
movq -0x4f8(%rbp), %rdx
leaq 0xd820(%rip), %rsi      # 0x13380
leaq -0x70(%rbp), %rdi
callq 0x4ae0
jmp 0x5b6b
movq -0x4e8(%rbp), %rsi
movq -0x4f0(%rbp), %rdi
leaq -0x38(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0x6e60
movb %al, -0x4f9(%rbp)
jmp 0x5b8e
leaq -0x70(%rbp), %rdi
callq 0x4230
leaq -0x71(%rbp), %rdi
callq 0x43c0
leaq -0x38(%rbp), %rdi
callq 0x4230
leaq -0x39(%rbp), %rdi
callq 0x43c0
movb -0x4f9(%rbp), %al
testb $0x1, %al
jne 0x5bbe
jmp 0x5c24
movq -0x4f0(%rbp), %rdi
callq 0x6cb0
movb $0x0, -0x1(%rbp)
jmp 0x6af1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5c16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5c04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4230
leaq -0x71(%rbp), %rdi
callq 0x43c0
leaq -0x38(%rbp), %rdi
callq 0x4230
leaq -0x39(%rbp), %rdi
callq 0x43c0
jmp 0x6aff
movq -0x18(%rbp), %rax
movq %rax, -0x510(%rbp)
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x508(%rbp)
callq 0x4620
movq -0x508(%rbp), %rdx
leaq 0xd737(%rip), %rsi      # 0x13387
leaq -0xb8(%rbp), %rdi
callq 0x4ae0
jmp 0x5c5e
leaq -0xe1(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0x4620
movq -0x518(%rbp), %rdx
leaq 0xd70b(%rip), %rsi      # 0x1338a
leaq -0xe0(%rbp), %rdi
callq 0x4ae0
jmp 0x5c8d
leaq -0x109(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x4620
movq -0x520(%rbp), %rdx
leaq 0xdc4d(%rip), %rsi      # 0x138fb
leaq -0x108(%rbp), %rdi
callq 0x4ae0
jmp 0x5cbc
movq -0x510(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rcx
leaq -0xe0(%rbp), %r8
leaq -0x108(%rbp), %r9
callq 0x70d0
jmp 0x5ced
leaq -0x108(%rbp), %rdi
callq 0x4230
leaq -0x109(%rbp), %rdi
callq 0x43c0
leaq -0xe0(%rbp), %rdi
callq 0x4230
leaq -0xe1(%rbp), %rdi
callq 0x43c0
leaq -0xb8(%rbp), %rdi
callq 0x4230
leaq -0xb9(%rbp), %rdi
callq 0x43c0
movq -0x18(%rbp), %rax
movq %rax, -0x530(%rbp)
leaq -0x151(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x4620
movq -0x528(%rbp), %rdx
leaq 0xd630(%rip), %rsi      # 0x13391
leaq -0x150(%rbp), %rdi
callq 0x4ae0
jmp 0x5d6f
leaq -0x179(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x4620
movq -0x538(%rbp), %rdx
leaq 0xd604(%rip), %rsi      # 0x13394
leaq -0x178(%rbp), %rdi
callq 0x4ae0
jmp 0x5d9e
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x4620
movq -0x540(%rbp), %rdx
leaq 0xdb3c(%rip), %rsi      # 0x138fb
leaq -0x1a0(%rbp), %rdi
callq 0x4ae0
jmp 0x5dcd
movq -0x530(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rcx
leaq -0x178(%rbp), %r8
leaq -0x1a0(%rbp), %r9
callq 0x70d0
jmp 0x5dfe
leaq -0x1a0(%rbp), %rdi
callq 0x4230
leaq -0x1a1(%rbp), %rdi
callq 0x43c0
leaq -0x178(%rbp), %rdi
callq 0x4230
leaq -0x179(%rbp), %rdi
callq 0x43c0
leaq -0x150(%rbp), %rdi
callq 0x4230
leaq -0x151(%rbp), %rdi
callq 0x43c0
movq -0x18(%rbp), %rax
movq %rax, -0x550(%rbp)
leaq -0x1e9(%rbp), %rdi
movq %rdi, -0x548(%rbp)
callq 0x4620
movq -0x548(%rbp), %rdx
leaq 0xd529(%rip), %rsi      # 0x1339b
leaq -0x1e8(%rbp), %rdi
callq 0x4ae0
jmp 0x5e80
leaq -0x211(%rbp), %rdi
movq %rdi, -0x558(%rbp)
callq 0x4620
movq -0x558(%rbp), %rdx
leaq 0xd4fe(%rip), %rsi      # 0x1339f
leaq -0x210(%rbp), %rdi
callq 0x4ae0
jmp 0x5eaf
leaq -0x239(%rbp), %rdi
movq %rdi, -0x560(%rbp)
callq 0x4620
movq -0x560(%rbp), %rdx
leaq 0xda2b(%rip), %rsi      # 0x138fb
leaq -0x238(%rbp), %rdi
callq 0x4ae0
jmp 0x5ede
movq -0x550(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq -0x1e8(%rbp), %rcx
leaq -0x210(%rbp), %r8
leaq -0x238(%rbp), %r9
callq 0x70d0
jmp 0x5f0f
leaq -0x238(%rbp), %rdi
callq 0x4230
leaq -0x239(%rbp), %rdi
callq 0x43c0
leaq -0x210(%rbp), %rdi
callq 0x4230
leaq -0x211(%rbp), %rdi
callq 0x43c0
leaq -0x1e8(%rbp), %rdi
callq 0x4230
leaq -0x1e9(%rbp), %rdi
callq 0x43c0
movq -0x18(%rbp), %rax
movq %rax, -0x570(%rbp)
leaq -0x281(%rbp), %rdi
movq %rdi, -0x568(%rbp)
callq 0x4620
movq -0x568(%rbp), %rdx
leaq 0xd42a(%rip), %rsi      # 0x133ad
leaq -0x280(%rbp), %rdi
callq 0x4ae0
jmp 0x5f91
leaq -0x2a9(%rbp), %rdi
movq %rdi, -0x578(%rbp)
callq 0x4620
movq -0x578(%rbp), %rdx
leaq 0xd3fe(%rip), %rsi      # 0x133b0
leaq -0x2a8(%rbp), %rdi
callq 0x4ae0
jmp 0x5fc0
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x4620
movq -0x580(%rbp), %rdx
leaq 0xd7d6(%rip), %rsi      # 0x137b7
leaq -0x2d0(%rbp), %rdi
callq 0x4ae0
jmp 0x5fef
movq -0x570(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x260(%rbp), %rdi
leaq -0x280(%rbp), %rcx
leaq -0x2a8(%rbp), %r8
leaq -0x2d0(%rbp), %r9
callq 0x70d0
jmp 0x6020
leaq -0x2d0(%rbp), %rdi
callq 0x4230
leaq -0x2d1(%rbp), %rdi
callq 0x43c0
leaq -0x2a8(%rbp), %rdi
callq 0x4230
leaq -0x2a9(%rbp), %rdi
callq 0x43c0
leaq -0x280(%rbp), %rdi
callq 0x4230
leaq -0x281(%rbp), %rdi
callq 0x43c0
movq -0x18(%rbp), %rax
movq %rax, -0x590(%rbp)
leaq -0x319(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x4620
movq -0x588(%rbp), %rdx
leaq 0xd329(%rip), %rsi      # 0x133bd
leaq -0x318(%rbp), %rdi
callq 0x4ae0
jmp 0x60a2
leaq -0x341(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x4620
movq -0x598(%rbp), %rdx
leaq 0xd2fd(%rip), %rsi      # 0x133c0
leaq -0x340(%rbp), %rdi
callq 0x4ae0
jmp 0x60d1
leaq -0x368(%rbp), %rdi
movl $0x1, %esi
callq 0x8380
jmp 0x60e4
movq -0x590(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
leaq -0x318(%rbp), %rcx
leaq -0x340(%rbp), %r8
leaq -0x368(%rbp), %r9
callq 0x70d0
jmp 0x6115
leaq -0x368(%rbp), %rdi
callq 0x4230
leaq -0x340(%rbp), %rdi
callq 0x4230
leaq -0x341(%rbp), %rdi
callq 0x43c0
leaq -0x318(%rbp), %rdi
callq 0x4230
leaq -0x319(%rbp), %rdi
callq 0x43c0
leaq -0x390(%rbp), %rdi
xorl %esi, %esi
callq 0x8380
jmp 0x6161
leaq -0x2f8(%rbp), %rdi
leaq -0x390(%rbp), %rsi
callq 0x84a0
movb %al, -0x599(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x4230
movb -0x599(%rbp), %al
testb $0x1, %al
jne 0x6195
jmp 0x6438
movl $0x0, -0x36c(%rbp)
jmp 0x647c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6216
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x61e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x4230
leaq -0x109(%rbp), %rdi
callq 0x43c0
leaq -0xe0(%rbp), %rdi
callq 0x4230
leaq -0xe1(%rbp), %rdi
callq 0x43c0
leaq -0xb8(%rbp), %rdi
callq 0x4230
leaq -0xb9(%rbp), %rdi
callq 0x43c0
jmp 0x6aff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6299
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6281
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6269
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x4230
leaq -0x1a1(%rbp), %rdi
callq 0x43c0
leaq -0x178(%rbp), %rdi
callq 0x4230
leaq -0x179(%rbp), %rdi
callq 0x43c0
leaq -0x150(%rbp), %rdi
callq 0x4230
leaq -0x151(%rbp), %rdi
callq 0x43c0
jmp 0x6ae3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x631c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6304
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x62ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4230
leaq -0x239(%rbp), %rdi
callq 0x43c0
leaq -0x210(%rbp), %rdi
callq 0x4230
leaq -0x211(%rbp), %rdi
callq 0x43c0
leaq -0x1e8(%rbp), %rdi
callq 0x4230
leaq -0x1e9(%rbp), %rdi
callq 0x43c0
jmp 0x6ad7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x639f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x636f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x4230
leaq -0x2d1(%rbp), %rdi
callq 0x43c0
leaq -0x2a8(%rbp), %rdi
callq 0x4230
leaq -0x2a9(%rbp), %rdi
callq 0x43c0
leaq -0x280(%rbp), %rdi
callq 0x4230
leaq -0x281(%rbp), %rdi
callq 0x43c0
jmp 0x6acb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6416
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x63f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x4230
leaq -0x340(%rbp), %rdi
callq 0x4230
leaq -0x341(%rbp), %rdi
callq 0x43c0
leaq -0x318(%rbp), %rdi
callq 0x4230
leaq -0x319(%rbp), %rdi
callq 0x43c0
jmp 0x6abf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6ab3
movq 0x16bb1(%rip), %rdi     # 0x1cff0
leaq 0xcf80(%rip), %rsi      # 0x133c6
callq 0x4360
movq %rax, -0x5a8(%rbp)
jmp 0x6454
movq -0x5a8(%rbp), %rdi
movq 0x16b5e(%rip), %rsi     # 0x1cfc0
callq 0x43a0
jmp 0x6469
movb $0x0, -0x1(%rbp)
movl $0x1, -0x394(%rbp)
jmp 0x6a75
movq -0x18(%rbp), %rax
movq %rax, -0x5b8(%rbp)
leaq -0x3d9(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x4620
movq -0x5b0(%rbp), %rdx
leaq 0xcf35(%rip), %rsi      # 0x133dd
leaq -0x3d8(%rbp), %rdi
callq 0x4ae0
jmp 0x64b6
leaq -0x401(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x4620
movq -0x5c0(%rbp), %rdx
leaq 0xcf09(%rip), %rsi      # 0x133e0
leaq -0x400(%rbp), %rdi
callq 0x4ae0
jmp 0x64e5
leaq -0x428(%rbp), %rdi
xorl %esi, %esi
callq 0x8380
jmp 0x64f5
movq -0x5b8(%rbp), %rdx
movq -0x4f0(%rbp), %rsi
leaq -0x3b8(%rbp), %rdi
leaq -0x3d8(%rbp), %rcx
leaq -0x400(%rbp), %r8
leaq -0x428(%rbp), %r9
callq 0x70d0
jmp 0x6526
leaq -0x428(%rbp), %rdi
callq 0x4230
leaq -0x400(%rbp), %rdi
callq 0x4230
leaq -0x401(%rbp), %rdi
callq 0x43c0
leaq -0x3d8(%rbp), %rdi
callq 0x4230
leaq -0x3d9(%rbp), %rdi
callq 0x43c0
leaq -0x450(%rbp), %rdi
xorl %esi, %esi
callq 0x8380
jmp 0x6572
leaq -0x3b8(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x84a0
movb %al, -0x5c1(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x4230
movb -0x5c1(%rbp), %al
testb $0x1, %al
jne 0x65a6
jmp 0x6649
movl $0x0, -0x42c(%rbp)
jmp 0x6734
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x661b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6603
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x65f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x4230
leaq -0x400(%rbp), %rdi
callq 0x4230
leaq -0x401(%rbp), %rdi
callq 0x43c0
leaq -0x3d8(%rbp), %rdi
callq 0x4230
leaq -0x3d9(%rbp), %rdi
callq 0x43c0
jmp 0x6ab3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x4230
jmp 0x6ab3
leaq -0x470(%rbp), %rdi
movl $0x1, %esi
callq 0x8380
jmp 0x665c
leaq -0x3b8(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x84a0
movb %al, -0x5c2(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x4230
movb -0x5c2(%rbp), %al
testb $0x1, %al
jne 0x668d
jmp 0x669c
movl $0x1, -0x42c(%rbp)
jmp 0x6732
leaq -0x490(%rbp), %rdi
movl $0x2, %esi
callq 0x8380
jmp 0x66af
leaq -0x3b8(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x84a0
movb %al, -0x5c3(%rbp)
leaq -0x490(%rbp), %rdi
callq 0x4230
movb -0x5c3(%rbp), %al
testb $0x1, %al
jne 0x66e0
jmp 0x66ec
movl $0x2, -0x42c(%rbp)
jmp 0x6730
movq 0x168fd(%rip), %rdi     # 0x1cff0
leaq 0xccf1(%rip), %rsi      # 0x133eb
callq 0x4360
movq %rax, -0x5d0(%rbp)
jmp 0x6708
movq -0x5d0(%rbp), %rdi
movq 0x168aa(%rip), %rsi     # 0x1cfc0
callq 0x43a0
jmp 0x671d
movb $0x0, -0x1(%rbp)
movl $0x1, -0x394(%rbp)
jmp 0x6a69
jmp 0x6732
jmp 0x6734
leaq -0x1c8(%rbp), %rdi
callq 0x45a0
testb $0x1, %al
jne 0x67d3
leaq -0x498(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x8530
jmp 0x675d
movq -0x4f0(%rbp), %rdi
addq $0x8, %rdi
movq %rdi, -0x5e0(%rbp)
leaq -0x498(%rbp), %rsi
movq %rsi, -0x5e8(%rbp)
callq 0x85b0
movq -0x5e8(%rbp), %rdi
callq 0x8610
movq -0x5e0(%rbp), %rdi
callq 0x80d0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movb %al, -0x5d1(%rbp)
jmp 0x67ae
movb -0x5d1(%rbp), %al
testb $0x1, %al
jne 0x67ce
jmp 0x67ba
movq -0x4f0(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x8670
jmp 0x6889
leaq -0x130(%rbp), %rdi
callq 0x45a0
testb $0x1, %al
jne 0x6887
movabsq $0x3fc999999999999a, %rax # imm = 0x3FC999999999999A
movq %rax, -0x4a8(%rbp)
leaq -0x4a0(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x4a8(%rbp), %rdx
callq 0x86a0
jmp 0x6814
movq -0x4f0(%rbp), %rdi
addq $0x8, %rdi
movq %rdi, -0x5f8(%rbp)
leaq -0x4a0(%rbp), %rsi
movq %rsi, -0x600(%rbp)
callq 0x8730
movq -0x600(%rbp), %rdi
callq 0x8790
movq -0x5f8(%rbp), %rdi
callq 0x80d0
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movb %al, -0x5e9(%rbp)
jmp 0x6865
movb -0x5e9(%rbp), %al
testb $0x1, %al
jne 0x6885
jmp 0x6871
movq -0x4f0(%rbp), %rdi
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x8670
jmp 0x6887
jmp 0x6889
movq -0x4f0(%rbp), %rdi
addq $0x8, %rdi
callq 0x80a0
testb $0x1, %al
jne 0x68e6
movq -0x4f0(%rbp), %rdi
addq $0x18, %rdi
callq 0x8140
testb $0x1, %al
jne 0x68e6
movq -0x4f0(%rbp), %rdi
addq $0x10, %rdi
callq 0x80f0
testb $0x1, %al
jne 0x68e6
movq -0x4f0(%rbp), %rdi
callq 0x6cb0
jmp 0x68d3
movb $0x0, -0x1(%rbp)
movl $0x1, -0x394(%rbp)
jmp 0x6a69
cmpl $0x0, -0x36c(%rbp)
jne 0x6920
leaq -0x4b0(%rbp), %rdi
callq 0x87f0
jmp 0x68fd
movq -0x4f0(%rbp), %rdi
addq $0x18, %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x8870
leaq -0x4b0(%rbp), %rdi
callq 0x88d0
cmpl $0x1, -0x42c(%rbp)
jne 0x6961
leaq -0x4b8(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x8930
jmp 0x693e
movq -0x4f0(%rbp), %rdi
addq $0x10, %rdi
leaq -0x4b8(%rbp), %rsi
callq 0x89b0
leaq -0x4b8(%rbp), %rdi
callq 0x8a10
movq -0x18(%rbp), %rdi
callq 0x8a70
testb $0x1, %al
jne 0x6a5b
movq 0x16677(%rip), %rdi     # 0x1cff0
leaq 0xca87(%rip), %rsi      # 0x13407
callq 0x4360
jmp 0x6987
movq -0x18(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x4c0(%rbp), %rdi
callq 0x5530
movq %rax, -0x4c8(%rbp)
movq -0x4c0(%rbp), %rdi
callq 0x5370
movq %rax, -0x4d0(%rbp)
leaq -0x4c8(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
callq 0x8ab0
testb $0x1, %al
jne 0x69d1
jmp 0x6a44
leaq -0x4c8(%rbp), %rdi
callq 0x5a20
movq %rax, -0x4d8(%rbp)
movq 0x16605(%rip), %rdi     # 0x1cff0
leaq 0xca3e(%rip), %rsi      # 0x13430
callq 0x4360
movq %rax, -0x608(%rbp)
jmp 0x6a00
movq -0x608(%rbp), %rdi
movq -0x4d8(%rbp), %rsi
callq 0x4330
movq %rax, -0x610(%rbp)
jmp 0x6a1c
movq -0x610(%rbp), %rdi
leaq 0xca08(%rip), %rsi      # 0x13432
callq 0x4360
jmp 0x6a31
jmp 0x6a33
leaq -0x4c8(%rbp), %rdi
callq 0x8af0
jmp 0x69b8
movq 0x165a5(%rip), %rdi     # 0x1cff0
movq 0x1656e(%rip), %rsi     # 0x1cfc0
callq 0x43a0
jmp 0x6a59
jmp 0x6a5b
movb $0x1, -0x1(%rbp)
movl $0x1, -0x394(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x4230
leaq -0x2f8(%rbp), %rdi
callq 0x4230
leaq -0x260(%rbp), %rdi
callq 0x4230
leaq -0x1c8(%rbp), %rdi
callq 0x4230
leaq -0x130(%rbp), %rdi
callq 0x4230
leaq -0x98(%rbp), %rdi
callq 0x4230
jmp 0x6af1
leaq -0x2f8(%rbp), %rdi
callq 0x4230
leaq -0x260(%rbp), %rdi
callq 0x4230
leaq -0x1c8(%rbp), %rdi
callq 0x4230
leaq -0x130(%rbp), %rdi
callq 0x4230
leaq -0x98(%rbp), %rdi
callq 0x4230
jmp 0x6aff
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x610, %rsp            # imm = 0x610
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x4610
nopl (%rax,%rax)