// File: /workspace/github_cpp_makefile_star2_O1/harry830622[P]floorplanner/src/main.cpp
// Function: main
int main(int argc, char* argv[]) {
  po::options_description options("Options");

  // clang-format off
  options.add_options()
    ("help,h", "Print help messages")
    ("verbose,v", "Print detail informations during floorplanning")
    ("seed", po::value<long>()->value_name("NUM"), "Seed for random number generator")
    ("sa", po::value<string>()->value_name("MODE")->default_value("classical"), "SA mode: classical, fast, both or fast-5")
    ("draw-all", po::value<string>()->value_name("FILE"), "Draw all floorplans")
    ("draw-only-best", po::value<string>()->value_name("FILE"), "Draw only best floorplan")
    ("alpha", po::value<double>()->value_name("NUM")->required(), "Alpha")
    ("block-input", po::value<string>()->value_name("FILE")->required(), "Block input")
    ("net-input", po::value<string>()->value_name("FILE")->required(), "Net input")
    ("output", po::value<string>()->value_name("FILE")->required(), "Output")
    ;
  // clang-format on

  po::positional_options_description positional_options;
  positional_options.add("alpha", 1);
  positional_options.add("block-input", 1);
  positional_options.add("net-input", 1);
  positional_options.add("output", 1);

  po::variables_map arguments;

  po::store(po::command_line_parser(argc, argv)
                .options(options)
                .positional(positional_options)
                .run(),
            arguments);

  if (arguments.count("help") || argc < 5) {
    cout << "Usage:" << endl;
    cout << "  " << argv[0] << " [--verbose]"
         << " [--seed <number>] [--sa <classical|fast|both|fast-5>]"
         << " [--draw-all <file>] [--draw-only-best <file>]"
         << " <alpha> <block-input> <net-input> <output>" << endl;
    cout << options;
    return 0;
  }

  const double alpha = arguments["alpha"].as<double>();
  if (alpha < 0 || alpha > 1) {
    cout << "Error: alpha should range between 0 and 1" << endl;
    return 1;
  }

  const long seed =
      arguments.count("seed") ? arguments["seed"].as<long>() : time(NULL);
  srand(seed);

  const string block_input_name = arguments["block-input"].as<string>();
  const string net_input_name = arguments["net-input"].as<string>();

  ifstream block_input(block_input_name);
  ifstream net_input(net_input_name);

  clock_t time_begin = clock();

  Database database(block_input, net_input);
  /* database.Print(); */

  const string sa_mode = arguments["sa"].as<string>();
  const bool is_verbose = arguments.count("verbose");
  const bool is_drawing = arguments.count("draw-all");

  Floorplanner floorplanner(database, alpha, sa_mode, is_verbose, is_drawing);
  floorplanner.Run();

  double runtime = (clock() - time_begin) / static_cast<double>(CLOCKS_PER_SEC);

  const Floorplan& best_floorplan = floorplanner.best_floorplan();
  const double outline_width = database.outline_width();
  const double outline_height = database.outline_height();
  const double best_width = best_floorplan.width();
  const double best_height = best_floorplan.height();
  const double best_area = best_floorplan.area();
  const double best_wirelength = best_floorplan.wirelength();
  const double best_cost = alpha * best_area + (1 - alpha) * best_wirelength;

  cout << endl;
  cout << "============================= SUMMARY =============================="
       << endl;
  cout << "outline width:\t" << outline_width << "\t\toutline height:\t\t"
       << outline_height << endl;
  cout << "best width:\t" << best_width << "\t\tbest height:\t\t" << best_height
       << endl;
  cout << "best area:\t" << best_area << "\tbest wirelength:\t"
       << best_wirelength << endl;
  cout << "alpha:\t\t" << alpha << "\t\tbest cost:\t\t" << best_cost << endl;
  cout << "seed: \t\t" << seed << "\truntime:\t\t" << runtime << endl;

  ofstream output(arguments["output"].as<string>());
  output << best_cost << endl;
  output << best_wirelength << endl;
  output << best_area << endl;
  output << best_width << " " << best_height << endl;
  output << runtime << endl;
  for (int i = 0; i < database.num_macros(); ++i) {
    const int macro_id = i;
    const string macro_name = database.macro(macro_id).name();
    auto bounding_box = best_floorplan.macro_bounding_box(macro_id);
    const Point& lower_left = bounding_box.first;
    const Point& upper_right = bounding_box.second;
    output << macro_name << " " << lower_left.x() << " " << lower_left.y()
           << " " << upper_right.x() << " " << upper_right.y() << endl;
  }

  if (is_drawing) {
    ofstream drawing_output(arguments["draw-all"].as<string>());
    Json drawing = floorplanner.drawing();
    fs::path block_input_path(block_input_name);
    drawing["benchmark"] = Json::object();
    drawing["benchmark"]["name"] = block_input_path.stem().string();
    ifstream blockInput(block_input_name);
    ifstream netInput(net_input_name);
    drawing["benchmark"]["blockInput"] = string(
        istreambuf_iterator<char>(blockInput), istreambuf_iterator<char>());
    drawing["benchmark"]["netInput"] = string(
        istreambuf_iterator<char>(netInput), istreambuf_iterator<char>());
    drawing["alpha"] = alpha;
    drawing["outline"] = {{"width", database.outline_width()},
                          {"height", database.outline_height()}};
    drawing["seed"] = seed;
    drawing["bestFloorplan"] = best_floorplan.drawing();
    drawing["runtime"] = runtime;
    drawing_output << drawing;
  }

  const bool is_drawing_only_best = arguments.count("draw-only-best");

  if (is_drawing_only_best) {
    ofstream drawing_output(arguments["draw-only-best"].as<string>());
    Json drawing = Json::object();
    fs::path block_input_path(block_input_name);
    drawing["benchmark"] = Json::object();
    drawing["benchmark"]["name"] = block_input_path.stem().string();
    ifstream blockInput(block_input_name);
    ifstream netInput(net_input_name);
    drawing["benchmark"]["blockInput"] = string(
        istreambuf_iterator<char>(blockInput), istreambuf_iterator<char>());
    drawing["benchmark"]["netInput"] = string(
        istreambuf_iterator<char>(netInput), istreambuf_iterator<char>());
    drawing["alpha"] = alpha;
    drawing["outline"] = {{"width", database.outline_width()},
                          {"height", database.outline_height()}};
    drawing["seed"] = seed;
    drawing["bestFloorplan"] = Json::object();
    Json& best_floorplan_drawing = drawing["bestFloorplan"];
    best_floorplan_drawing["macros"] = Json::array();
    for (int i = 0; i < database.num_macros(); ++i) {
      const int macro_id = i;
      const Macro& macro = database.macro(macro_id);
      const auto& macro_bounding_box =
          best_floorplan.macro_bounding_box(macro_id);
      const Point& macro_lower_left = macro_bounding_box.first;
      const Point& macro_upper_right = macro_bounding_box.second;
      const string& macro_name = macro.name();
      best_floorplan_drawing["macros"].push_back(
          {{"name", macro_name},
           {"lowerLeft",
            {{"x", macro_lower_left.x()}, {"y", macro_lower_left.y()}}},
           {"upperRight",
            {{"x", macro_upper_right.x()}, {"y", macro_upper_right.y()}}}});
    }
    best_floorplan_drawing["width"] = best_floorplan.width();
    best_floorplan_drawing["height"] = best_floorplan.height();
    best_floorplan_drawing["area"] = best_floorplan.area();
    best_floorplan_drawing["wirelength"] = best_floorplan.wirelength();
    drawing["runtime"] = runtime;
    drawing_output << drawing;
  }

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1338, %rsp           # imm = 0x1338
movq %rsi, %r13
movl %edi, %r12d
leaq 0x808(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xc4c6(%rip), %rsi      # 0x21e4c
leaq 0xc4c6(%rip), %rdx      # 0x21e53
leaq 0x7f8(%rsp), %rdi
callq 0x9a8c
movq 0x175c7(%rip), %rax     # 0x2cf68
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq 0x778(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x64c0
movq 0x7f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x159d9
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x778(%rsp), %rdi
callq 0x6420
leaq 0x518(%rsp), %rdi
movq %rax, (%rdi)
leaq 0xc45c(%rip), %rsi      # 0x21e54
leaq 0xc45c(%rip), %rdx      # 0x21e5b
callq 0x6690
leaq 0xc464(%rip), %rsi      # 0x21e6f
leaq 0xc467(%rip), %rdx      # 0x21e79
movq %rax, %rdi
callq 0x6690
movq %rax, %r14
xorl %edi, %edi
callq 0x19f78
movq %rax, %r15
leaq 0x7f8(%rsp), %rdi
movq %rbx, (%rdi)
leaq 0xc474(%rip), %rsi      # 0x21ead
leaq 0xc470(%rip), %rdx      # 0x21eb0
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x61d0
leaq 0xc44b(%rip), %rsi      # 0x21ea8
leaq 0xc44d(%rip), %rcx      # 0x21eb1
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0x1140(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xc446(%rip), %rsi      # 0x21ed5
leaq 0xc443(%rip), %rdx      # 0x21ed9
leaq 0x1130(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0x1130(%rsp), %rsi
callq 0x61d0
leaq 0x280(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xbc79(%rip), %rsi      # 0x21740
leaq 0xbc7b(%rip), %rdx      # 0x21749
leaq 0x270(%rsp), %rdi
callq 0x9a8c
leaq 0x270(%rsp), %rsi
movq %r15, %rdi
callq 0x1981e
leaq 0xc3e0(%rip), %rsi      # 0x21ed2
leaq 0xc3e1(%rip), %rcx      # 0x21eda
movq %r14, %rdi
movq %rax, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0xc10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xc3e8(%rip), %rsi      # 0x21f0c
leaq 0xc3e5(%rip), %rdx      # 0x21f10
leaq 0xc00(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0xc00(%rsp), %rsi
callq 0x61d0
leaq 0xc3b3(%rip), %rsi      # 0x21f03
leaq 0xc3ba(%rip), %rcx      # 0x21f11
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0xf40(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xc38a(%rip), %rsi      # 0x21f0c
leaq 0xc387(%rip), %rdx      # 0x21f10
leaq 0xf30(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0xf30(%rsp), %rsi
callq 0x61d0
leaq 0xc377(%rip), %rsi      # 0x21f25
leaq 0xc37f(%rip), %rcx      # 0x21f34
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1d639
movq %rax, %r15
leaq 0xa10(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xc2cd(%rip), %rsi      # 0x21ead
leaq 0xc2c9(%rip), %rdx      # 0x21eb0
leaq 0xa00(%rsp), %rdi
callq 0x9a8c
movl %r12d, (%rsp)
leaq 0x18(%r15), %rdi
leaq 0xa00(%rsp), %rsi
callq 0x61d0
movb $0x1, 0x8c(%r15)
leaq 0xc335(%rip), %rsi      # 0x21f4d
leaq 0xc334(%rip), %rcx      # 0x21f53
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0xe18(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xc2c2(%rip), %rsi      # 0x21f0c
leaq 0xc2bf(%rip), %rdx      # 0x21f10
leaq 0xe08(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0xe08(%rsp), %rsi
callq 0x61d0
movb $0x1, 0x8c(%r15)
leaq 0xc2db(%rip), %rsi      # 0x21f59
leaq 0xc2e0(%rip), %rcx      # 0x21f65
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0x6d0(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xc25b(%rip), %rsi      # 0x21f0c
leaq 0xc258(%rip), %rdx      # 0x21f10
leaq 0x6c0(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0x6c0(%rsp), %rsi
callq 0x61d0
movb $0x1, 0x8c(%r15)
leaq 0xc28c(%rip), %rsi      # 0x21f71
leaq 0xc28f(%rip), %rcx      # 0x21f7b
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq %rax, %r14
xorl %edi, %edi
callq 0x1cbef
movq %rax, %r15
leaq 0x488(%rsp), %rbp
movq %rbp, -0x10(%rbp)
leaq 0xc1f5(%rip), %rsi      # 0x21f0c
leaq 0xc1f2(%rip), %rdx      # 0x21f10
leaq 0x478(%rsp), %rdi
callq 0x9a8c
leaq 0x18(%r15), %rdi
leaq 0x478(%rsp), %rsi
callq 0x61d0
movb $0x1, 0x8c(%r15)
leaq 0xc23a(%rip), %rsi      # 0x21f85
leaq 0xc23a(%rip), %rcx      # 0x21f8c
movq %r14, %rdi
movq %r15, %rdx
callq 0x66e0
movq 0x478(%rsp), %rdi
cmpq %rbp, %rdi
je 0x15d7a
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x6c0(%rsp), %rdi
cmpq %r12, %rdi
leaq 0x808(%rsp), %r15
je 0x15d9f
movq 0x6d0(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xe08(%rsp), %rdi
cmpq %rbx, %rdi
je 0x15dbc
movq 0xe18(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xa00(%rsp), %rdi
leaq 0xa10(%rsp), %rax
cmpq %rax, %rdi
movl (%rsp), %ebx
je 0x15de4
movq 0xa10(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xf30(%rsp), %rdi
leaq 0xf40(%rsp), %rax
cmpq %rax, %rdi
je 0x15e09
movq 0xf40(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xc00(%rsp), %rdi
leaq 0xc10(%rsp), %rax
cmpq %rax, %rdi
je 0x15e2e
movq 0xc10(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x15e53
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x1130(%rsp), %rdi
leaq 0x1140(%rsp), %rax
cmpq %rax, %rdi
je 0x15e78
movq 0x1140(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15e95
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x518(%rsp), %rdi
callq 0x6480
leaq 0xc0a4(%rip), %rsi      # 0x21f4d
leaq 0x518(%rsp), %rdi
movl $0x1, %edx
callq 0x63b0
leaq 0xc097(%rip), %rsi      # 0x21f59
leaq 0x518(%rsp), %rdi
movl $0x1, %edx
callq 0x63b0
leaq 0xc096(%rip), %rsi      # 0x21f71
leaq 0x518(%rsp), %rdi
movl $0x1, %edx
callq 0x63b0
leaq 0xc091(%rip), %rsi      # 0x21f85
leaq 0x518(%rsp), %rdi
movl $0x1, %edx
callq 0x63b0
leaq 0x478(%rsp), %rdi
callq 0x6180
leaq 0x7f8(%rsp), %rdi
movl %ebx, %esi
movq %r13, %rdx
callq 0x198da
leaq 0x7f8(%rsp), %rdi
leaq 0x778(%rsp), %r14
movq %r14, %rsi
callq 0x6310
leaq 0x7f8(%rsp), %rdi
movq %r14, 0x70(%rdi)
leaq 0x518(%rsp), %rsi
callq 0x65e0
leaq 0x1130(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x1996e
leaq 0x1130(%rsp), %rdi
leaq 0x478(%rsp), %rsi
xorl %edx, %edx
callq 0x6630
leaq 0x1130(%rsp), %rdi
callq 0x19bfe
leaq 0x848(%rsp), %rdi
callq 0x19cb6
leaq 0x828(%rsp), %rdi
callq 0x19cee
leaq 0x7f8(%rsp), %r14
movq %r14, %rdi
callq 0x9694
movq %r15, (%r14)
leaq 0xbfd0(%rip), %rsi      # 0x21f93
leaq 0xbfcd(%rip), %rdx      # 0x21f97
leaq 0x7f8(%rsp), %rdi
callq 0x9a8c
leaq 0x488(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x1ec30
leaq 0x490(%rsp), %rcx
cmpq %rcx, %rax
setne %al
cmpl $0x5, %ebx
setl %bl
orb %al, %bl
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1601f
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
testb %bl, %bl
je 0x160b4
movq 0x16f72(%rip), %r14     # 0x2cfa0
leaq 0xbf63(%rip), %rsi      # 0x21f98
movl $0x6, %edx
movq %r14, %rdi
callq 0x63f0
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq 0x16f40(%rip), %rdi     # 0x2cfa0
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x16f2c(%rip), %r14     # 0x2cfa0
leaq 0xbf24(%rip), %rsi      # 0x21f9f
movl $0x2, %edx
movq %r14, %rdi
callq 0x63f0
movq (%r13), %rbx
testq %rbx, %rbx
je 0x16219
movq %rbx, %rdi
callq 0x6190
movq 0x16efc(%rip), %rdi     # 0x2cfa0
movq %rbx, %rsi
movq %rax, %rdx
callq 0x63f0
jmp 0x16231
leaq 0x7f8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xbe87(%rip), %rsi      # 0x21f4d
leaq 0xbe85(%rip), %rdx      # 0x21f52
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1ecb9
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x16115
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
xorpd %xmm0, %xmm0
movsd (%rsp), %xmm1
ucomisd %xmm1, %xmm0
ja 0x161c9
ucomisd 0xb5a8(%rip), %xmm1     # 0x216d8
ja 0x161c9
leaq 0x7f8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xbd60(%rip), %rsi      # 0x21ea8
leaq 0xbd5d(%rip), %rdx      # 0x21eac
callq 0x9a8c
leaq 0x7f8(%rsp), %rsi
leaq 0x488(%rsp), %rdi
callq 0x1ec30
movq %rax, %rbx
leaq 0x490(%rsp), %rax
cmpq %rax, %rbx
je 0x162da
leaq 0x260(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xbd18(%rip), %rsi      # 0x21ea8
leaq 0xbd15(%rip), %rdx      # 0x21eac
leaq 0x250(%rsp), %rdi
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f0ab
movq (%rax), %rax
jmp 0x162e1
movq 0x16dd0(%rip), %rbx     # 0x2cfa0
leaq 0xbe6a(%rip), %rsi      # 0x22041
movl $0x29, %edx
movq %rbx, %rdi
callq 0x63f0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq 0x16d9e(%rip), %rdi     # 0x2cfa0
callq 0x6030
movl $0x1, %ebx
movq %rax, %rdi
callq 0x6270
jmp 0x186ec
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x6600
movq 0x16d68(%rip), %rdi     # 0x2cfa0
leaq 0xbd63(%rip), %rsi      # 0x21fa2
movl $0xc, %edx
callq 0x63f0
movq 0x16d50(%rip), %rdi     # 0x2cfa0
leaq 0xbd58(%rip), %rsi      # 0x21faf
movl $0x36, %edx
callq 0x63f0
movq 0x16d38(%rip), %rdi     # 0x2cfa0
leaq 0xbd77(%rip), %rsi      # 0x21fe6
movl $0x2e, %edx
callq 0x63f0
movq 0x16d20(%rip), %rbx     # 0x2cfa0
leaq 0xbd8e(%rip), %rsi      # 0x22015
movl $0x2b, %edx
movq %rbx, %rdi
callq 0x63f0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq 0x16cee(%rip), %rdi     # 0x2cfa0
callq 0x6030
movq %rax, %rdi
callq 0x6270
xorl %ebx, %ebx
movq 0x16cd8(%rip), %rdi     # 0x2cfa0
leaq 0x778(%rsp), %rsi
callq 0x60b0
jmp 0x186ec
xorl %edi, %edi
callq 0x6340
movq %rax, 0x10(%rsp)
leaq 0x490(%rsp), %rax
cmpq %rax, %rbx
je 0x16314
leaq 0x260(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x16314
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x16331
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x10(%rsp), %rdi
callq 0x6360
leaq 0x7f8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xbc0c(%rip), %rsi      # 0x21f59
leaq 0xbc10(%rip), %rdx      # 0x21f64
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0x120(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x110(%rsp), %rdi
callq 0x9912
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x163b6
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x7f8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xbba9(%rip), %rsi      # 0x21f71
leaq 0xbbab(%rip), %rdx      # 0x21f7a
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0x1e0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x1d0(%rsp), %rdi
callq 0x9912
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x16431
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x7f8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
leaq 0x1130(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
callq 0x6260
movq %rax, %rbx
leaq 0x6c0(%rsp), %rdi
leaq 0x7f8(%rsp), %rsi
leaq 0x1130(%rsp), %rdx
callq 0x7c08
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xba2e(%rip), %rsi      # 0x21ed2
leaq 0xba29(%rip), %rdx      # 0x21ed4
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0x1c0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x1b0(%rsp), %rdi
callq 0x9912
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16515
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xbb3c(%rip), %rsi      # 0x2206b
leaq 0xbb3c(%rip), %rdx      # 0x22072
callq 0x9a8c
leaq 0x270(%rsp), %rsi
leaq 0x488(%rsp), %rdi
callq 0x1ec30
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16578
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xb971(%rip), %rsi      # 0x21f03
leaq 0xb972(%rip), %rdx      # 0x21f0b
callq 0x9a8c
leaq 0x270(%rsp), %rsi
leaq 0x488(%rsp), %rdi
callq 0x1ec30
movq %rax, 0x88(%rsp)
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x165e0
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
xorl %r8d, %r8d
leaq 0x490(%rsp), %rax
cmpq %rax, 0x88(%rsp)
setne %r8b
xorl %ecx, %ecx
cmpq %rax, %r14
setne %cl
leaq 0xe08(%rsp), %rdi
leaq 0x6c0(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
movsd (%rsp), %xmm0
callq 0x1086c
leaq 0xe08(%rsp), %rdi
callq 0x10dee
callq 0x6260
movq %rax, %r14
leaq 0xe08(%rsp), %rdi
callq 0x10de8
movq %rax, 0x8(%rsp)
leaq 0x6c0(%rsp), %rdi
callq 0x83be
movsd %xmm0, 0x98(%rsp)
leaq 0x6c0(%rsp), %rdi
callq 0x83c4
movsd %xmm0, 0x40(%rsp)
movq 0x8(%rsp), %r15
movq %r15, %rdi
callq 0xa8d2
movsd %xmm0, 0xa0(%rsp)
movq %r15, %rdi
callq 0xa8d8
movsd %xmm0, 0x90(%rsp)
movq %r15, %rdi
callq 0xa8de
movsd %xmm0, 0x38(%rsp)
movq %r15, %rdi
callq 0xa8ea
movsd %xmm0, 0xa8(%rsp)
movq 0x168e2(%rip), %rdi     # 0x2cfa0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq 0x168c7(%rip), %rdi     # 0x2cfa0
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x168b3(%rip), %r15     # 0x2cfa0
leaq 0xb97f(%rip), %rsi      # 0x22073
movl $0x44, %edx
movq %r15, %rdi
callq 0x63f0
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq 0x16881(%rip), %rdi     # 0x2cfa0
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x1686d(%rip), %rdi     # 0x2cfa0
leaq 0xb97e(%rip), %rsi      # 0x220b8
movl $0xf, %edx
callq 0x63f0
movq 0x16855(%rip), %rdi     # 0x2cfa0
movsd 0x98(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
leaq 0xb965(%rip), %rsi      # 0x220c8
movl $0x13, %edx
movq %rax, %rdi
callq 0x63f0
movq %r15, %rdi
movsd 0x40(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x167f1(%rip), %rdi     # 0x2cfa0
leaq 0xb926(%rip), %rsi      # 0x220dc
movl $0xc, %edx
callq 0x63f0
movq 0x167d9(%rip), %rdi     # 0x2cfa0
movsd 0xa0(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
leaq 0xb90a(%rip), %rsi      # 0x220e9
movl $0x10, %edx
movq %rax, %rdi
callq 0x63f0
movq %r15, %rdi
movsd 0x90(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x16772(%rip), %rdi     # 0x2cfa0
leaq 0xb8c5(%rip), %rsi      # 0x220fa
movl $0xb, %edx
callq 0x63f0
movq 0x1675a(%rip), %rdi     # 0x2cfa0
movsd 0x38(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
leaq 0xb8ab(%rip), %rsi      # 0x22106
movl $0x12, %edx
movq %rax, %rdi
callq 0x63f0
movq %r15, %rdi
movsd 0xa8(%rsp), %xmm0
callq 0x6580
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x166f6(%rip), %rdi     # 0x2cfa0
leaq 0xb868(%rip), %rsi      # 0x22119
movl $0x8, %edx
callq 0x63f0
movq 0x166de(%rip), %rdi     # 0x2cfa0
movsd (%rsp), %xmm0
callq 0x6580
movq %rax, %r15
leaq 0xb84c(%rip), %rsi      # 0x22122
movl $0xe, %edx
movq %rax, %rdi
callq 0x63f0
movsd 0xaded(%rip), %xmm2     # 0x216d8
movsd (%rsp), %xmm1
subsd %xmm1, %xmm2
mulsd 0xa8(%rsp), %xmm2
movsd 0x38(%rsp), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm2, %xmm0
movq %r15, %rdi
movsd %xmm0, 0x40(%rsp)
callq 0x6580
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x16656(%rip), %rdi     # 0x2cfa0
leaq 0xb7e0(%rip), %rsi      # 0x22131
movl $0x8, %edx
callq 0x63f0
movq 0x1663e(%rip), %rdi     # 0x2cfa0
movq 0x10(%rsp), %rsi
callq 0x6350
movq %rax, %r15
leaq 0xb7c4(%rip), %rsi      # 0x2213a
movl $0xb, %edx
movq %rax, %rdi
callq 0x63f0
subq %rbx, %r14
xorps %xmm0, %xmm0
cvtsi2sd %r14, %xmm0
divsd 0xb452(%rip), %xmm0     # 0x21de8
movq %r15, %rdi
movsd %xmm0, 0x98(%rsp)
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xb59a(%rip), %rsi      # 0x21f85
leaq 0xb599(%rip), %rdx      # 0x21f8b
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0xf30(%rsp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x6700
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16a4e
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0xf30(%rsp), %rdi
movsd 0x40(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
leaq 0xf30(%rsp), %rdi
movsd 0xa8(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
leaq 0xf30(%rsp), %rdi
movsd 0x38(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
leaq 0xf30(%rsp), %rdi
movsd 0xa0(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
leaq 0xb478(%rip), %rsi      # 0x21fa0
movl $0x1, %edx
movq %rax, %rdi
callq 0x63f0
movq %rbx, %rdi
movsd 0x90(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
leaq 0xf30(%rsp), %rdi
movsd 0x98(%rsp), %xmm0
callq 0x6580
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %rbx, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
xorl %ebx, %ebx
leaq 0xc10(%rsp), %r14
leaq 0x6c0(%rsp), %r13
leaq 0xb3d7(%rip), %r12      # 0x21fa0
leaq 0xc00(%rsp), %rbp
movq %r13, %rdi
callq 0x8404
cmpl %eax, %ebx
jge 0x16d40
movq %r13, %rdi
movl %ebx, %esi
callq 0x8440
movq %rax, %rdi
callq 0x15946
leaq 0x280(%rsp), %rcx
movq %rcx, 0x270(%rsp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x270(%rsp), %rdi
callq 0x9912
movq 0x8(%rsp), %rdi
movl %ebx, %esi
callq 0xa8f0
movupd (%rax), %xmm0
movupd 0x10(%rax), %xmm1
movapd %xmm1, 0xc10(%rsp)
movapd %xmm0, 0xc00(%rsp)
movq 0x270(%rsp), %rsi
movq 0x278(%rsp), %rdx
leaq 0xf30(%rsp), %rdi
callq 0x63f0
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x63f0
movq %rbp, %rdi
callq 0x208dc
movq %r15, %rdi
callq 0x6580
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x63f0
movq %rbp, %rdi
callq 0x208e2
movq %r15, %rdi
callq 0x6580
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x63f0
movq %r14, %rdi
callq 0x208dc
movq %r15, %rdi
callq 0x6580
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x63f0
movq %r14, %rdi
callq 0x208e2
movq %r15, %rdi
callq 0x6580
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x6370
movsbl %al, %esi
movq %r15, %rdi
callq 0x6030
movq %rax, %rdi
callq 0x6270
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16d39
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
incl %ebx
jmp 0x16bd1
leaq 0x490(%rsp), %rax
cmpq %rax, 0x88(%rsp)
je 0x17553
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xb193(%rip), %rsi      # 0x21f03
leaq 0xb194(%rip), %rdx      # 0x21f0b
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0xa00(%rsp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x6700
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16dd3
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0xe08(%rsp), %rdi
callq 0x10dda
leaq 0xf0(%rsp), %rdi
movq %rax, %rsi
callq 0xf382
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rdx
addq %rsi, %rdx
leaq 0x58(%rsp), %rdi
callq 0x9912
leaq 0x6b0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xe168
leaq 0xb310(%rip), %rsi      # 0x22146
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x6b0(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x270(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x60d0
leaq 0x6a0(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0xe284
leaq 0xb298(%rip), %rsi      # 0x22146
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
leaq 0xa4a2(%rip), %rsi      # 0x21364
movq %rax, %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x6a0(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x16f2c
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x270(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
leaq 0xc00(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
movq 0x270(%rsp), %rax
movq -0x18(%rax), %rax
movq 0x358(%rsp,%rax), %rsi
leaq 0x28(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x18(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1f1e8
leaq 0x690(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x19a64
leaq 0xb199(%rip), %rsi      # 0x22146
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
leaq 0xb18f(%rip), %rsi      # 0x22150
movq %rax, %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x690(%rsp), %r15
movq %r15, %rdi
callq 0xe608
movb (%r14), %al
movb (%r15), %cl
movb %cl, (%r14)
movb %al, (%r15)
movq 0x8(%r14), %rax
movq 0x8(%r15), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r15)
movq %r14, %rdi
callq 0xe608
movq %r15, %rdi
callq 0xe0e0
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1701f
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xc00(%rsp), %rax
movq -0x18(%rax), %rax
movq 0xce8(%rsp,%rax), %rsi
leaq 0x18(%rsp), %rdi
movq %rbx, (%rdi)
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1f1e8
leaq 0x680(%rsp), %rdi
leaq 0x18(%rsp), %r15
movq %r15, %rsi
callq 0x19a64
leaq 0xb0dd(%rip), %rsi      # 0x22146
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
leaq 0xb0de(%rip), %rsi      # 0x2215b
movq %rax, %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x680(%rsp), %r12
movq %r12, %rdi
callq 0xe608
movb (%r14), %al
movb (%r12), %cl
movb %cl, (%r14)
movb %al, (%r12)
movq 0x8(%r14), %rax
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r12)
movq %r14, %rdi
callq 0xe608
movq %r12, %rdi
callq 0xe0e0
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x170df
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x670(%rsp), %r14
movb $0x0, (%r14)
movq $0x0, 0x8(%r14)
movq %r14, %rdi
movsd (%rsp), %xmm0
callq 0x103bc
movq %r14, %rdi
callq 0xe608
leaq 0xae3e(%rip), %rsi      # 0x21f4d
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x670(%rsp), %r12
movq %r12, %rdi
callq 0xe608
movb (%r14), %al
movb (%r12), %cl
movb %cl, (%r14)
movb %al, (%r12)
movq 0x8(%r14), %rax
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r12)
movq %r14, %rdi
callq 0xe608
movq %r12, %rdi
callq 0xe0e0
leaq 0xb0(%rsp), %r14
movb $0x0, (%r14)
movq $0x0, 0x8(%r14)
leaq 0xa206(%rip), %rsi      # 0x21380
movq %r14, %rdi
callq 0xf953
leaq 0xb0(%rsp), %rdi
callq 0xe608
leaq 0xc0(%rsp), %r12
leaq 0x6c0(%rsp), %rdi
callq 0x83be
leaq 0xb0(%rsp), %r13
movb $0x0, 0x10(%r13)
movq $0x0, 0x18(%r13)
movq %r12, %rdi
callq 0x103bc
movq %r12, %rdi
callq 0xe608
leaq 0x18(%rsp), %r15
movl $0x2, %edx
movq %r15, %rdi
movq %r13, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0xd0(%rsp), %r15
movb $0x0, (%r15)
movq $0x0, 0x8(%r15)
leaq 0xa182(%rip), %rsi      # 0x21386
movq %r15, %rdi
callq 0xf9e6
leaq 0xd0(%rsp), %rdi
callq 0xe608
leaq 0xe0(%rsp), %r13
leaq 0x6c0(%rsp), %rdi
callq 0x83c4
leaq 0xd0(%rsp), %rbp
movb $0x0, 0x10(%rbp)
movq $0x0, 0x18(%rbp)
movq %r13, %rdi
callq 0x103bc
movq %r13, %rdi
callq 0xe608
movl $0x2, %edx
movq %rbx, %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0x660(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0xaece(%rip), %rsi      # 0x22164
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbp
leaq 0x660(%rsp), %rbx
movq %rbx, %rdi
callq 0xe608
movb (%rbp), %al
movb (%rbx), %cl
movb %cl, (%rbp)
movb %al, (%rbx)
movq 0x8(%rbp), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%rbp)
movq %rax, 0x8(%rbx)
movq %rbp, %rdi
callq 0xe608
movq %rbx, %rdi
callq 0xe0e0
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x18, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x172e5
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x17301
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x17320
leaq 0x650(%rsp), %rbx
movb $0x5, (%rbx)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rbx)
movq %rbx, %rdi
callq 0xe608
movq %rbx, %rdi
callq 0xe608
leaq 0xab43(%rip), %rsi      # 0x21ea8
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x650(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x8(%rsp), %rdi
callq 0xa8c0
leaq 0x640(%rsp), %rdi
movq %rax, %rsi
callq 0xf382
leaq 0xad9c(%rip), %rsi      # 0x2216c
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x640(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x630(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
movsd 0x98(%rsp), %xmm0
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0xad2d(%rip), %rsi      # 0x2217a
leaq 0xf0(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x630(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0xa00(%rsp), %rsi
movq (%rsi), %rax
movq -0x18(%rax), %rax
movq 0xa10(%rsp,%rax), %rcx
xorl %edi, %edi
xorl %edx, %edx
testq %rcx, %rcx
setg %dl
cmovleq %rdi, %rcx
movq $0x0, 0xa10(%rsp,%rax)
leaq 0xf0(%rsp), %rdi
xorl %r8d, %r8d
callq 0x1f530
leaq 0xc00(%rsp), %rdi
callq 0x60f0
leaq 0x270(%rsp), %rdi
callq 0x60f0
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x1750e
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0xf0(%rsp), %rdi
callq 0xe0e0
movq 0x15a5e(%rip), %rax     # 0x2cf80
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0xa08(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0xa00(%rsp,%rcx)
callq 0x62f0
leaq 0xaf8(%rsp), %rdi
callq 0x6140
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xa9b8(%rip), %rsi      # 0x21f25
leaq 0xa9bf(%rip), %rdx      # 0x21f33
callq 0x9a8c
leaq 0x270(%rsp), %rsi
leaq 0x488(%rsp), %rdi
callq 0x1ec30
movq %rax, %rbx
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x175b6
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x490(%rsp), %rax
cmpq %rax, %rbx
je 0x185db
leaq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
movq %rax, (%rdi)
leaq 0xa944(%rip), %rsi      # 0x21f25
leaq 0xa94b(%rip), %rdx      # 0x21f33
callq 0x9a8c
leaq 0x478(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x63c0
movq %rax, %rdi
callq 0x1f14e
leaq 0xa00(%rsp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x6700
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x17644
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xe168
leaq 0x28(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x110(%rsp), %rsi
movq 0x118(%rsp), %rdx
addq %rsi, %rdx
leaq 0x18(%rsp), %rdi
callq 0x9912
leaq 0x620(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xe168
leaq 0xaaa6(%rip), %rsi      # 0x22146
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x620(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x270(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x60d0
leaq 0x610(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0xe284
leaq 0xaa31(%rip), %rsi      # 0x22146
leaq 0x48(%rsp), %rdi
callq 0xe2b0
leaq 0x9c3e(%rip), %rsi      # 0x21364
movq %rax, %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x610(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x17790
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x270(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
leaq 0xc00(%rsp), %rdi
leaq 0x1d0(%rsp), %rsi
movl $0x8, %edx
callq 0x6590
movq 0x270(%rsp), %rax
movq -0x18(%rax), %rax
movq 0x358(%rsp,%rax), %rsi
leaq 0x68(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x58(%rsp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1f1e8
leaq 0x600(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x19a64
leaq 0xa935(%rip), %rsi      # 0x22146
leaq 0x48(%rsp), %rdi
callq 0xe2b0
leaq 0xa92e(%rip), %rsi      # 0x22150
movq %rax, %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x600(%rsp), %r15
movq %r15, %rdi
callq 0xe608
movb (%r14), %al
movb (%r15), %cl
movb %cl, (%r14)
movb %al, (%r15)
movq 0x8(%r14), %rax
movq 0x8(%r15), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r15)
movq %r14, %rdi
callq 0xe608
movq %r15, %rdi
callq 0xe0e0
movq 0x58(%rsp), %rdi
cmpq %rbx, %rdi
je 0x17880
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0xc00(%rsp), %rax
movq -0x18(%rax), %rax
movq 0xce8(%rsp,%rax), %rsi
leaq 0x58(%rsp), %rdi
movq %rbx, (%rdi)
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
xorl %ecx, %ecx
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
callq 0x1f1e8
leaq 0x5f0(%rsp), %rdi
leaq 0x58(%rsp), %r15
movq %r15, %rsi
callq 0x19a64
leaq 0xa87c(%rip), %rsi      # 0x22146
leaq 0x48(%rsp), %rdi
callq 0xe2b0
leaq 0xa880(%rip), %rsi      # 0x2215b
movq %rax, %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x5f0(%rsp), %r12
movq %r12, %rdi
callq 0xe608
movb (%r14), %al
movb (%r12), %cl
movb %cl, (%r14)
movb %al, (%r12)
movq 0x8(%r14), %rax
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r12)
movq %r14, %rdi
callq 0xe608
movq %r12, %rdi
callq 0xe0e0
movq 0x58(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1793d
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x5e0(%rsp), %r14
movb $0x0, (%r14)
movq $0x0, 0x8(%r14)
movq %r14, %rdi
movsd (%rsp), %xmm0
callq 0x103bc
movq %r14, %rdi
callq 0xe608
leaq 0xa5e0(%rip), %rsi      # 0x21f4d
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %r14
leaq 0x5e0(%rsp), %r12
movq %r12, %rdi
callq 0xe608
movb (%r14), %al
movb (%r12), %cl
movb %cl, (%r14)
movb %al, (%r12)
movq 0x8(%r14), %rax
movq 0x8(%r12), %rcx
movq %rcx, 0x8(%r14)
movq %rax, 0x8(%r12)
movq %r14, %rdi
callq 0xe608
movq %r12, %rdi
callq 0xe0e0
leaq 0xb0(%rsp), %r14
movb $0x0, (%r14)
movq $0x0, 0x8(%r14)
leaq 0x99ab(%rip), %rsi      # 0x21380
movq %r14, %rdi
callq 0xf953
leaq 0xb0(%rsp), %rdi
callq 0xe608
leaq 0xc0(%rsp), %r12
leaq 0x6c0(%rsp), %rdi
callq 0x83be
leaq 0xb0(%rsp), %r13
movb $0x0, 0x10(%r13)
movq $0x0, 0x18(%r13)
movq %r12, %rdi
callq 0x103bc
movq %r12, %rdi
callq 0xe608
leaq 0x58(%rsp), %r15
movl $0x2, %edx
movq %r15, %rdi
movq %r13, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0xd0(%rsp), %r15
movb $0x0, (%r15)
movq $0x0, 0x8(%r15)
leaq 0x9927(%rip), %rsi      # 0x21386
movq %r15, %rdi
callq 0xf9e6
leaq 0xd0(%rsp), %rdi
callq 0xe608
leaq 0xe0(%rsp), %r13
leaq 0x6c0(%rsp), %rdi
callq 0x83c4
leaq 0xd0(%rsp), %rbp
movb $0x0, 0x10(%rbp)
movq $0x0, 0x18(%rbp)
movq %r13, %rdi
callq 0x103bc
movq %r13, %rdi
callq 0xe608
movl $0x2, %edx
movq %rbx, %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0x5d0(%rsp), %rdi
leaq 0x58(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0xa673(%rip), %rsi      # 0x22164
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbp
leaq 0x5d0(%rsp), %rbx
movq %rbx, %rdi
callq 0xe608
movb (%rbp), %al
movb (%rbx), %cl
movb %cl, (%rbp)
movb %al, (%rbx)
movq 0x8(%rbp), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%rbp)
movq %rax, 0x8(%rbx)
movq %rbp, %rdi
callq 0xe608
movq %rbx, %rdi
callq 0xe0e0
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x58, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x17b3d
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x17b59
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x17b78
leaq 0x5c0(%rsp), %rbx
movb $0x5, (%rbx)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rbx)
movq %rbx, %rdi
callq 0xe608
movq %rbx, %rdi
callq 0xe608
leaq 0xa2eb(%rip), %rsi      # 0x21ea8
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x5c0(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x5b0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xe168
leaq 0xa548(%rip), %rsi      # 0x2216c
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x5b0(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0xa4fa(%rip), %rsi      # 0x2216c
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, 0x38(%rsp)
leaq 0x5a0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0x96bc(%rip), %rsi      # 0x2135d
movq 0x38(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x5a0(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x68(%rsp), %r13
leaq 0xe0(%rsp), %r12
leaq 0x220(%rsp), %rbp
leaq 0x100(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x78(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x200(%rsp), %rax
movq %rax, 0x148(%rsp)
leaq 0x180(%rsp), %rax
movq %rax, 0x140(%rsp)
leaq 0x240(%rsp), %rax
movq %rax, 0x138(%rsp)
xorl %r15d, %r15d
leaq 0x160(%rsp), %rax
movq %rax, 0x130(%rsp)
leaq 0x6c0(%rsp), %r14
leaq 0xf0(%rsp), %rbx
leaq 0x230(%rsp), %rax
movq %rax, 0x88(%rsp)
movq %r14, %rdi
callq 0x8404
cmpl %eax, %r15d
jge 0x182bf
movq %r14, %rdi
movl %r15d, %esi
callq 0x8440
movq %rax, %r14
movq 0x8(%rsp), %rdi
movl %r15d, %esi
callq 0xa8f0
movq %rax, (%rsp)
movl %r15d, 0x10(%rsp)
leaq 0x1a0(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq %r14, %rdi
callq 0x15946
movq %rax, %r14
movq 0x38(%rsp), %rdi
leaq 0x9587(%rip), %rsi      # 0x2135d
callq 0xe2b0
movq %rax, 0xa8(%rsp)
movb $0x0, 0xb0(%rsp)
movq $0x0, 0xb8(%rsp)
leaq 0xb0(%rsp), %rdi
movq %rdi, %r15
leaq 0x955b(%rip), %rsi      # 0x21364
callq 0xedfd
leaq 0xb0(%rsp), %rdi
callq 0xe608
leaq 0xc0(%rsp), %rdi
movq %rdi, %r15
movq %r14, %rsi
callq 0xe284
movl $0x2, %edx
leaq 0x58(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movb $0x0, 0xd0(%rsp)
movq $0x0, 0xd8(%rsp)
leaq 0xd0(%rsp), %r14
movq %r14, %rdi
leaq 0x94f3(%rip), %rsi      # 0x21369
callq 0x10296
leaq 0x210(%rsp), %r15
movq %r14, %rdi
callq 0xe608
movb $0x0, 0x210(%rsp)
movq $0x0, 0x218(%rsp)
movq %r15, %rdi
leaq 0x94ca(%rip), %rsi      # 0x21373
callq 0x10329
movq %r15, %rdi
callq 0xe608
movq (%rsp), %rdi
callq 0x208dc
movb $0x0, 0x220(%rsp)
movq $0x0, 0x228(%rsp)
movq %rbp, %rdi
callq 0x103bc
movq %rbp, %rdi
callq 0xe608
movl $0x2, %edx
movq %rbx, %rdi
movq %r15, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movb $0x0, 0x190(%rsp)
movq $0x0, 0x198(%rsp)
leaq 0x190(%rsp), %r14
movq %r14, %rdi
leaq 0x96ed(%rip), %rsi      # 0x21611
callq 0x10329
leaq 0x1a0(%rsp), %r15
movq %r14, %rdi
callq 0xe608
movq (%rsp), %rdi
callq 0x208e2
movb $0x0, 0x1a0(%rsp)
movq $0x0, 0x1a8(%rsp)
movq %r15, %rdi
callq 0x103bc
movq %r15, %rdi
callq 0xe608
movl $0x2, %edx
leaq 0x100(%rsp), %rdi
movq %r14, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movl $0x2, %edx
movq %r12, %rdi
movq %rbx, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
leaq 0xd0(%rsp), %rsi
movl $0x2, %edx
movq %r13, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movb $0x0, 0x1f0(%rsp)
movq $0x0, 0x1f8(%rsp)
leaq 0x1f0(%rsp), %r14
movq %r14, %rdi
leaq 0x938e(%rip), %rsi      # 0x21375
callq 0x1044c
movq %r14, %rdi
callq 0xe608
movb $0x0, 0x170(%rsp)
movq $0x0, 0x178(%rsp)
leaq 0x170(%rsp), %r15
movq %r15, %rdi
leaq 0x9359(%rip), %rsi      # 0x21373
callq 0x10329
movq (%rsp), %r14
addq $0x10, %r14
movq %r15, %rdi
callq 0xe608
movq %r14, (%rsp)
movq %r14, %rdi
callq 0x208dc
movb $0x0, 0x180(%rsp)
movq $0x0, 0x188(%rsp)
leaq 0x180(%rsp), %r14
movq %r14, %rdi
callq 0x103bc
movq %r14, %rdi
callq 0xe608
movl $0x2, %edx
leaq 0x230(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movb $0x0, 0x150(%rsp)
movq $0x0, 0x158(%rsp)
leaq 0x150(%rsp), %r15
movq %r15, %rdi
leaq 0x9564(%rip), %rsi      # 0x21611
callq 0x10329
movq %r15, %rdi
callq 0xe608
movq (%rsp), %rdi
callq 0x208e2
movb $0x0, 0x160(%rsp)
movq $0x0, 0x168(%rsp)
leaq 0x160(%rsp), %r14
movq %r14, %rdi
callq 0x103bc
movq %r14, %rdi
callq 0xe608
movl $0x2, %edx
leaq 0x240(%rsp), %rdi
movq %r15, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movl $0x2, %edx
leaq 0x200(%rsp), %rdi
leaq 0x230(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movl 0x10(%rsp), %r15d
movl $0x2, %edx
leaq 0x78(%rsp), %rdi
leaq 0x1f0(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe168
movl $0x3, %edx
movq 0xa8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xe426
movl $0x20, %r14d
leaq (%rsp,%r14), %rdi
addq $0x58, %rdi
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18178
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18195
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x181b5
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x181d5
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x181f5
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18215
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0xf0, %rdi
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18235
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18255
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x210, %rdi            # imm = 0x210
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18275
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x18295
incl %r15d
leaq 0x6c0(%rsp), %r14
jmp 0x17d7a
movq 0x8(%rsp), %rdi
callq 0xa8d2
leaq 0x590(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0x908d(%rip), %rsi      # 0x21380
movq 0x38(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x590(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x8(%rsp), %rdi
callq 0xa8d8
leaq 0x580(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0x9018(%rip), %rsi      # 0x21386
movq 0x38(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x580(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x8(%rsp), %rdi
callq 0xa8de
leaq 0x570(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0x8fa4(%rip), %rsi      # 0x2138d
movq 0x38(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x570(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
movq 0x8(%rsp), %rdi
callq 0xa8ea
leaq 0x560(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0x8f2e(%rip), %rsi      # 0x21392
movq 0x38(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x560(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0x550(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
movsd 0x98(%rsp), %xmm0
callq 0x103bc
movq %rbx, %rdi
callq 0xe608
leaq 0x9c9c(%rip), %rsi      # 0x2217a
leaq 0x48(%rsp), %rdi
callq 0xe2b0
movq %rax, %rbx
leaq 0x550(%rsp), %r14
movq %r14, %rdi
callq 0xe608
movb (%rbx), %al
movb (%r14), %cl
movb %cl, (%rbx)
movb %al, (%r14)
movq 0x8(%rbx), %rax
movq 0x8(%r14), %rcx
movq %rcx, 0x8(%rbx)
movq %rax, 0x8(%r14)
movq %rbx, %rdi
callq 0xe608
movq %r14, %rdi
callq 0xe0e0
leaq 0xa00(%rsp), %rsi
movq (%rsi), %rax
movq -0x18(%rax), %rax
movq 0xa10(%rsp,%rax), %rcx
xorl %edi, %edi
xorl %edx, %edx
testq %rcx, %rcx
setg %dl
cmovleq %rdi, %rcx
movq $0x0, 0xa10(%rsp,%rax)
leaq 0x48(%rsp), %rdi
xorl %r8d, %r8d
callq 0x1f530
leaq 0xc00(%rsp), %rdi
callq 0x60f0
leaq 0x270(%rsp), %rdi
callq 0x60f0
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x18599
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x48(%rsp), %rdi
callq 0xe0e0
movq 0x149d6(%rip), %rax     # 0x2cf80
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0xa08(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0xa00(%rsp,%rcx)
callq 0x62f0
leaq 0xaf8(%rsp), %rdi
callq 0x6140
movq 0x1499e(%rip), %rax     # 0x2cf80
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0xf38(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0xf30(%rsp,%rcx)
callq 0x62f0
leaq 0x1028(%rsp), %rdi
callq 0x6140
leaq 0xe08(%rsp), %rdi
callq 0x19a90
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x18645
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x748(%rsp), %rdi
callq 0x9484
leaq 0x718(%rsp), %rdi
callq 0x9484
leaq 0x700(%rsp), %rdi
callq 0x9226
leaq 0x6e8(%rsp), %rdi
callq 0x9274
leaq 0x6d0(%rsp), %rdi
callq 0x92d0
leaq 0x1130(%rsp), %rdi
callq 0x60f0
leaq 0x7f8(%rsp), %rdi
callq 0x60f0
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x186c5
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0x186ea
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x6390
xorl %ebx, %ebx
movq 0x148c5(%rip), %rax     # 0x2cfb8
addq $0x10, %rax
leaq 0x4e8(%rsp), %rdi
movq %rax, -0x70(%rdi)
callq 0x19d26
leaq 0x4b8(%rsp), %rdi
callq 0x19db8
leaq 0x488(%rsp), %rdi
callq 0x19e30
leaq 0x540(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x18743
movq 0x540(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x518(%rsp), %rdi
callq 0x9694
leaq 0x7e0(%rsp), %r14
movq %r14, %rdi
callq 0x19ef4
movq -0x28(%r14), %rdi
testq %rdi, %rdi
je 0x187a1
movq 0x7d8(%rsp), %rsi
subq %rdi, %rsi
callq 0x6390
xorl %eax, %eax
movq %rax, 0x7b8(%rsp)
movl %eax, 0x7c0(%rsp)
movq %rax, 0x7c8(%rsp)
movl %eax, 0x7d0(%rsp)
movq %rax, 0x7d8(%rsp)
leaq 0x7a0(%rsp), %r14
movq %r14, %rdi
callq 0x19f36
movq -0x28(%r14), %rdi
leaq 0x788(%rsp), %rax
cmpq %rax, %rdi
je 0x187d2
movq 0x788(%rsp), %rsi
incq %rsi
callq 0x6390
movl %ebx, %eax
addq $0x1338, %rsp           # imm = 0x1338
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq 0x550(%rsp), %rdi
jmp 0x189e1
movq %rax, %r14
leaq 0x560(%rsp), %rdi
jmp 0x189e1
jmp 0x196ba
movq %rax, %r14
leaq 0x570(%rsp), %rdi
jmp 0x189e1
jmp 0x196ba
movq %rax, %r14
leaq 0x580(%rsp), %rdi
jmp 0x189e1
jmp 0x196ba
movq %rax, %r14
leaq 0x590(%rsp), %rdi
jmp 0x189e1
jmp 0x196ba
movq %rax, %r14
leaq 0x5a0(%rsp), %rdi
jmp 0x189e1
movq %rax, %r14
leaq 0x5b0(%rsp), %rdi
jmp 0x189e1
jmp 0x196ba
movq %rax, %r14
leaq 0x5c0(%rsp), %rdi
jmp 0x189e1
movq %rax, (%rsp)
leaq 0x5d0(%rsp), %rdi
callq 0xe0e0
jmp 0x18896
movq %rax, (%rsp)
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0x58, %rdi
callq 0xe0e0
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0x1889b
movb $0x1, %al
movl %eax, 0x8(%rsp)
jmp 0x188c6
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0x188cb
movb $0x1, %al
jmp 0x1890a
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
jmp 0x1890a
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
movq %r15, %r13
cmpq %r13, %r15
sete %cl
orb %al, %cl
jne 0x1893e
leaq 0xd0(%rsp), %r15
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %r15, %r13
jne 0x1891c
jmp 0x1893e
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r15, %rbx
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0x18944
movb $0x1, %al
movq %rbx, %r15
cmpq %r12, %r14
sete %cl
orb %al, %cl
jne 0x18986
leaq 0xb0(%rsp), %rbx
addq $-0x10, %r12
movq %r12, %rdi
callq 0xe0e0
cmpq %rbx, %r12
jne 0x18975
leaq 0x58(%rsp), %rbx
cmpq %r15, %rbx
sete %al
movl 0x8(%rsp), %ecx
orb %al, %cl
jne 0x1953a
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0e0
cmpq %rbx, %r15
jne 0x1899d
jmp 0x1953a
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
jmp 0x18963
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
movq %r14, %r12
jmp 0x18963
movq %rax, %r14
leaq 0x5e0(%rsp), %rdi
callq 0xe0e0
jmp 0x196bd
jmp 0x189f2
jmp 0x196ba
movq %rax, %r14
jmp 0x18d1d
jmp 0x196ba
movq %rax, %r14
leaq 0x28(%rsp), %rbx
jmp 0x196cf
jmp 0x18a38
movq %rax, (%rsp)
leaq 0x630(%rsp), %rdi
jmp 0x18be6
movq %rax, (%rsp)
leaq 0x640(%rsp), %rdi
jmp 0x18be6
movq %rax, %r14
jmp 0x18d4d
movq %rax, %r14
jmp 0x18d72
movq %rax, %r14
leaq 0x620(%rsp), %rdi
callq 0xe0e0
jmp 0x18d72
movq %rax, (%rsp)
leaq 0x650(%rsp), %rdi
jmp 0x18be6
movq %rax, %r14
jmp 0x196dc
movq %rax, (%rsp)
leaq 0x660(%rsp), %rdi
callq 0xe0e0
jmp 0x18a8d
movq %rax, %r14
jmp 0x196f3
movq %rax, (%rsp)
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0x18, %rdi
callq 0xe0e0
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0x18a92
movb $0x1, %al
movl %eax, 0x8(%rsp)
jmp 0x18ac5
movq %rax, %r14
jmp 0x196fd
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0x18aca
movb $0x1, %al
jmp 0x18b09
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
jmp 0x18b09
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
movq %r15, %r13
cmpq %r13, %r15
sete %cl
orb %al, %cl
jne 0x18b3d
leaq 0xd0(%rsp), %r15
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %r15, %r13
jne 0x18b1b
jmp 0x18b3d
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
movq %r15, %rbx
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0x18b43
movb $0x1, %al
movq %rbx, %r15
cmpq %r12, %r14
sete %cl
orb %al, %cl
jne 0x18b85
leaq 0xb0(%rsp), %rbx
addq $-0x10, %r12
movq %r12, %rdi
callq 0xe0e0
cmpq %rbx, %r12
jne 0x18b74
leaq 0x18(%rsp), %rbx
cmpq %r15, %rbx
sete %al
movl 0x8(%rsp), %ecx
orb %al, %cl
jne 0x18e56
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0e0
cmpq %rbx, %r15
jne 0x18b9c
jmp 0x18e56
jmp 0x19711
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
jmp 0x18b62
movq %rax, (%rsp)
movl $0x0, 0x8(%rsp)
xorl %eax, %eax
movq %r14, %r12
jmp 0x18b62
movq %rax, (%rsp)
leaq 0x670(%rsp), %rdi
callq 0xe0e0
jmp 0x18e56
jmp 0x18bf7
jmp 0x18e52
movq %rax, (%rsp)
jmp 0x18d9b
jmp 0x18e52
movq %rax, (%rsp)
jmp 0x18e63
jmp 0x18c31
movq %rax, (%rsp)
jmp 0x18dcc
jmp 0x18c31
movq %rax, (%rsp)
leaq 0x6b0(%rsp), %rdi
callq 0xe0e0
jmp 0x18e70
movq %rax, (%rsp)
jmp 0x18e70
movq %rax, (%rsp)
jmp 0x18e8c
jmp 0x19711
jmp 0x18cf0
jmp 0x19716
jmp 0x19711
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x1970c
jmp 0x18cbb
jmp 0x18c8a
jmp 0x18cbb
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x19758
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x19758
movq %rax, %r14
jmp 0x19758
movq %rax, %r14
jmp 0x1977d
movq %rax, %r14
jmp 0x1978a
movq %rax, %r14
jmp 0x19797
movq %rax, %r14
jmp 0x197a4
movq %rax, %r14
jmp 0x197c9
jmp 0x1966e
movq %rax, %rbx
jmp 0x18e20
movq %rax, %rbx
jmp 0x18e45
movq %rax, %r14
leaq 0x5f0(%rsp), %rdi
jmp 0x18d18
movq %rax, %r14
leaq 0x600(%rsp), %rdi
callq 0xe0e0
movq 0x58(%rsp), %rdi
cmpq %rbx, %rdi
je 0x196bd
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x196bd
movq %rax, %r14
leaq 0x610(%rsp), %rdi
callq 0xe0e0
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x18d72
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x28(%rsp), %rbx
jmp 0x196dc
movq %rax, (%rsp)
leaq 0x680(%rsp), %rdi
jmp 0x18d96
movq %rax, (%rsp)
leaq 0x690(%rsp), %rdi
callq 0xe0e0
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x18e56
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x18e56
movq %rax, (%rsp)
leaq 0x6a0(%rsp), %rdi
callq 0xe0e0
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x18e70
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x18e70
movq %rax, (%rsp)
jmp 0x18e99
movq %rax, %rbx
movq 0x250(%rsp), %rdi
cmpq %r14, %rdi
je 0x18e20
movq 0x260(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x7f8(%rsp), %rdi
leaq 0x808(%rsp), %rax
cmpq %rax, %rdi
je 0x18e45
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
movq %rbx, %r14
jmp 0x197ee
jmp 0x196ba
movq %rax, (%rsp)
leaq 0xc00(%rsp), %rdi
callq 0x60f0
leaq 0x270(%rsp), %rdi
callq 0x60f0
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x18e8c
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0xf0(%rsp), %rdi
callq 0xe0e0
leaq 0xa00(%rsp), %rdi
callq 0x6520
movq (%rsp), %r14
jmp 0x1973e
jmp 0x19716
jmp 0x19716
jmp 0x1966e
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x1974b
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x1974b
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x1977d
movq 0x280(%rsp), %rsi
jmp 0x19775
movq %rax, %r14
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x197c9
movq 0x808(%rsp), %rsi
jmp 0x197c1
jmp 0x18f42
jmp 0x1966e
jmp 0x18f42
movq %rax, %r14
movq 0x7f8(%rsp), %rdi
cmpq %r15, %rdi
je 0x197ee
movq 0x808(%rsp), %rsi
jmp 0x197e6
jmp 0x1966e
movq %rax, %r14
leaq 0x1130(%rsp), %rdi
callq 0x19bfe
jmp 0x19014
jmp 0x1966e
jmp 0x19168
jmp 0x19170
jmp 0x19026
jmp 0x19048
jmp 0x1906a
jmp 0x19094
jmp 0x190be
jmp 0x190e8
jmp 0x18fac
movq %rax, %r14
jmp 0x19110
jmp 0x19137
jmp 0x19170
movq %rax, %r14
movq 0x7f8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x19815
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x19815
movq %rax, %r14
jmp 0x19815
movq %rax, %r14
movq 0x478(%rsp), %rdi
cmpq %rbp, %rdi
je 0x19029
movq 0x488(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x19029
movq %rax, %r14
leaq 0x7f8(%rsp), %rdi
callq 0x19a44
jmp 0x197ee
movq %rax, %r14
movq 0x6c0(%rsp), %rdi
cmpq %r12, %rdi
je 0x1904b
movq 0x6d0(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x1904b
movq %rax, %r14
movq 0xe08(%rsp), %rdi
cmpq %rbx, %rdi
je 0x1906d
movq 0xe18(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x1906d
movq %rax, %r14
movq 0xa00(%rsp), %rdi
leaq 0xa10(%rsp), %rax
cmpq %rax, %rdi
je 0x19097
movq 0xa10(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x19097
movq %rax, %r14
movq 0xf30(%rsp), %rdi
leaq 0xf40(%rsp), %rax
cmpq %rax, %rdi
je 0x190c1
movq 0xf40(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x190c1
movq %rax, %r14
movq 0xc00(%rsp), %rdi
leaq 0xc10(%rsp), %rax
cmpq %rax, %rdi
je 0x190eb
movq 0xc10(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x190eb
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x19110
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
movq 0x1130(%rsp), %rdi
leaq 0x1140(%rsp), %rax
cmpq %rax, %rdi
je 0x1913a
movq 0x1140(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x1913a
movq %rax, %r14
movq 0x7f8(%rsp), %rdi
leaq 0x808(%rsp), %rax
cmpq %rax, %rdi
je 0x19808
movq 0x808(%rsp), %rsi
incq %rsi
callq 0x6390
jmp 0x19808
movq %rax, %r14
jmp 0x197fb
movq %rax, %r14
jmp 0x19808
movq %rax, (%rsp)
movl $0x20, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x58, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x19181
movl $0x0, 0x8(%rsp)
jmp 0x191ac
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x191b1
movb $0x1, %bl
jmp 0x1925b
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %r14d, %r14d
xorl %ebx, %ebx
jmp 0x1927e
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
movq %r15, 0x130(%rsp)
jmp 0x192ae
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
leaq 0x230(%rsp), %rax
movq %rax, 0x138(%rsp)
xorl %r14d, %r14d
xorl %ebx, %ebx
jmp 0x192e6
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
jmp 0x19245
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
movq %r15, 0x140(%rsp)
xorl %r14d, %r14d
xorl %ebx, %ebx
jmp 0x19318
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %ebx, %ebx
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0xe0e0
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0x19261
movb $0x1, %r14b
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0e0
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0x19284
movb $0x1, %al
jmp 0x192b3
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
xorl %r14d, %r14d
xorl %ebx, %ebx
movq 0x130(%rsp), %r13
leaq 0x150(%rsp), %rcx
cmpq %r13, %rcx
sete %cl
orb %al, %cl
jne 0x192e6
leaq 0x150(%rsp), %r15
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %r15, %r13
jne 0x192d5
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0e0
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0x192ec
movb $0x1, %al
movq 0x138(%rsp), %rcx
movq %rcx, 0x88(%rsp)
movq 0x140(%rsp), %r13
leaq 0x170(%rsp), %rcx
cmpq %r13, %rcx
sete %cl
orb %al, %cl
jne 0x1934b
leaq 0x170(%rsp), %r15
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %r15, %r13
jne 0x1933a
leaq 0x230(%rsp), %r15
movq 0x88(%rsp), %r13
cmpq %r13, %r15
sete %al
orb %al, %r14b
jne 0x19377
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %r15, %r13
jne 0x19366
movq 0x148(%rsp), %r14
leaq 0x1f0(%rsp), %rax
cmpq %r14, %rax
sete %al
orb %bl, %al
jne 0x193aa
leaq 0x1f0(%rsp), %rbx
addq $-0x10, %r14
movq %r14, %rdi
callq 0xe0e0
cmpq %rbx, %r14
jne 0x19399
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x193af
movb $0x1, %al
movl %eax, 0x10(%rsp)
movq 0x40(%rsp), %r13
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xf0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x193d9
movb $0x1, %r14b
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x193fb
movb $0x1, %al
movq 0xa0(%rsp), %r15
leaq 0x190(%rsp), %rcx
cmpq %r15, %rcx
sete %cl
orb %al, %cl
jne 0x1944a
leaq 0x190(%rsp), %rbx
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0e0
cmpq %rbx, %r15
jne 0x19439
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x210, %rdi            # imm = 0x210
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1944f
movb $0x1, %al
movq 0x90(%rsp), %rbx
leaq 0x210(%rsp), %rcx
cmpq %rbp, %rcx
sete %cl
orb %al, %cl
jne 0x1949e
leaq 0x210(%rsp), %r15
addq $-0x10, %rbp
movq %rbp, %rdi
callq 0xe0e0
cmpq %r15, %rbp
jne 0x1948d
leaq 0xf0(%rsp), %rbp
cmpq %rbx, %rbp
sete %al
orb %al, %r14b
jne 0x194c2
addq $-0x10, %rbx
movq %rbx, %rdi
callq 0xe0e0
cmpq %rbp, %rbx
jne 0x194b1
leaq 0xd0(%rsp), %rax
cmpq %r12, %rax
sete %al
orb 0x10(%rsp), %al
jne 0x194ef
leaq 0xd0(%rsp), %rbx
addq $-0x10, %r12
movq %r12, %rdi
callq 0xe0e0
cmpq %rbx, %r12
jne 0x194de
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0e0
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x194f4
leaq 0x58(%rsp), %rax
cmpq %r13, %rax
setne %al
cmpb $0x0, 0x8(%rsp)
je 0x1953a
testb %al, %al
je 0x1953a
leaq 0x58(%rsp), %rbx
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0e0
cmpq %rbx, %r13
jne 0x19529
leaq 0x28(%rsp), %rbx
movq (%rsp), %r14
jmp 0x196c2
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %ebx, %ebx
movq %r14, 0x148(%rsp)
jmp 0x19377
jmp 0x196ba
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
movq %r14, 0xa0(%rsp)
jmp 0x19617
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
jmp 0x195b0
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
movq %r13, 0x40(%rsp)
jmp 0x193aa
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
movq %r15, %rbp
xorl %r14d, %r14d
movl $0x0, 0x10(%rsp)
jmp 0x19473
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movq %r14, %r12
jmp 0x194c2
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
jmp 0x193d4
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %r14d, %r14d
movl $0x0, 0x10(%rsp)
jmp 0x193f6
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
xorl %eax, %eax
xorl %r14d, %r14d
movl $0x0, 0x10(%rsp)
jmp 0x19417
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
leaq 0xf0(%rsp), %rax
movq %rax, 0x90(%rsp)
xorl %r14d, %r14d
movl $0x0, 0x10(%rsp)
jmp 0x1944a
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
leaq 0x58(%rsp), %r13
jmp 0x194ef
jmp 0x196ba
jmp 0x196ba
jmp 0x19711
movq %rax, %r14
jmp 0x197ee
jmp 0x19716
jmp 0x19711
movq %rax, (%rsp)
movb $0x1, %al
movl %eax, 0x8(%rsp)
leaq 0xb0(%rsp), %rax
cmpq %r15, %rax
je 0x196b0
leaq 0xb0(%rsp), %rbx
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0e0
cmpq %rbx, %r15
jne 0x1969f
leaq 0x58(%rsp), %r13
jmp 0x1950e
movq %rax, %r14
leaq 0x28(%rsp), %rbx
leaq 0xc00(%rsp), %rdi
callq 0x60f0
leaq 0x270(%rsp), %rdi
callq 0x60f0
movq 0x18(%rsp), %rdi
cmpq %rbx, %rdi
je 0x196f3
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x48(%rsp), %rdi
callq 0xe0e0
leaq 0xa00(%rsp), %rdi
callq 0x6520
jmp 0x1973e
movq %rax, %r14
jmp 0x1974b
movq %rax, %r14
jmp 0x1973e
movq %rax, %r14
movq 0x270(%rsp), %rdi
leaq 0x280(%rsp), %rax
cmpq %rax, %rdi
je 0x1973e
movq 0x280(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0xf30(%rsp), %rdi
callq 0x6520
leaq 0xe08(%rsp), %rdi
callq 0x19a90
leaq 0x1c0(%rsp), %rax
movq 0x1b0(%rsp), %rdi
cmpq %rax, %rdi
je 0x1977d
movq 0x1c0(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x6c0(%rsp), %rdi
callq 0x19b2c
leaq 0x1130(%rsp), %rdi
callq 0x60f0
leaq 0x7f8(%rsp), %rdi
callq 0x60f0
movq 0x1d0(%rsp), %rdi
leaq 0x1e0(%rsp), %rax
cmpq %rax, %rdi
je 0x197c9
movq 0x1e0(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x120(%rsp), %rax
movq 0x110(%rsp), %rdi
cmpq %rax, %rdi
je 0x197ee
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x6390
leaq 0x478(%rsp), %rdi
callq 0x19b64
leaq 0x518(%rsp), %rdi
callq 0x19b96
leaq 0x778(%rsp), %rdi
callq 0x19bbc
movq %r14, %rdi
callq 0x6640
nop