// File: /workspace/github_cpp_makefile_star2_O2/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 $0x1328, %rsp           # imm = 0x1328
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x8fdf(%rip), %rsi      # 0x1be6c
leaq 0x768(%rsp), %rdi
leaq 0xbf8(%rsp), %rdx
callq 0x95d4
movq 0x170c7(%rip), %rax     # 0x29f70
movl (%rax), %edx
movl %edx, %ecx
shrl %ecx
leaq 0xb78(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x74e0
leaq 0x768(%rsp), %rdi
callq 0x7758
leaq 0xb78(%rsp), %rdi
callq 0x7410
leaq 0x3b0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x8f84(%rip), %rsi      # 0x1be74
leaq 0x8f84(%rip), %rdx      # 0x1be7b
callq 0x76b0
leaq 0x8f8c(%rip), %rsi      # 0x1be8f
leaq 0x8f8f(%rip), %rdx      # 0x1be99
movq %rax, %rdi
callq 0x76b0
movq %rax, %r14
callq 0x15783
movq %rax, %r15
leaq 0x8fa9(%rip), %rsi      # 0x1becd
leaq 0x768(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0x768(%rsp), %rsi
callq 0x7200
leaq 0x8f7a(%rip), %rsi      # 0x1bec8
leaq 0x8f7c(%rip), %rcx      # 0x1bed1
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8f83(%rip), %rsi      # 0x1bef5
leaq 0xbf8(%rsp), %rdi
leaq 0x130(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0xbf8(%rsp), %rsi
callq 0x7200
leaq 0x87c1(%rip), %rsi      # 0x1b760
leaq 0x4a8(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
callq 0x95d4
leaq 0x4a8(%rsp), %rsi
movq %r15, %rdi
callq 0x15792
leaq 0x8f27(%rip), %rsi      # 0x1bef2
leaq 0x8f28(%rip), %rcx      # 0x1befa
movq %r14, %rdi
movq %rax, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8f3d(%rip), %rsi      # 0x1bf2c
leaq 0x970(%rsp), %rdi
leaq 0x3e8(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0x970(%rsp), %rsi
callq 0x7200
leaq 0x8f07(%rip), %rsi      # 0x1bf23
leaq 0x8f0e(%rip), %rcx      # 0x1bf31
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8eec(%rip), %rsi      # 0x1bf2c
leaq 0xf28(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0xf28(%rsp), %rsi
callq 0x7200
leaq 0x8ed8(%rip), %rsi      # 0x1bf45
leaq 0x8ee0(%rip), %rcx      # 0x1bf54
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x15804
movq %rax, %r15
leaq 0x8e3c(%rip), %rsi      # 0x1becd
leaq 0x1128(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0x1128(%rsp), %rsi
callq 0x7200
movb $0x1, 0x8c(%r15)
leaq 0x8ea7(%rip), %rsi      # 0x1bf6d
leaq 0x8ea6(%rip), %rcx      # 0x1bf73
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8e42(%rip), %rsi      # 0x1bf2c
leaq 0xe00(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0xe00(%rsp), %rsi
callq 0x7200
movb $0x1, 0x8c(%r15)
leaq 0x8e5a(%rip), %rsi      # 0x1bf79
leaq 0x8e5f(%rip), %rcx      # 0x1bf85
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8de9(%rip), %rsi      # 0x1bf2c
leaq 0x6b0(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0x6b0(%rsp), %rsi
callq 0x7200
movb $0x1, 0x8c(%r15)
leaq 0x8e1c(%rip), %rsi      # 0x1bf91
leaq 0x8e1f(%rip), %rcx      # 0x1bf9b
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
movq %rax, %r14
callq 0x1578a
movq %rax, %r15
leaq 0x8d93(%rip), %rsi      # 0x1bf2c
leaq 0x408(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0x95d4
leaq 0x18(%r15), %rdi
leaq 0x408(%rsp), %rsi
callq 0x7200
movb $0x1, 0x8c(%r15)
leaq 0x8dd7(%rip), %rsi      # 0x1bfa5
leaq 0x8dd7(%rip), %rcx      # 0x1bfac
movq %r14, %rdi
movq %r15, %rdx
callq 0x76f0
leaq 0x408(%rsp), %rdi
callq 0x7758
leaq 0x6b0(%rsp), %rdi
callq 0x7758
leaq 0xe00(%rsp), %rdi
callq 0x7758
leaq 0x1128(%rsp), %rdi
callq 0x7758
leaq 0xf28(%rsp), %rdi
callq 0x7758
leaq 0x970(%rsp), %rdi
callq 0x7758
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0xbf8(%rsp), %rdi
callq 0x7758
leaq 0x768(%rsp), %rdi
callq 0x7758
leaq 0x3b0(%rsp), %rdi
callq 0x7490
leaq 0x8d04(%rip), %rsi      # 0x1bf6d
leaq 0x3b0(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0x73c0
leaq 0x8cf9(%rip), %rsi      # 0x1bf79
leaq 0x3b0(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0x73c0
leaq 0x8cfa(%rip), %rsi      # 0x1bf91
leaq 0x3b0(%rsp), %rdi
pushq $0x1
popq %rdx
callq 0x73c0
leaq 0x8cf7(%rip), %rsi      # 0x1bfa5
leaq 0x3b0(%rsp), %rdi
pushq $0x1
popq %r15
movl %r15d, %edx
callq 0x73c0
leaq 0x408(%rsp), %rdi
callq 0x7190
leaq 0x768(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x1580c
leaq 0x768(%rsp), %rdi
leaq 0xb78(%rsp), %rsi
callq 0x1589c
movq %rax, %r14
leaq 0x3b0(%rsp), %rsi
movq %rax, %rdi
callq 0x7600
leaq 0xbf8(%rsp), %rdi
movq %r14, %rsi
callq 0x158ba
leaq 0xbf8(%rsp), %rdi
leaq 0x408(%rsp), %rsi
xorl %edx, %edx
callq 0x7650
leaq 0xbf8(%rsp), %rdi
callq 0x15abc
leaq 0x768(%rsp), %rdi
callq 0x15948
leaq 0x8c62(%rip), %rsi      # 0x1bfb3
leaq 0x768(%rsp), %rdi
leaq 0xbf8(%rsp), %rdx
callq 0x95d4
leaq 0x418(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x15968
movq %rax, %r14
leaq 0x768(%rsp), %rdi
callq 0x7758
cmpl $0x5, %ebp
jl 0x1349b
testq %r14, %r14
jne 0x1349b
leaq 0x8bc9(%rip), %rsi      # 0x1bf6d
leaq 0x768(%rsp), %rdi
leaq 0xbf8(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19610
movsd (%rax), %xmm0
movsd %xmm0, (%rsp)
leaq 0x768(%rsp), %rdi
callq 0x7758
movsd (%rsp), %xmm1
movsd %xmm1, 0x40(%rsp)
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
ja 0x13534
ucomisd 0x82db(%rip), %xmm1     # 0x1b6e8
ja 0x13534
leaq 0x8aae(%rip), %rsi      # 0x1bec8
leaq 0x768(%rsp), %rdi
leaq 0x4a8(%rsp), %rdx
callq 0x95d4
leaq 0x768(%rsp), %rsi
leaq 0x418(%rsp), %rdi
callq 0x15968
testq %rax, %rax
je 0x13554
leaq 0x8a74(%rip), %rsi      # 0x1bec8
leaq 0xbf8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0xbf8(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19874
movq (%rax), %rbx
leaq 0xbf8(%rsp), %rdi
callq 0x7758
jmp 0x1355e
movq 0x16afe(%rip), %rdi     # 0x29fa0
leaq 0x8b0f(%rip), %rsi      # 0x1bfb8
callq 0x7380
movq %rax, %rdi
callq 0x71c0
movq 0x16ae3(%rip), %rdi     # 0x29fa0
leaq 0x8afb(%rip), %rsi      # 0x1bfbf
callq 0x7380
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x7380
leaq 0x8ae7(%rip), %rsi      # 0x1bfc2
movq %rax, %rdi
callq 0x7380
leaq 0x8ae5(%rip), %rsi      # 0x1bfcf
movq %rax, %rdi
callq 0x7380
leaq 0x8b0d(%rip), %rsi      # 0x1c006
movq %rax, %rdi
callq 0x7380
leaq 0x8b2d(%rip), %rsi      # 0x1c035
movq %rax, %rdi
callq 0x7380
movq %rax, %rdi
callq 0x71c0
xorl %r15d, %r15d
movq 0x16a7e(%rip), %rdi     # 0x29fa0
leaq 0xb78(%rsp), %rsi
callq 0x70b0
jmp 0x14c7e
movq 0x16a65(%rip), %rdi     # 0x29fa0
leaq 0x8b1f(%rip), %rsi      # 0x1c061
callq 0x7380
movq %rax, %rdi
callq 0x71c0
jmp 0x14c7e
xorl %edi, %edi
callq 0x7350
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
callq 0x7758
movq %rbx, 0x108(%rsp)
movl %ebx, %edi
callq 0x7370
leaq 0x89f8(%rip), %rsi      # 0x1bf79
leaq 0x768(%rsp), %rdi
leaq 0xbf8(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0x130(%rsp), %rdi
movq %rax, %rsi
callq 0x74d0
leaq 0x768(%rsp), %rdi
callq 0x7758
leaq 0x89ba(%rip), %rsi      # 0x1bf91
leaq 0x768(%rsp), %rdi
leaq 0xbf8(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x768(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0x1c0(%rsp), %rdi
movq %rax, %rsi
callq 0x74d0
leaq 0x768(%rsp), %rdi
callq 0x7758
leaq 0x768(%rsp), %rdi
leaq 0x130(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
leaq 0xbf8(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
callq 0x7290
movq %rax, %rbx
leaq 0x6b0(%rsp), %rdi
leaq 0x768(%rsp), %rsi
leaq 0xbf8(%rsp), %rdx
callq 0x87bc
leaq 0x8870(%rip), %rsi      # 0x1bef2
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0x3e8(%rsp), %rdi
movq %rax, %rsi
callq 0x74d0
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0x89b3(%rip), %rsi      # 0x1c08b
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x4a8(%rsp), %rsi
leaq 0x418(%rsp), %rdi
callq 0x15968
movq %rax, %r14
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0x880a(%rip), %rsi      # 0x1bf23
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x4a8(%rsp), %rsi
leaq 0x418(%rsp), %rdi
callq 0x15968
xorl %ebp, %ebp
testq %r14, %r14
setne %bpl
xorl %r14d, %r14d
movq %rax, 0x150(%rsp)
testq %rax, %rax
setne %r14b
leaq 0x4a8(%rsp), %rdi
callq 0x7758
movsd 0x40(%rsp), %xmm0
leaq 0xe00(%rsp), %rdi
leaq 0x6b0(%rsp), %rsi
leaq 0x3e8(%rsp), %rdx
movl %ebp, %ecx
movl %r14d, %r8d
callq 0xfaf0
leaq 0xe00(%rsp), %rdi
callq 0xff4c
callq 0x7290
subq %rbx, %rax
cvtsi2sd %rax, %xmm0
divsd 0x8653(%rip), %xmm0     # 0x1be08
movsd %xmm0, 0xa0(%rsp)
leaq 0xe00(%rsp), %rdi
callq 0xff46
movq %rax, (%rsp)
leaq 0x6b0(%rsp), %rdi
callq 0x8d06
movsd %xmm0, 0x10(%rsp)
leaq 0x6b0(%rsp), %rdi
callq 0x8d0c
movsd %xmm0, 0x98(%rsp)
movq (%rsp), %rbx
movq %rbx, %rdi
callq 0xaccc
movsd %xmm0, 0x8(%rsp)
movq %rbx, %rdi
callq 0xacd2
movsd %xmm0, 0x28(%rsp)
movq %rbx, %rdi
callq 0xacd8
movsd %xmm0, 0x38(%rsp)
movq %rbx, %rdi
callq 0xace4
movsd %xmm0, 0x30(%rsp)
movsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x158(%rsp)
movq 0x16756(%rip), %rdi     # 0x29fa0
callq 0x71c0
movq 0x1674a(%rip), %rdi     # 0x29fa0
leaq 0x8836(%rip), %rsi      # 0x1c093
callq 0x7380
movq %rax, %rdi
callq 0x71c0
movq 0x1672f(%rip), %rdi     # 0x29fa0
leaq 0x8860(%rip), %rsi      # 0x1c0d8
callq 0x7380
movq %rax, %rdi
movsd 0x10(%rsp), %xmm0
callq 0x75a0
leaq 0x8856(%rip), %rsi      # 0x1c0e8
movq %rax, %rdi
callq 0x7380
movq %rax, %rdi
movsd 0x98(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movq 0x166e6(%rip), %rdi     # 0x29fa0
leaq 0x883b(%rip), %rsi      # 0x1c0fc
callq 0x7380
movq %rax, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x75a0
leaq 0x882e(%rip), %rsi      # 0x1c109
movq %rax, %rdi
callq 0x7380
movq %rax, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movq 0x166a0(%rip), %rdi     # 0x29fa0
leaq 0x8813(%rip), %rsi      # 0x1c11a
callq 0x7380
movq %rax, %rdi
movsd 0x38(%rsp), %xmm0
callq 0x75a0
leaq 0x8805(%rip), %rsi      # 0x1c126
movq %rax, %rdi
callq 0x7380
movq %rax, %rdi
movsd 0x30(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movq 0x1665a(%rip), %rdi     # 0x29fa0
leaq 0x87ec(%rip), %rsi      # 0x1c139
callq 0x7380
movsd 0x40(%rsp), %xmm0
movq %rax, %rdi
callq 0x75a0
leaq 0x87db(%rip), %rsi      # 0x1c142
movq %rax, %rdi
callq 0x7380
movsd 0x7d71(%rip), %xmm0     # 0x1b6e8
movsd 0x158(%rsp), %xmm2
subsd %xmm2, %xmm0
movsd 0x30(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd 0x38(%rsp), %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %rax, %rdi
movsd %xmm0, 0x10(%rsp)
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movq 0x165e7(%rip), %rdi     # 0x29fa0
leaq 0x8791(%rip), %rsi      # 0x1c151
callq 0x7380
movq 0x108(%rsp), %rsi
movq %rax, %rdi
callq 0x7360
leaq 0x877e(%rip), %rsi      # 0x1c15a
movq %rax, %rdi
callq 0x7380
movsd 0xa0(%rsp), %xmm0
movq %rax, %rdi
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
leaq 0x85a1(%rip), %rsi      # 0x1bfa5
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0xf28(%rsp), %rdi
pushq $0x10
popq %rdx
movq %rax, %rsi
callq 0x7710
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0xf28(%rsp), %rdi
movsd 0x10(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
leaq 0xf28(%rsp), %rdi
movsd 0x30(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
leaq 0xf28(%rsp), %rdi
movsd 0x38(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
leaq 0xf28(%rsp), %rdi
movsd 0x8(%rsp), %xmm0
callq 0x75a0
leaq 0x84ff(%rip), %rsi      # 0x1bfc0
movq %rax, %rdi
callq 0x7380
movq %rax, %rdi
movsd 0x28(%rsp), %xmm0
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movsd 0xa0(%rsp), %xmm0
leaq 0xf28(%rsp), %rdi
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
xorl %ebx, %ebx
leaq 0x6b0(%rsp), %r13
leaq 0x4a8(%rsp), %rbp
leaq 0x84aa(%rip), %r15      # 0x1bfc0
leaq 0x970(%rsp), %r14
movq %r13, %rdi
callq 0x8d3c
cmpl %eax, %ebx
jge 0x13c1a
movq %r13, %rdi
movl %ebx, %esi
callq 0x8d72
movq %rax, %rdi
callq 0x12e5c
movq %rbp, %rdi
movq %rax, %rsi
callq 0x74d0
movq (%rsp), %rdi
movl %ebx, %esi
callq 0xacea
movupd (%rax), %xmm0
movupd 0x10(%rax), %xmm1
movapd %xmm1, 0x980(%rsp)
movapd %xmm0, 0x970(%rsp)
leaq 0xf28(%rsp), %rdi
movq %rbp, %rsi
callq 0x7330
movq %rax, %rdi
movq %r15, %rsi
callq 0x7380
movq %rax, %r12
movq %r14, %rdi
callq 0x1aa7e
movq %r12, %rdi
callq 0x75a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x7380
movq %rax, %r12
movq %r14, %rdi
callq 0x1aa84
movq %r12, %rdi
callq 0x75a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x7380
movq %rax, %r12
leaq 0x980(%rsp), %rdi
callq 0x1aa7e
movq %r12, %rdi
callq 0x75a0
movq %rax, %rdi
movq %r15, %rsi
callq 0x7380
movq %rax, %r12
leaq 0x980(%rsp), %rdi
callq 0x1aa84
movq %r12, %rdi
callq 0x75a0
movq %rax, %rdi
callq 0x71c0
movq %rbp, %rdi
callq 0x7758
incl %ebx
jmp 0x13b1e
cmpq $0x0, 0x150(%rsp)
je 0x1414c
leaq 0x82f3(%rip), %rsi      # 0x1bf23
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0x1128(%rsp), %rdi
pushq $0x10
popq %rdx
movq %rax, %rsi
callq 0x7710
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0xe00(%rsp), %rdi
callq 0xff38
leaq 0x48(%rsp), %rdi
movq %rax, %rsi
callq 0xe86a
leaq 0x68(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x74d0
leaq 0x3a0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xd1f4
leaq 0x84a0(%rip), %rsi      # 0x1c166
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x3a0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x70d0
leaq 0x390(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0xd3e0
leaq 0x844d(%rip), %rsi      # 0x1c166
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x7646(%rip), %rsi      # 0x1b370
movq %rax, %rdi
callq 0xd3fa
leaq 0x390(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0x4a8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
leaq 0x970(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
movq 0x4a8(%rsp), %rax
movq -0x18(%rax), %rax
movq 0x590(%rsp,%rax), %rsi
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xe8(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0x19996
leaq 0x380(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x15982
leaq 0x838b(%rip), %rsi      # 0x1c166
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x8384(%rip), %rsi      # 0x1c170
movq %rax, %rdi
callq 0xd3fa
leaq 0x380(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0xe8(%rsp), %rbx
movq %rbx, %rdi
callq 0x7758
movq 0x970(%rsp), %rax
movq -0x18(%rax), %rax
movq 0xa58(%rsp,%rax), %rsi
movq %r15, (%rbx)
leaq 0xe8(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0x19996
leaq 0x370(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x15982
leaq 0x82ff(%rip), %rsi      # 0x1c166
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x8303(%rip), %rsi      # 0x1c17b
movq %rax, %rdi
callq 0xd3fa
leaq 0x370(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0xe8(%rsp), %rdi
callq 0x7758
leaq 0x360(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1209e
leaq 0x80ac(%rip), %rsi      # 0x1bf6d
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x360(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x749f(%rip), %rsi      # 0x1b38c
leaq 0xc8(%rsp), %rdi
callq 0xd3c6
leaq 0x6b0(%rsp), %rdi
callq 0x8d06
leaq 0xd8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movsd %xmm0, (%rsi)
callq 0xd6fc
leaq 0xe8(%rsp), %r14
leaq 0xc8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movq %r14, %rdi
callq 0xd2e8
leaq 0x7449(%rip), %rsi      # 0x1b392
leaq 0xa8(%rsp), %rdi
callq 0xd55e
leaq 0x6b0(%rsp), %rdi
callq 0x8d0c
leaq 0xb8(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
movsd %xmm0, (%rsi)
callq 0xd6fc
leaq 0xa8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movq %r15, %rdi
callq 0xd2e8
leaq 0x350(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
callq 0xd2e8
leaq 0x81c8(%rip), %rsi      # 0x1c184
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x350(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xe8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x13fe4
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14001
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1401e
leaq 0x340(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x1599c
leaq 0x7e74(%rip), %rsi      # 0x1bec8
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x340(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
movq (%rsp), %rdi
callq 0xacba
leaq 0x330(%rsp), %rdi
movq %rax, %rsi
callq 0xe86a
leaq 0x80f3(%rip), %rsi      # 0x1c18c
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x330(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x320(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x120ec
leaq 0x80c0(%rip), %rsi      # 0x1c19a
leaq 0x48(%rsp), %rdi
callq 0xd3fa
leaq 0x320(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x159b6
leaq 0x970(%rsp), %rdi
callq 0x7100
leaq 0x4a8(%rsp), %rdi
callq 0x7100
leaq 0x68(%rsp), %rdi
callq 0x7758
leaq 0x48(%rsp), %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
callq 0x7530
leaq 0x7df2(%rip), %rsi      # 0x1bf45
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x4a8(%rsp), %rsi
leaq 0x418(%rsp), %rdi
callq 0x15968
movq %rax, %rbx
leaq 0x4a8(%rsp), %rdi
callq 0x7758
testq %rbx, %rbx
je 0x14c13
leaq 0x7da8(%rip), %rsi      # 0x1bf45
leaq 0x4a8(%rsp), %rdi
leaq 0x970(%rsp), %rdx
callq 0x95d4
leaq 0x408(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0x73d0
movq %rax, %rdi
callq 0x19905
leaq 0x1128(%rsp), %rdi
pushq $0x10
popq %rdx
movq %rax, %rsi
callq 0x7710
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xd1f4
leaq 0xe8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x74d0
leaq 0x310(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xd1f4
leaq 0x7f3c(%rip), %rsi      # 0x1c166
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x310(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0x70d0
leaq 0x300(%rsp), %rdi
leaq 0x4a8(%rsp), %rsi
callq 0xd3e0
leaq 0x7ee6(%rip), %rsi      # 0x1c166
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x70df(%rip), %rsi      # 0x1b370
movq %rax, %rdi
callq 0xd3fa
leaq 0x300(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0x4a8(%rsp), %rdi
leaq 0x130(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
leaq 0x970(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
pushq $0x8
popq %rdx
callq 0x75b0
movq 0x4a8(%rsp), %rax
movq -0x18(%rax), %rax
movq 0x590(%rsp,%rax), %rsi
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x68(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0x19996
leaq 0x2f0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x15982
leaq 0x7e2d(%rip), %rsi      # 0x1c166
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x7e26(%rip), %rsi      # 0x1c170
movq %rax, %rdi
callq 0xd3fa
leaq 0x2f0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x68(%rsp), %rbx
movq %rbx, %rdi
callq 0x7758
movq 0x970(%rsp), %rax
movq -0x18(%rax), %rax
movq 0xa58(%rsp,%rax), %rsi
movq %r14, (%rbx)
leaq 0x68(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0x19996
leaq 0x2e0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x15982
leaq 0x7daa(%rip), %rsi      # 0x1c166
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x7dae(%rip), %rsi      # 0x1c17b
movq %rax, %rdi
callq 0xd3fa
leaq 0x2e0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x68(%rsp), %rdi
callq 0x7758
leaq 0x2d0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x1209e
leaq 0x7b5a(%rip), %rsi      # 0x1bf6d
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x2d0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x6f4d(%rip), %rsi      # 0x1b38c
leaq 0xc8(%rsp), %rdi
callq 0xd3c6
leaq 0x6b0(%rsp), %rdi
callq 0x8d06
leaq 0xd8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movsd %xmm0, (%rsi)
callq 0xd6fc
leaq 0x68(%rsp), %r15
leaq 0xc8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movq %r15, %rdi
callq 0xd2e8
leaq 0x6efd(%rip), %rsi      # 0x1b392
leaq 0xa8(%rsp), %rdi
callq 0xd55e
leaq 0x6b0(%rsp), %rdi
callq 0x8d0c
leaq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
movsd %xmm0, (%rsi)
callq 0xd6fc
leaq 0xa8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movq %r14, %rdi
callq 0xd2e8
leaq 0x2c0(%rsp), %rdi
leaq 0x68(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
callq 0xd2e8
leaq 0x7c7f(%rip), %rsi      # 0x1c184
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x2c0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x68, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1452d
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14547
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14564
leaq 0x2b0(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x1599c
leaq 0x792e(%rip), %rsi      # 0x1bec8
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x2b0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x2a0(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xd1f4
leaq 0x7bb5(%rip), %rsi      # 0x1c18c
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x2a0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x7b89(%rip), %rsi      # 0x1c18c
leaq 0x18(%rsp), %rdi
callq 0xd3fa
movq %rax, 0x8(%rsp)
leaq 0x290(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xd5e8
leaq 0x6d3f(%rip), %rsi      # 0x1b369
movq 0x8(%rsp), %rdi
callq 0xd3fa
leaq 0x290(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x78(%rsp), %rax
movq %rax, 0x28(%rsp)
leaq 0x58(%rsp), %r14
leaq 0x88(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x180(%rsp), %rax
movq %rax, 0x98(%rsp)
xorl %ebx, %ebx
leaq 0x68(%rsp), %r12
pushq $0x2
popq %r15
leaq 0x6b0(%rsp), %rdi
callq 0x8d3c
cmpl %eax, %ebx
jge 0x14a56
leaq 0x6b0(%rsp), %rdi
movl %ebx, %esi
callq 0x8d72
movl %ebx, %esi
movq %rax, %rbx
movq (%rsp), %rdi
movl %esi, 0x38(%rsp)
callq 0xacea
movq %rax, %r13
movq %rbx, %rdi
callq 0x12e5c
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x6c93(%rip), %rsi      # 0x1b369
callq 0xd3fa
movq %rax, 0x30(%rsp)
leaq 0xc8(%rsp), %rdi
leaq 0x6c81(%rip), %rsi      # 0x1b370
callq 0xd25c
leaq 0xd8(%rsp), %rdi
movq %rbx, %rsi
callq 0xd3e0
movq %r12, %rdi
leaq 0xc8(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
movl %r15d, %r8d
callq 0xd2e8
leaq 0xa8(%rsp), %rdi
leaq 0x6c49(%rip), %rsi      # 0x1b375
callq 0xd6c8
leaq 0x110(%rsp), %rdi
leaq 0x6c3f(%rip), %rsi      # 0x1b37f
callq 0xd6e2
movq %r13, %rdi
callq 0x1aa7e
movsd %xmm0, 0x198(%rsp)
leaq 0x120(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0xd6fc
leaq 0x48(%rsp), %rdi
leaq 0x110(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x1a0(%rsp), %rdi
leaq 0x6e88(%rip), %rsi      # 0x1b61d
callq 0xd6e2
movl %r15d, %ebp
movq %r13, %rdi
callq 0x1aa84
movsd %xmm0, 0x190(%rsp)
leaq 0x1b0(%rsp), %rdi
leaq 0x190(%rsp), %rsi
callq 0xd6fc
movq %r14, %rdi
leaq 0x1a0(%rsp), %rsi
pushq $0x2
popq %rbx
movq %rbx, %rdx
pushq $0x1
popq %rcx
movl %ebp, %r15d
movl %ebp, %r8d
callq 0xd2e8
leaq 0xb8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movq %rbx, %rdx
pushq $0x1
popq %rcx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x78(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
movq %rbx, %rdx
pushq $0x1
popq %rcx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x270(%rsp), %rdi
leaq 0x6b5a(%rip), %rsi      # 0x1b381
callq 0xd716
leaq 0x250(%rsp), %rdi
leaq 0x6b44(%rip), %rsi      # 0x1b37f
callq 0xd6e2
addq $0x10, %r13
movq %r13, %rdi
callq 0x1aa7e
movsd %xmm0, 0x168(%rsp)
leaq 0x260(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0xd6fc
leaq 0x170(%rsp), %rdi
leaq 0x250(%rsp), %rsi
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x230(%rsp), %rdi
leaq 0x6d86(%rip), %rsi      # 0x1b61d
callq 0xd6e2
movq %r13, %rdi
callq 0x1aa84
movsd %xmm0, 0x160(%rsp)
leaq 0x240(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0xd6fc
leaq 0x180(%rsp), %rdi
leaq 0x230(%rsp), %rsi
pushq $0x2
popq %rbx
movq %rbx, %rdx
pushq $0x1
popq %rbp
movl %ebp, %ecx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x280(%rsp), %rdi
leaq 0x170(%rsp), %rsi
movq %rbx, %rdx
movl %ebp, %ecx
movl %r15d, %r8d
callq 0xd2e8
leaq 0x88(%rsp), %rdi
leaq 0x270(%rsp), %rsi
movq %rbx, %rdx
movl %ebp, %ecx
movl %r15d, %r8d
callq 0xd2e8
movq 0x30(%rsp), %rdi
movq %r12, %rsi
pushq $0x3
popq %rdx
callq 0xd5fc
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x68, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14932
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x270, %rdi            # imm = 0x270
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1494c
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14969
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14986
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x149a3
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x149c0
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x149dd
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x1a0, %rdi            # imm = 0x1A0
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x149f7
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x110, %rdi            # imm = 0x110
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14a14
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14a31
movl 0x38(%rsp), %ebx
incl %ebx
jmp 0x14686
movq (%rsp), %rdi
callq 0xaccc
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
leaq 0x220(%rsp), %rdi
callq 0xd6fc
leaq 0x6910(%rip), %rsi      # 0x1b38c
movq 0x8(%rsp), %rdi
callq 0xd3fa
leaq 0x220(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
movq (%rsp), %rdi
callq 0xacd2
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
leaq 0x210(%rsp), %rdi
callq 0xd6fc
leaq 0x68cb(%rip), %rsi      # 0x1b392
movq 0x8(%rsp), %rdi
callq 0xd3fa
leaq 0x210(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
movq (%rsp), %rdi
callq 0xacd8
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
leaq 0x200(%rsp), %rdi
callq 0xd6fc
leaq 0x6887(%rip), %rsi      # 0x1b399
movq 0x8(%rsp), %rdi
callq 0xd3fa
leaq 0x200(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
movq (%rsp), %rdi
callq 0xace4
leaq 0x68(%rsp), %rsi
movsd %xmm0, (%rsi)
leaq 0x1f0(%rsp), %rdi
callq 0xd6fc
leaq 0x6841(%rip), %rsi      # 0x1b39e
movq 0x8(%rsp), %rdi
callq 0xd3fa
leaq 0x1f0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x1e0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0x120ec
leaq 0x75fc(%rip), %rsi      # 0x1c19a
leaq 0x18(%rsp), %rdi
callq 0xd3fa
leaq 0x1e0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0xd4fc
movq %rbx, %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x159b6
leaq 0x970(%rsp), %rdi
callq 0x7100
leaq 0x4a8(%rsp), %rdi
callq 0x7100
leaq 0xe8(%rsp), %rdi
callq 0x7758
leaq 0x18(%rsp), %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
callq 0x7530
leaq 0xf28(%rsp), %rdi
callq 0x7530
leaq 0xe00(%rsp), %rdi
callq 0x159ee
leaq 0x3e8(%rsp), %rdi
callq 0x7758
leaq 0x6b0(%rsp), %rdi
callq 0x15a14
leaq 0xbf8(%rsp), %rdi
callq 0x7100
leaq 0x768(%rsp), %rdi
callq 0x7100
leaq 0x1c0(%rsp), %rdi
callq 0x7758
leaq 0x130(%rsp), %rdi
callq 0x7758
xorl %r15d, %r15d
leaq 0x408(%rsp), %rdi
callq 0x15a4c
leaq 0x3b0(%rsp), %rdi
callq 0x15a7e
leaq 0xb78(%rsp), %rdi
callq 0x15a94
movl %r15d, %eax
addq $0x1328, %rsp           # imm = 0x1328
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
jmp 0x14e34
movq %rax, %rbx
leaq 0x1f0(%rsp), %rdi
jmp 0x14e34
jmp 0x156cf
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
jmp 0x14e34
jmp 0x156cf
movq %rax, %rbx
leaq 0x210(%rsp), %rdi
jmp 0x14e34
jmp 0x156cf
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
jmp 0x14e34
jmp 0x156cf
movq %rax, %rbx
leaq 0x290(%rsp), %rdi
jmp 0x14e34
movq %rax, %rbx
leaq 0x2a0(%rsp), %rdi
jmp 0x14e34
jmp 0x156cf
movq %rax, %rbx
leaq 0x2b0(%rsp), %rdi
jmp 0x14e34
movq %rax, %r12
leaq 0x2c0(%rsp), %rdi
callq 0xd290
jmp 0x14d68
movq %rax, %r12
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x68, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14d6b
movb $0x1, %bpl
jmp 0x14d8c
movq %rax, %r12
xorl %ebp, %ebp
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14d8f
jmp 0x14dcc
movq %rax, %r12
leaq 0xa8(%rsp), %rdi
callq 0xd290
jmp 0x14dc0
movq %rax, %r12
xorl %ebp, %ebp
jmp 0x14dcc
movq %rax, %r12
xorl %ebp, %ebp
movq %r15, %r14
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14dcf
leaq 0x68(%rsp), %rbx
cmpq %r14, %rbx
sete %al
orb %al, %bpl
jne 0x14e21
addq $-0x10, %r14
movq %r14, %rdi
callq 0xd290
cmpq %rbx, %r14
jne 0x14df9
jmp 0x14e21
movq %rax, %r12
leaq 0xc8(%rsp), %rdi
callq 0xd290
jmp 0x14e21
movq %rax, %r12
movq %r12, %rbx
jmp 0x155ec
movq %rax, %rbx
leaq 0x2d0(%rsp), %rdi
callq 0xd290
jmp 0x155ec
jmp 0x14e45
jmp 0x156cf
movq %rax, %rbx
jmp 0x150ba
jmp 0x156cf
movq %rax, %rbx
jmp 0x155f9
jmp 0x14eab
movq %rax, %r12
leaq 0x320(%rsp), %rdi
jmp 0x14fab
movq %rax, %r12
leaq 0x330(%rsp), %rdi
jmp 0x14fab
movq %rax, %rbx
jmp 0x150d9
jmp 0x14eab
movq %rax, %rbx
leaq 0x310(%rsp), %rdi
callq 0xd290
jmp 0x15606
movq %rax, %r12
leaq 0x340(%rsp), %rdi
jmp 0x14fab
movq %rax, %rbx
jmp 0x15606
movq %rax, %r12
leaq 0x350(%rsp), %rdi
callq 0xd290
jmp 0x14ed0
movq %rax, %rbx
jmp 0x15613
movq %rax, %r12
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xe8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14ed3
movb $0x1, %bpl
jmp 0x14eff
movq %rax, %rbx
jmp 0x1561d
movq %rax, %r12
xorl %ebp, %ebp
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14f02
jmp 0x14f3f
movq %rax, %r12
leaq 0xa8(%rsp), %rdi
callq 0xd290
jmp 0x14f33
movq %rax, %r12
xorl %ebp, %ebp
jmp 0x14f3f
movq %rax, %r12
xorl %ebp, %ebp
movq %r14, %r15
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x14f42
leaq 0xe8(%rsp), %rbx
cmpq %r15, %rbx
sete %al
orb %al, %bpl
jne 0x15158
addq $-0x10, %r15
movq %r15, %rdi
callq 0xd290
cmpq %rbx, %r15
jne 0x14f73
jmp 0x15158
jmp 0x156d7
movq %rax, %r12
leaq 0xc8(%rsp), %rdi
jmp 0x14fab
jmp 0x15155
movq %rax, %r12
leaq 0x360(%rsp), %rdi
callq 0xd290
jmp 0x15158
jmp 0x14fbc
jmp 0x15155
movq %rax, %r12
jmp 0x15108
jmp 0x15155
movq %rax, %r12
jmp 0x15165
jmp 0x14ff2
movq %rax, %r12
jmp 0x15127
jmp 0x14ff2
movq %rax, %r12
leaq 0x3a0(%rsp), %rdi
callq 0xd290
jmp 0x15172
movq %rax, %r12
jmp 0x15172
movq %rax, %r12
jmp 0x1517c
jmp 0x156d7
jmp 0x151e8
jmp 0x156dc
jmp 0x156d7
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x156c6
jmp 0x1505e
jmp 0x15049
jmp 0x1505e
movq %rax, %rbx
leaq 0x4a8(%rsp), %rdi
callq 0x7758
jmp 0x15706
movq %rax, %rbx
jmp 0x15706
movq %rax, %rbx
jmp 0x15713
movq %rax, %rbx
jmp 0x15720
movq %rax, %rbx
jmp 0x1572d
movq %rax, %rbx
jmp 0x1573a
movq %rax, %rbx
jmp 0x15747
jmp 0x156be
jmp 0x151e8
jmp 0x156be
movq %rax, %rbx
leaq 0x2e0(%rsp), %rdi
jmp 0x150b5
movq %rax, %rbx
leaq 0x2f0(%rsp), %rdi
callq 0xd290
leaq 0x68(%rsp), %rdi
callq 0x7758
jmp 0x155ec
movq %rax, %rbx
leaq 0x300(%rsp), %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
callq 0x7758
jmp 0x15606
movq %rax, %r12
leaq 0x370(%rsp), %rdi
jmp 0x15103
movq %rax, %r12
leaq 0x380(%rsp), %rdi
callq 0xd290
leaq 0xe8(%rsp), %rdi
callq 0x7758
jmp 0x15158
movq %rax, %r12
leaq 0x390(%rsp), %rdi
callq 0xd290
leaq 0x4a8(%rsp), %rdi
callq 0x7758
jmp 0x15172
movq %rax, %r12
jmp 0x15186
movq %rax, %rbx
leaq 0xbf8(%rsp), %rdi
callq 0x7758
jmp 0x151eb
jmp 0x156cf
movq %rax, %r12
leaq 0x970(%rsp), %rdi
callq 0x7100
leaq 0x4a8(%rsp), %rdi
callq 0x7100
leaq 0x68(%rsp), %rdi
callq 0x7758
leaq 0x48(%rsp), %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
callq 0x7530
movq %r12, %rbx
jmp 0x156ec
jmp 0x156dc
jmp 0x156dc
jmp 0x156be
jmp 0x156be
movq %rax, %rbx
leaq 0x4a8(%rsp), %rdi
callq 0x7758
jmp 0x156f9
movq %rax, %rbx
leaq 0x4a8(%rsp), %rdi
jmp 0x1570e
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
jmp 0x15742
jmp 0x151e8
jmp 0x151e8
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
jmp 0x1574f
jmp 0x156be
movq %rax, %rbx
leaq 0xbf8(%rsp), %rdi
callq 0x15abc
jmp 0x15284
jmp 0x156be
jmp 0x15324
jmp 0x1532c
jmp 0x15296
jmp 0x152a8
jmp 0x152ba
jmp 0x152cc
jmp 0x15315
jmp 0x1531a
jmp 0x1523b
movq %rax, %rbx
jmp 0x152f6
jmp 0x1531f
jmp 0x1532c
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
callq 0x7758
jmp 0x1577b
movq %rax, %rbx
jmp 0x1577b
movq %rax, %rbx
leaq 0x408(%rsp), %rdi
callq 0x7758
jmp 0x15299
jmp 0x156d7
movq %rax, %rbx
leaq 0x768(%rsp), %rdi
callq 0x15948
jmp 0x15754
movq %rax, %rbx
leaq 0x6b0(%rsp), %rdi
callq 0x7758
jmp 0x152ab
movq %rax, %rbx
leaq 0xe00(%rsp), %rdi
callq 0x7758
jmp 0x152bd
movq %rax, %rbx
leaq 0x1128(%rsp), %rdi
callq 0x7758
jmp 0x152cf
movq %rax, %rbx
leaq 0xf28(%rsp), %rdi
callq 0x7758
leaq 0x970(%rsp), %rdi
callq 0x7758
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0xbf8(%rsp), %rdi
callq 0x7758
leaq 0x768(%rsp), %rdi
callq 0x7758
jmp 0x1576e
movq %rax, %rbx
jmp 0x152dc
movq %rax, %rbx
jmp 0x152e9
movq %rax, %rbx
jmp 0x15303
movq %rax, %rbx
jmp 0x15761
movq %rax, %rbx
jmp 0x1576e
movq %rax, (%rsp)
pushq $0x20
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x68, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1533b
xorl %ebp, %ebp
jmp 0x1535d
movq %rax, (%rsp)
movb $0x1, %bpl
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x270, %rdi            # imm = 0x270
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x15360
movb $0x1, %r15b
jmp 0x153e2
movq %rax, (%rsp)
movb $0x1, %r12b
xorl %r15d, %r15d
movb $0x1, %bpl
jmp 0x15402
movq %rax, (%rsp)
jmp 0x15432
movq %rax, (%rsp)
movb $0x1, %r12b
xorl %r15d, %r15d
leaq 0x170(%rsp), %rax
movq %rax, 0x98(%rsp)
movb $0x1, %bpl
jmp 0x1543b
movq %rax, (%rsp)
leaq 0x250(%rsp), %rdi
callq 0xd290
jmp 0x153d0
movq %rax, (%rsp)
movb $0x1, %bpl
jmp 0x15490
movq %rax, (%rsp)
movb $0x1, %bpl
xorl %r15d, %r15d
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x153e5
xorl %r12d, %r12d
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x230, %rdi            # imm = 0x230
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x15405
jmp 0x1543b
movq %rax, (%rsp)
leaq 0x230(%rsp), %rdi
callq 0xd290
movb $0x1, %bpl
xorl %r15d, %r15d
movb $0x1, %r12b
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x1543e
leaq 0x170(%rsp), %rbx
movq 0x98(%rsp), %rcx
cmpq %rcx, %rbx
setne %al
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x1548b
movq %rcx, %r12
addq $-0x10, %r12
movq %r12, %rdi
callq 0xd290
cmpq %rbx, %r12
jne 0x1547a
testb %r15b, %r15b
jne 0x1549d
leaq 0x270(%rsp), %rdi
callq 0xd290
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xa8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x154a0
movb $0x1, %r15b
movq 0x10(%rsp), %rax
movq %rax, 0x28(%rsp)
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x154ca
xorl %r12d, %r12d
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x1a0, %rdi            # imm = 0x1A0
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x154e7
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x110, %rdi            # imm = 0x110
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x15504
leaq 0x48(%rsp), %rbx
cmpq %r14, %rbx
setne %al
andb %al, %r12b
cmpb $0x1, %r12b
jne 0x15543
addq $-0x10, %r14
movq %r14, %rdi
callq 0xd290
cmpq %rbx, %r14
jne 0x15532
testb %r15b, %r15b
je 0x15594
jmp 0x155a1
movq %rax, (%rsp)
movb $0x1, %bpl
jmp 0x1549d
jmp 0x156cf
movq %rax, (%rsp)
jmp 0x15680
movq %rax, (%rsp)
leaq 0x110(%rsp), %rdi
callq 0xd290
jmp 0x15591
movq %rax, (%rsp)
movb $0x1, %bpl
leaq 0x78(%rsp), %rax
movq %rax, 0x10(%rsp)
jmp 0x1549d
movq %rax, (%rsp)
movb $0x1, %bpl
leaq 0xa8(%rsp), %rdi
callq 0xd290
movq 0x28(%rsp), %r12
pushq $0x10
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0xc8, %rdi
callq 0xd290
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x155a9
leaq 0x68(%rsp), %rbx
cmpq %r12, %rbx
setne %al
andb %al, %bpl
cmpb $0x1, %bpl
jne 0x155e8
addq $-0x10, %r12
movq %r12, %rdi
callq 0xd290
cmpq %rbx, %r12
jne 0x155d7
movq (%rsp), %rbx
leaq 0x970(%rsp), %rdi
callq 0x7100
leaq 0x4a8(%rsp), %rdi
callq 0x7100
leaq 0xe8(%rsp), %rdi
callq 0x7758
leaq 0x18(%rsp), %rdi
callq 0xd290
leaq 0x1128(%rsp), %rdi
callq 0x7530
jmp 0x156ec
movq %rax, (%rsp)
movb $0x1, %bpl
jmp 0x155a1
movq %rax, (%rsp)
leaq 0xc8(%rsp), %rdi
callq 0xd290
jmp 0x155e8
movq %rax, (%rsp)
movb $0x1, %bpl
xorl %r15d, %r15d
jmp 0x154c7
movq %rax, (%rsp)
movb $0x1, %r12b
xorl %r15d, %r15d
movb $0x1, %bpl
jmp 0x154e4
movq %rax, (%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0xd290
movb $0x1, %bpl
xorl %r15d, %r15d
movb $0x1, %r12b
jmp 0x15501
movq %rax, (%rsp)
jmp 0x155e8
movq %rax, (%rsp)
movb $0x1, %r12b
xorl %r15d, %r15d
leaq 0x48(%rsp), %r14
movb $0x1, %bpl
jmp 0x15501
movq %rax, (%rsp)
movb $0x1, %bpl
jmp 0x155a6
jmp 0x156cf
jmp 0x156cf
movq %rax, %rbx
jmp 0x15754
movq %rax, %rbx
jmp 0x156f9
jmp 0x156dc
jmp 0x156d7
movq %rax, %rbx
jmp 0x155ec
movq %rax, %rbx
jmp 0x156ec
movq %rax, %rbx
leaq 0x4a8(%rsp), %rdi
callq 0x7758
leaq 0xf28(%rsp), %rdi
callq 0x7530
leaq 0xe00(%rsp), %rdi
callq 0x159ee
leaq 0x3e8(%rsp), %rdi
callq 0x7758
leaq 0x6b0(%rsp), %rdi
callq 0x15a14
leaq 0xbf8(%rsp), %rdi
callq 0x7100
leaq 0x768(%rsp), %rdi
callq 0x7100
leaq 0x1c0(%rsp), %rdi
callq 0x7758
leaq 0x130(%rsp), %rdi
callq 0x7758
leaq 0x408(%rsp), %rdi
callq 0x15a4c
leaq 0x3b0(%rsp), %rdi
callq 0x15a7e
leaq 0xb78(%rsp), %rdi
callq 0x15a94
movq %rbx, %rdi
callq 0x7660