// File: /workspace/github_cpp_makefile_star2_O3/harry830622[P]floorplanner/src/floorplan.cpp
// Function: Floorplan::Pack(Database const&)
void Floorplan::Pack(const Database& database) {
  b_star_tree_.UnvisitAll();

  const int root_id = b_star_tree_.root_id();
  const int root_macro_id = macro_id_by_node_id_.at(root_id);
  const Macro& root_macro = database.macro(root_macro_id);
  double root_macro_width = root_macro.width();
  double root_macro_height = root_macro.height();
  const bool is_root_macro_rotated = is_macro_rotated_by_id_.at(root_macro_id);

  if (is_root_macro_rotated) {
    swap(root_macro_width, root_macro_height);
  }

  Contour contour;
  macro_bounding_box_by_id_.at(root_macro_id) =
      contour.Update(0.0, root_macro_width, root_macro_height);

  if (is_drawing_) {
    drawing_["macros"] = Json::array();
    const auto& root_macro_bounding_box =
        macro_bounding_box_by_id_.at(root_macro_id);
    const Point& root_macro_lower_left = root_macro_bounding_box.first;
    const Point& root_macro_upper_right = root_macro_bounding_box.second;
    const string& root_macro_name = root_macro.name();
    drawing_["macros"].push_back(
        {{"name", root_macro_name},
         {"lowerLeft",
          {{"x", root_macro_lower_left.x()}, {"y", root_macro_lower_left.y()}}},
         {"upperRight",
          {{"x", root_macro_upper_right.x()},
           {"y", root_macro_upper_right.y()}}}});
  }

  stack<int> unvisited_node_ids;
  unvisited_node_ids.push(root_id);
  while (!unvisited_node_ids.empty()) {
    const int current_node_id = unvisited_node_ids.top();
    const int current_macro_id = macro_id_by_node_id_.at(current_node_id);
    const pair<Point, Point> current_macro_bounding_box =
        macro_bounding_box_by_id_.at(current_macro_id);
    const int left_child_id = b_star_tree_.left_child_id(current_node_id);
    const int right_child_id = b_star_tree_.right_child_id(current_node_id);

    if (left_child_id != -1 && !b_star_tree_.is_visited(left_child_id)) {
      unvisited_node_ids.push(left_child_id);

      const int left_child_macro_id = macro_id_by_node_id_.at(left_child_id);
      const Macro& left_child_macro = database.macro(left_child_macro_id);
      double left_child_macro_width = left_child_macro.width();
      double left_child_macro_height = left_child_macro.height();
      const bool is_left_child_macro_rotated =
          is_macro_rotated_by_id_.at(left_child_macro_id);

      if (is_left_child_macro_rotated) {
        swap(left_child_macro_width, left_child_macro_height);
      }

      macro_bounding_box_by_id_.at(left_child_macro_id) =
          contour.Update(current_macro_bounding_box.second.x(),
                         left_child_macro_width, left_child_macro_height);

      if (is_drawing_) {
        const auto& left_child_macro_bounding_box =
            macro_bounding_box_by_id_.at(left_child_macro_id);
        const Point& left_child_macro_lower_left =
            left_child_macro_bounding_box.first;
        const Point& left_child_macro_upper_right =
            left_child_macro_bounding_box.second;
        const string& left_child_macro_name = left_child_macro.name();
        drawing_["macros"].push_back(
            {{"name", left_child_macro_name},
             {"lowerLeft",
              {{"x", left_child_macro_lower_left.x()},
               {"y", left_child_macro_lower_left.y()}}},
             {"upperRight",
              {{"x", left_child_macro_upper_right.x()},
               {"y", left_child_macro_upper_right.y()}}}});
      }
    } else if (right_child_id != -1 &&
               !b_star_tree_.is_visited(right_child_id)) {
      unvisited_node_ids.push(right_child_id);

      const int right_child_macro_id = macro_id_by_node_id_.at(right_child_id);
      const Macro& right_child_macro = database.macro(right_child_macro_id);
      double right_child_macro_width = right_child_macro.width();
      double right_child_macro_height = right_child_macro.height();
      const bool is_right_child_macro_rotated =
          is_macro_rotated_by_id_.at(right_child_macro_id);

      if (is_right_child_macro_rotated) {
        swap(right_child_macro_width, right_child_macro_height);
      }

      macro_bounding_box_by_id_.at(right_child_macro_id) =
          contour.Update(current_macro_bounding_box.first.x(),
                         right_child_macro_width, right_child_macro_height);

      if (is_drawing_) {
        const auto& right_child_macro_bounding_box =
            macro_bounding_box_by_id_.at(right_child_macro_id);
        const Point& right_child_macro_lower_right =
            right_child_macro_bounding_box.first;
        const Point& right_child_macro_upper_right =
            right_child_macro_bounding_box.second;
        const string& right_child_macro_name = right_child_macro.name();
        drawing_["macros"].push_back(
            {{"name", right_child_macro_name},
             {"lowerLeft",
              {{"x", right_child_macro_lower_right.x()},
               {"y", right_child_macro_lower_right.y()}}},
             {"upperRight",
              {{"x", right_child_macro_upper_right.x()},
               {"y", right_child_macro_upper_right.y()}}}});
      }
    } else {
      unvisited_node_ids.pop();

      b_star_tree_.Visit(current_node_id);
    }
  }

  width_ = contour.max_x();
  height_ = contour.max_y();

  wirelength_ = 0.0;
  for (int i = 0; i < database.num_nets(); ++i) {
    wirelength_ += database.net(i).ComputeWirelength(macro_bounding_box_by_id_);
  }

  if (is_drawing_) {
    drawing_["width"] = width();
    drawing_["height"] = height();
    drawing_["area"] = area();
    drawing_["wirelength"] = wirelength();
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
movq %rsi, %r12
movq %rdi, %r15
leaq 0x20(%rdi), %rbx
movq %rbx, %rdi
callq 0x734a
movq %rbx, 0xf8(%rsp)
movq %rbx, %rdi
callq 0x71fc
movl %eax, 0x6c(%rsp)
movslq %eax, %rsi
movq 0x40(%r15), %rax
movq 0x48(%r15), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %rsi, %rdx
jbe 0xd2ee
movl (%rax,%rsi,4), %ebx
movq %r12, %rdi
movl %ebx, %esi
callq 0x8a80
movq %rax, %r14
movq %rax, %rdi
callq 0x158a2
movsd %xmm0, 0x18(%rsp)
movq %r14, %rdi
callq 0x158a8
movsd %xmm0, 0x10(%rsp)
movq %r15, (%rsp)
leaq 0x58(%r15), %rdi
movslq %ebx, %r15
movq %rdi, 0x218(%rsp)
movq %r15, %rsi
callq 0xe044
testq %rdx, (%rax)
je 0xbaec
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
jmp 0xbb04
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x18(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
leaq 0x240(%rsp), %rbx
movq %rbx, %rdi
callq 0x7c04
leaq 0x190(%rsp), %rdi
xorpd %xmm0, %xmm0
movq %rbx, %rsi
movsd 0x10(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
callq 0x7e72
movq (%rsp), %rcx
movq 0x80(%rcx), %rax
movq 0x88(%rcx), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
cmpq %r15, %rdx
jbe 0xd2fc
movq %r15, %rdx
shlq $0x5, %rdx
movups 0x190(%rsp), %xmm0
movups %xmm0, (%rax,%rdx)
movupd 0x1a0(%rsp), %xmm0
movupd %xmm0, 0x10(%rax,%rdx)
cmpb $0x1, (%rcx)
movq %r12, 0x10(%rsp)
jne 0xc0c8
movq %rdx, 0x8(%rsp)
leaq 0x2b8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0x2, %r8d
callq 0xe11c
movq (%rsp), %rbp
leaq 0x98(%rbp), %r12
leaq 0x15857(%rip), %rsi     # 0x2140d
movq %r12, %rdi
callq 0xe258
movq %rax, %r13
leaq 0x2b8(%rsp), %rbx
movq %rbx, %rdi
callq 0xe5c8
movb (%r13), %al
movb (%rbx), %cl
movb %cl, (%r13)
movb %al, (%rbx)
movq 0x8(%r13), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%r13)
movq %rax, 0x8(%rbx)
movq %r13, %rdi
callq 0xe5c8
movq %rbx, %rdi
callq 0xe0aa
movq 0x80(%rbp), %rbx
movq 0x88(%rbp), %rdx
subq %rbx, %rdx
sarq $0x5, %rdx
cmpq %r15, %rdx
jbe 0xd30d
movq %r14, %rdi
callq 0x1589e
movq 0x8(%rsp), %rbp
movq %rax, %r14
leaq 0x157db(%rip), %rsi     # 0x2140d
movq %r12, %rdi
callq 0xe258
movq %rax, %r15
leaq 0x120(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x157bd(%rip), %rsi     # 0x21414
callq 0xedc3
leaq 0x120(%rsp), %rdi
callq 0xe5c8
leaq 0x130(%rsp), %rdi
movq %r14, %rsi
callq 0xe22c
leaq 0x190(%rsp), %r14
leaq 0x120(%rsp), %rsi
movl $0x2, %edx
movq %r14, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x1a0(%rsp), %r14
leaq 0x220(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x15756(%rip), %rsi     # 0x21419
callq 0x102a4
leaq 0x220(%rsp), %rdi
callq 0xe5c8
leaq 0x90(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x15734(%rip), %rsi     # 0x21423
callq 0x10337
movq %r15, 0x18(%rsp)
movq %rbx, %r12
leaq (%rbx,%rbp), %r13
leaq 0x90(%rsp), %rdi
callq 0xe5c8
movq %r13, %rdi
callq 0x20422
leaq 0xa0(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x100(%rsp), %r15
leaq 0x90(%rsp), %rsi
movl $0x2, %edx
movq %r15, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x110(%rsp), %r15
leaq 0xb0(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x1593f(%rip), %rsi     # 0x216c1
callq 0x10337
leaq 0xb0(%rsp), %rdi
callq 0xe5c8
movq %r13, %rdi
callq 0x20428
leaq 0xc0(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0xb0(%rsp), %rsi
movl $0x2, %edx
movq %r15, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x230(%rsp), %rdi
leaq 0x100(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x220(%rsp), %rsi
movl $0x2, %edx
movq %r14, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x1b0(%rsp), %r14
leaq 0x28(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x155e2(%rip), %rsi     # 0x21425
callq 0x10452
leaq 0x28(%rsp), %rdi
callq 0xe5c8
leaq 0xd0(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x155b7(%rip), %rsi     # 0x21423
callq 0x10337
addq %r12, %rbp
addq $0x10, %rbp
leaq 0xd0(%rsp), %rdi
callq 0xe5c8
movq %rbp, %rdi
callq 0x20422
leaq 0xe0(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x48(%rsp), %r13
leaq 0xd0(%rsp), %rsi
movl $0x2, %edx
movq %r13, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x58(%rsp), %r13
leaq 0x70(%rsp), %rdi
movb $0x0, (%rdi)
movq $0x0, 0x8(%rdi)
leaq 0x157d0(%rip), %rsi     # 0x216c1
callq 0x10337
leaq 0x70(%rsp), %rdi
callq 0xe5c8
movq %rbp, %rdi
callq 0x20428
leaq 0x80(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x70(%rsp), %rsi
movl $0x2, %edx
movq %r13, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movl $0x2, %edx
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x28(%rsp), %rsi
movl $0x2, %edx
movq %r14, %rdi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0x190(%rsp), %rsi
movl $0x3, %edx
movq 0x18(%rsp), %rdi
callq 0xe3de
movl $0x20, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xbfa0
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xbfbf
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xbfdb
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xbff7
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc013
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x220, %rdi            # imm = 0x220
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc032
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc051
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc070
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc08f
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc0ae
xorpd %xmm0, %xmm0
leaq 0x190(%rsp), %rdi
movapd %xmm0, 0x40(%rdi)
movapd %xmm0, 0x30(%rdi)
movapd %xmm0, 0x20(%rdi)
movapd %xmm0, 0x10(%rdi)
movapd %xmm0, (%rdi)
xorl %esi, %esi
callq 0x104e6
movq 0x1c0(%rsp), %rax
movq 0x1d0(%rsp), %rcx
addq $-0x4, %rcx
cmpq %rcx, %rax
je 0xc120
movl 0x6c(%rsp), %ecx
movl %ecx, (%rax)
addq $0x4, %rax
movq %rax, 0x1c0(%rsp)
jmp 0xc13a
leaq 0x190(%rsp), %rdi
leaq 0x6c(%rsp), %rsi
callq 0x1065c
movq 0x1c0(%rsp), %rax
cmpq 0x1a0(%rsp), %rax
je 0xcf8e
leaq 0x130(%rsp), %rcx
movq %rcx, 0x208(%rsp)
movq (%rsp), %rcx
addq $0x98, %rcx
movq %rcx, 0x210(%rsp)
leaq 0xc0(%rsp), %r13
leaq 0x140(%rsp), %rcx
movq %rcx, 0x200(%rsp)
leaq 0x80(%rsp), %rcx
movq %rcx, 0x1e8(%rsp)
leaq 0x130(%rsp), %rcx
movq %rcx, 0xf0(%rsp)
leaq 0xc0(%rsp), %rcx
movq %rcx, 0x1f8(%rsp)
leaq 0x140(%rsp), %rcx
movq %rcx, 0x1f0(%rsp)
leaq 0x80(%rsp), %rcx
movq %rcx, 0x1e0(%rsp)
leaq 0x120(%rsp), %r15
cmpq 0x1c8(%rsp), %rax
jne 0xc1f9
movq 0x1d8(%rsp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
movslq -0x4(%rax), %r14
movq (%rsp), %rcx
movq 0x40(%rcx), %rax
movq 0x48(%rcx), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %r14, %rdx
movq 0xf8(%rsp), %rbx
jbe 0xd27d
movslq (%rax,%r14,4), %rsi
movq 0x80(%rcx), %rax
movq 0x88(%rcx), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
cmpq %rsi, %rdx
jbe 0xd26f
shlq $0x5, %rsi
movupd (%rax,%rsi), %xmm0
movups 0x10(%rax,%rsi), %xmm1
movaps %xmm1, 0x230(%rsp)
movapd %xmm0, 0x220(%rsp)
movq %rbx, %rdi
movl %r14d, %esi
callq 0x725c
movl %eax, 0x24(%rsp)
movq %rbx, %rdi
movl %r14d, %esi
callq 0x728c
movl %eax, 0x20(%rsp)
movl 0x24(%rsp), %esi
cmpl $-0x1, %esi
je 0xc29e
movq 0xf8(%rsp), %rdi
callq 0x72bc
testb %al, %al
je 0xc2df
movl 0x20(%rsp), %eax
cmpl $-0x1, %eax
movq 0xf8(%rsp), %rbx
je 0xc2c1
movq %rbx, %rdi
movl %eax, %esi
callq 0x72bc
testb %al, %al
movq 0xf8(%rsp), %rbx
je 0xc313
movq 0x1c0(%rsp), %rax
movq 0x1c8(%rsp), %rdi
cmpq %rdi, %rax
je 0xc347
addq $-0x4, %rax
jmp 0xc386
movq 0x1c0(%rsp), %rax
movq 0x1d0(%rsp), %rcx
addq $-0x4, %rcx
cmpq %rcx, %rax
je 0xc39e
movl 0x24(%rsp), %ecx
movl %ecx, (%rax)
addq $0x4, %rax
movq %rax, 0x1c0(%rsp)
jmp 0xc3b4
movq 0x1c0(%rsp), %rax
movq 0x1d0(%rsp), %rcx
addq $-0x4, %rcx
cmpq %rcx, %rax
je 0xc98b
movl 0x20(%rsp), %ecx
movl %ecx, (%rax)
addq $0x4, %rax
movq %rax, 0x1c0(%rsp)
jmp 0xc9a1
movl $0x200, %esi            # imm = 0x200
callq 0x6390
movq 0x1d8(%rsp), %rax
leaq -0x8(%rax), %rcx
movq %rcx, 0x1d8(%rsp)
movq -0x8(%rax), %rax
movq %rax, 0x1c8(%rsp)
leaq 0x200(%rax), %rcx
movq %rcx, 0x1d0(%rsp)
addq $0x1fc, %rax            # imm = 0x1FC
movq %rax, 0x1c0(%rsp)
movq %rbx, %rdi
movl %r14d, %esi
callq 0x72ec
jmp 0xcf78
leaq 0x190(%rsp), %rdi
leaq 0x24(%rsp), %rsi
callq 0x1065c
movl 0x24(%rsp), %ecx
movslq %ecx, %rsi
movq (%rsp), %rcx
movq 0x40(%rcx), %rax
movq 0x48(%rcx), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %rsi, %rdx
jbe 0xd28e
movl (%rax,%rsi,4), %ebp
movq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x8a80
movq %rax, %r14
movq %rax, %rdi
callq 0x158a2
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x158a8
movsd %xmm0, 0x18(%rsp)
movslq %ebp, %rbp
movq 0x218(%rsp), %rdi
movq %rbp, %rsi
callq 0xe044
movq %rdx, %rbx
movq (%rax), %r12
leaq 0x230(%rsp), %rdi
callq 0x20422
testq %rbx, %r12
je 0xc43a
movsd 0x18(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
jmp 0xc446
movsd 0x8(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movq %r15, %rdi
leaq 0x240(%rsp), %rsi
callq 0x7e72
movq (%rsp), %rcx
movq 0x80(%rcx), %rax
movq 0x88(%rcx), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
cmpq %rbp, %rdx
jbe 0xd29c
movq %rbp, %rbx
shlq $0x5, %rbx
movups 0x120(%rsp), %xmm0
movups %xmm0, (%rax,%rbx)
leaq 0x130(%rsp), %rdx
movupd (%rdx), %xmm0
movupd %xmm0, 0x10(%rax,%rbx)
cmpb $0x1, (%rcx)
leaq 0x100(%rsp), %r12
jne 0xcf78
movq (%rsp), %rax
movq 0x80(%rax), %rcx
movq 0x88(%rax), %rdx
movq %rcx, 0x8(%rsp)
subq %rcx, %rdx
sarq $0x5, %rdx
cmpq %rbp, %rdx
jbe 0xd2cc
movq %r14, %rdi
callq 0x1589e
movq %rax, %r14
movq 0x210(%rsp), %rdi
leaq 0x14f1e(%rip), %rsi     # 0x2140d
callq 0xe258
movq %rax, 0x18(%rsp)
movb $0x0, 0x100(%rsp)
movq $0x0, 0x108(%rsp)
movq %r12, %rdi
leaq 0x14efd(%rip), %rsi     # 0x21414
callq 0xedc3
leaq 0x90(%rsp), %rbp
movq %r12, %rdi
callq 0xe5c8
leaq 0x110(%rsp), %rdi
movq %r14, %rsi
callq 0xe22c
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x90(%rsp)
movq $0x0, 0x98(%rsp)
movq %rbp, %rdi
leaq 0x14ea4(%rip), %rsi     # 0x21419
callq 0x102a4
movq %rbp, %rdi
callq 0xe5c8
movb $0x0, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x14e84(%rip), %rsi     # 0x21423
callq 0x10337
movq 0x8(%rsp), %rax
leaq (%rax,%rbx), %r14
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20422
movb $0x0, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0x103ca
movq %r12, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0xb0(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x48(%rsp)
movq $0x0, 0x50(%rsp)
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x150a4(%rip), %rsi     # 0x216c1
callq 0x10337
leaq 0x170(%rsp), %rbp
movq %r12, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20428
movb $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x103ca
movq %r14, %rdi
callq 0xe5c8
movl $0x2, %edx
movq %r13, %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0xd0(%rsp), %r12
movl $0x2, %edx
leaq 0x130(%rsp), %rdi
leaq 0x90(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0xd0(%rsp)
movq $0x0, 0xd8(%rsp)
movq %r12, %rdi
leaq 0x14d3d(%rip), %rsi     # 0x21425
callq 0x10452
movq %r12, %rdi
callq 0xe5c8
movb $0x0, 0x170(%rsp)
movq $0x0, 0x178(%rsp)
movq %rbp, %rdi
leaq 0x14d10(%rip), %rsi     # 0x21423
callq 0x10337
movq 0x8(%rsp), %rax
leaq (%rax,%rbx), %r14
addq $0x10, %r14
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20422
movb $0x0, 0x180(%rsp)
movq $0x0, 0x188(%rsp)
leaq 0x180(%rsp), %rbx
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0x70(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x150(%rsp)
movq $0x0, 0x158(%rsp)
leaq 0x150(%rsp), %rbp
movq %rbp, %rdi
leaq 0x14f1d(%rip), %rsi     # 0x216c1
callq 0x10337
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20428
movb $0x0, 0x160(%rsp)
movq $0x0, 0x168(%rsp)
leaq 0x160(%rsp), %rbx
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0x80(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0x140(%rsp), %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x3, %edx
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0xe3de
movl $0x20, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc85e
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc87d
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc89c
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc8b8
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc8d7
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc8f6
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc915
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc934
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc950
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xc96c
jmp 0xcf78
leaq 0x190(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x1065c
movl 0x20(%rsp), %ecx
movslq %ecx, %rsi
movq (%rsp), %rcx
movq 0x40(%rcx), %rax
movq 0x48(%rcx), %rdx
subq %rax, %rdx
sarq $0x2, %rdx
cmpq %rsi, %rdx
jbe 0xd2be
movl (%rax,%rsi,4), %ebp
movq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x8a80
movq %rax, %r14
movq %rax, %rdi
callq 0x158a2
movsd %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x158a8
movsd %xmm0, 0x18(%rsp)
movslq %ebp, %rbp
movq 0x218(%rsp), %rdi
movq %rbp, %rsi
callq 0xe044
movq %rdx, %rbx
movq (%rax), %r12
leaq 0x220(%rsp), %rdi
callq 0x20422
testq %rbx, %r12
je 0xca27
movsd 0x18(%rsp), %xmm1
movsd 0x8(%rsp), %xmm2
jmp 0xca33
movsd 0x8(%rsp), %xmm1
movsd 0x18(%rsp), %xmm2
movq %r15, %rdi
leaq 0x240(%rsp), %rsi
callq 0x7e72
movq (%rsp), %rcx
movq 0x80(%rcx), %rax
movq 0x88(%rcx), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
cmpq %rbp, %rdx
jbe 0xd2ad
movq %rbp, %rbx
shlq $0x5, %rbx
movups 0x120(%rsp), %xmm0
movups %xmm0, (%rax,%rbx)
leaq 0x130(%rsp), %rdx
movupd (%rdx), %xmm0
movupd %xmm0, 0x10(%rax,%rbx)
cmpb $0x1, (%rcx)
leaq 0x100(%rsp), %r12
jne 0xcf78
movq (%rsp), %rax
movq 0x80(%rax), %rcx
movq 0x88(%rax), %rdx
movq %rcx, 0x8(%rsp)
subq %rcx, %rdx
sarq $0x5, %rdx
cmpq %rbp, %rdx
jbe 0xd2dd
movq %r14, %rdi
callq 0x1589e
movq %rax, %r14
movq 0x210(%rsp), %rdi
leaq 0x14931(%rip), %rsi     # 0x2140d
callq 0xe258
movq %rax, 0x18(%rsp)
movb $0x0, 0x100(%rsp)
movq $0x0, 0x108(%rsp)
movq %r12, %rdi
leaq 0x14910(%rip), %rsi     # 0x21414
callq 0xedc3
leaq 0x90(%rsp), %rbp
movq %r12, %rdi
callq 0xe5c8
leaq 0x110(%rsp), %rdi
movq %r14, %rsi
callq 0xe22c
movl $0x2, %edx
movq %r15, %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x90(%rsp)
movq $0x0, 0x98(%rsp)
movq %rbp, %rdi
leaq 0x148b7(%rip), %rsi     # 0x21419
callq 0x102a4
movq %rbp, %rdi
callq 0xe5c8
movb $0x0, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x28(%rsp), %rbp
movq %rbp, %rdi
leaq 0x14897(%rip), %rsi     # 0x21423
callq 0x10337
movq 0x8(%rsp), %rax
leaq (%rax,%rbx), %r14
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20422
movb $0x0, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0x103ca
movq %r12, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0xb0(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x48(%rsp)
movq $0x0, 0x50(%rsp)
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x14ab7(%rip), %rsi     # 0x216c1
callq 0x10337
leaq 0x170(%rsp), %rbp
movq %r12, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20428
movb $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x103ca
movq %r14, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0xc0(%rsp), %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0xa0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
leaq 0xd0(%rsp), %r12
movl $0x2, %edx
leaq 0x130(%rsp), %rdi
leaq 0x90(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0xd0(%rsp)
movq $0x0, 0xd8(%rsp)
movq %r12, %rdi
leaq 0x1474b(%rip), %rsi     # 0x21425
callq 0x10452
movq %r12, %rdi
callq 0xe5c8
movb $0x0, 0x170(%rsp)
movq $0x0, 0x178(%rsp)
movq %rbp, %rdi
leaq 0x1471e(%rip), %rsi     # 0x21423
callq 0x10337
movq 0x8(%rsp), %rax
leaq (%rax,%rbx), %r14
addq $0x10, %r14
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20422
movb $0x0, 0x180(%rsp)
movq $0x0, 0x188(%rsp)
leaq 0x180(%rsp), %rbx
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0x70(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movb $0x0, 0x150(%rsp)
movq $0x0, 0x158(%rsp)
leaq 0x150(%rsp), %rbp
movq %rbp, %rdi
leaq 0x1492b(%rip), %rsi     # 0x216c1
callq 0x10337
movq %rbp, %rdi
callq 0xe5c8
movq %r14, %rdi
callq 0x20428
movb $0x0, 0x160(%rsp)
movq $0x0, 0x168(%rsp)
leaq 0x160(%rsp), %rbx
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
movl $0x2, %edx
leaq 0x80(%rsp), %rdi
movq %rbp, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x2, %edx
leaq 0x140(%rsp), %rdi
movq %r12, %rsi
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xe11c
movl $0x3, %edx
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0xe3de
movl $0x20, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xce50
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xce6f
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xce8e
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xceaa
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcec9
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcee8
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcf07
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcf26
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcf42
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0xcf5e
movq 0x1c0(%rsp), %rax
cmpq 0x1a0(%rsp), %rax
jne 0xc1db
leaq 0x240(%rsp), %rdi
callq 0x7e5e
movq (%rsp), %rax
movsd %xmm0, 0x8(%rax)
leaq 0x240(%rsp), %rdi
callq 0x7e6c
movq (%rsp), %rax
leaq 0x80(%rax), %r14
movsd %xmm0, 0x10(%rax)
movq $0x0, 0x18(%rax)
xorl %ebp, %ebp
leaq 0x260(%rsp), %r15
movq 0x10(%rsp), %rdi
callq 0x8a6c
cmpl %eax, %ebp
jge 0xd035
movq 0x10(%rsp), %rdi
movl %ebp, %esi
callq 0x8afc
movq %rax, %rbx
movq %r15, %rdi
movq %r14, %rsi
callq 0xe4f0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x20292
movq (%rsp), %rax
addsd 0x18(%rax), %xmm0
movsd %xmm0, 0x18(%rax)
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0xd031
movq 0x270(%rsp), %rsi
subq %rdi, %rsi
callq 0x6390
incl %ebp
jmp 0xcfd3
movq (%rsp), %r12
cmpb $0x0, (%r12)
je 0xd22b
movsd 0x8(%r12), %xmm0
leaq 0x2a8(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x98(%r12), %r14
leaq 0x143b3(%rip), %rsi     # 0x21430
movq %r14, %rdi
callq 0xe258
movq %rax, %r15
leaq 0x2a8(%rsp), %rbx
movq %rbx, %rdi
callq 0xe5c8
movb (%r15), %al
movb (%rbx), %cl
movb %cl, (%r15)
movb %al, (%rbx)
movq 0x8(%r15), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%r15)
movq %rax, 0x8(%rbx)
movq %r15, %rdi
callq 0xe5c8
movq %rbx, %rdi
callq 0xe0aa
movsd 0x10(%r12), %xmm0
leaq 0x298(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x14343(%rip), %rsi     # 0x21436
movq %r14, %rdi
callq 0xe258
movq %rax, %r15
leaq 0x298(%rsp), %rbx
movq %rbx, %rdi
callq 0xe5c8
movb (%r15), %al
movb (%rbx), %cl
movb %cl, (%r15)
movb %al, (%rbx)
movq 0x8(%r15), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%r15)
movq %rax, 0x8(%rbx)
movq %r15, %rdi
callq 0xe5c8
movq %rbx, %rdi
callq 0xe0aa
movsd 0x8(%r12), %xmm0
mulsd 0x10(%r12), %xmm0
leaq 0x288(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x142cd(%rip), %rsi     # 0x2143d
movq %r14, %rdi
callq 0xe258
movq %rax, %r15
leaq 0x288(%rsp), %rbx
movq %rbx, %rdi
callq 0xe5c8
movb (%r15), %al
movb (%rbx), %cl
movb %cl, (%r15)
movb %al, (%rbx)
movq 0x8(%r15), %rax
movq 0x8(%rbx), %rcx
movq %rcx, 0x8(%r15)
movq %rax, 0x8(%rbx)
movq %r15, %rdi
callq 0xe5c8
movq %rbx, %rdi
callq 0xe0aa
movsd 0x18(%r12), %xmm0
leaq 0x278(%rsp), %rbx
movb $0x0, (%rbx)
movq $0x0, 0x8(%rbx)
movq %rbx, %rdi
callq 0x103ca
movq %rbx, %rdi
callq 0xe5c8
leaq 0x1425c(%rip), %rsi     # 0x21442
movq %r14, %rdi
callq 0xe258
movq %rax, %rbx
leaq 0x278(%rsp), %r14
movq %r14, %rdi
callq 0xe5c8
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 0xe5c8
movq %r14, %rdi
callq 0xe0aa
leaq 0x190(%rsp), %rdi
callq 0xe570
leaq 0x248(%rsp), %rbx
movq (%rbx), %rdi
cmpq %rbx, %rdi
je 0xd25d
movq (%rdi), %r14
movl $0x20, %esi
callq 0x6390
movq %r14, %rdi
cmpq %rbx, %r14
jne 0xd248
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x13ebf(%rip), %rdi     # 0x21135
xorl %eax, %eax
callq 0x6530
leaq 0x13eb1(%rip), %rdi     # 0x21135
movq %r14, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13ea0(%rip), %rdi     # 0x21135
xorl %eax, %eax
callq 0x6530
leaq 0x13e92(%rip), %rdi     # 0x21135
movq %rbp, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13e81(%rip), %rdi     # 0x21135
movq %rbp, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13e70(%rip), %rdi     # 0x21135
xorl %eax, %eax
callq 0x6530
leaq 0x13e62(%rip), %rdi     # 0x21135
movq %rbp, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13e51(%rip), %rdi     # 0x21135
movq %rbp, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13e40(%rip), %rdi     # 0x21135
xorl %eax, %eax
callq 0x6530
leaq 0x13e32(%rip), %rdi     # 0x21135
movq %r15, %rsi
xorl %eax, %eax
callq 0x6530
leaq 0x13e21(%rip), %rdi     # 0x21135
movq %r15, %rsi
xorl %eax, %eax
callq 0x6530
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
jmp 0xdac5
movq %rax, %rbx
leaq 0x288(%rsp), %rdi
jmp 0xdac5
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
jmp 0xdac5
movq %rax, %rbx
leaq 0x2a8(%rsp), %rdi
jmp 0xdac5
movq %rax, %rbx
movl $0x20, %r12d
leaq (%rsp,%r12), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd367
movl $0x0, (%rsp)
jmp 0xd392
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd398
movb $0x1, %al
movl %eax, 0x10(%rsp)
jmp 0xd3c7
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
movl $0x0, 0x10(%rsp)
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd3cd
movb $0x1, %r12b
jmp 0xd3fc
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
movl $0x0, 0x10(%rsp)
xorl %r12d, %r12d
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0xd401
jmp 0xd451
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xe0aa
jmp 0xd42c
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
xorl %r12d, %r12d
movl $0x0, 0x10(%rsp)
jmp 0xd451
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
movl $0x0, 0x10(%rsp)
xorl %r12d, %r12d
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0xd456
leaq 0x48(%rsp), %rbp
cmpq %r13, %rbp
sete %al
orb %al, %r12b
jne 0xd491
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0aa
cmpq %rbp, %r13
jne 0xd480
cmpb $0x0, 0x10(%rsp)
je 0xd4b4
jmp 0xd4ca
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xe0aa
jmp 0xd4af
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
leaq 0x28(%rsp), %rdi
callq 0xe0aa
jmp 0xd4ca
jmp 0xd4c2
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x220, %rdi            # imm = 0x220
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd4d0
movb $0x1, %r12b
movl $0x10, %r13d
leaq (%rsp,%r13), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %r13
cmpq $-0x10, %r13
jne 0xd4f3
movb $0x1, %r13b
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0xd515
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0xd534
leaq 0x100(%rsp), %rbp
cmpq %r15, %rbp
sete %al
orb %al, %r13b
jne 0xd572
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0aa
cmpq %rbp, %r15
jne 0xd561
testb %r12b, %r12b
je 0xd5f1
jmp 0xd5fe
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
xorl %r12d, %r12d
jmp 0xd4ed
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
xorl %r12d, %r12d
xorl %r13d, %r13d
jmp 0xd510
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xe0aa
jmp 0xd5b4
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
xorl %r13d, %r13d
xorl %r12d, %r12d
jmp 0xd52f
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
xorl %r12d, %r12d
xorl %r13d, %r13d
jmp 0xd52f
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xe0aa
jmp 0xd5ec
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
leaq 0x220(%rsp), %rdi
callq 0xe0aa
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0xd604
leaq 0x190(%rsp), %r15
cmpq %r14, %r15
setne %al
movl (%rsp), %ecx
andb %al, %cl
cmpb $0x1, %cl
jne 0xdda2
addq $-0x10, %r14
movq %r14, %rdi
callq 0xe0aa
cmpq %r15, %r14
jne 0xd63a
jmp 0xdda2
jmp 0xd652
movq %rax, %rbx
movb $0x1, %al
movl %eax, (%rsp)
jmp 0xd5fe
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
jmp 0xd678
jmp 0xd688
jmp 0xd688
movq %rax, %rbx
leaq 0x2b8(%rsp), %rdi
callq 0xe0aa
jmp 0xdda2
jmp 0xd688
jmp 0xd688
jmp 0xd688
movq %rax, %rbx
jmp 0xdda2
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xd812
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
jmp 0xd835
movq %rax, %rbx
movb $0x1, %bpl
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xd855
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0xe0aa
jmp 0xd6cf
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xd875
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x70(%rsp), %rax
movq %rax, 0x1e0(%rsp)
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xd875
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0xe0aa
jmp 0xd710
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xd8c3
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xd8d0
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x130(%rsp), %rax
movq %rax, 0x1f0(%rsp)
jmp 0xd8d0
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
jmp 0xd903
movq %rax, %rbx
movb $0x1, %bpl
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xd926
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xe0aa
jmp 0xd76f
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xd943
movq %rax, %rbx
movb $0x1, %bpl
leaq 0xb0(%rsp), %rax
movq %rax, 0x1f8(%rsp)
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xd943
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xe0aa
jmp 0xd7b0
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xd994
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xd9a1
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x120(%rsp), %rax
movq %rax, 0xf0(%rsp)
jmp 0xd9a1
jmp 0xdaba
jmp 0xdd92
jmp 0xdd92
movq %rax, %rbx
movl $0x20, %r14d
leaq (%rsp,%r14), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xd7f6
xorl %ebp, %ebp
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xd818
movb $0x1, %r14b
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0xd83b
movb $0x1, %r15b
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd85b
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xd87b
leaq 0x70(%rsp), %r12
movq 0x1e0(%rsp), %r13
cmpq %r13, %r12
sete %al
orb %al, %r15b
jne 0xd8be
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0aa
cmpq %r12, %r13
jne 0xd8ad
testb %r14b, %r14b
jne 0xd8d0
leaq 0xd0(%rsp), %rdi
callq 0xe0aa
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xd8d6
movb $0x1, %r14b
movq 0x1f0(%rsp), %rax
movq %rax, 0xf0(%rsp)
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0xd909
movb $0x1, %r15b
movl $0x10, %r13d
leaq (%rsp,%r13), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %r13
cmpq $-0x10, %r13
jne 0xd92c
movl $0x10, %r13d
leaq (%rsp,%r13), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %r13
cmpq $-0x10, %r13
jne 0xd949
leaq 0xb0(%rsp), %r13
movq 0x1f8(%rsp), %rcx
cmpq %rcx, %r13
sete %al
orb %al, %r15b
jne 0xd98f
movq %rcx, %r15
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0aa
cmpq %r13, %r15
jne 0xd97e
testb %r14b, %r14b
jne 0xd9a1
leaq 0x90(%rsp), %rdi
callq 0xe0aa
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xd9a7
leaq 0x120(%rsp), %r14
cmpq 0xf0(%rsp), %r14
setne %al
andb %al, %bpl
cmpb $0x1, %bpl
jne 0xdd95
movq 0xf0(%rsp), %r15
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0aa
cmpq %r14, %r15
jne 0xd9e9
jmp 0xdd95
jmp 0xdd92
movq %rax, %rbx
jmp 0xdc20
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xdc30
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x130(%rsp), %rax
movq %rax, 0x200(%rsp)
jmp 0xdc30
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
jmp 0xdc63
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xdc86
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xe0aa
jmp 0xda63
movq %rax, %rbx
movb $0x1, %bpl
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xdca3
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
xorl %r15d, %r15d
leaq 0xb0(%rsp), %r13
jmp 0xdca3
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xe0aa
jmp 0xda9c
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xdce9
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xdcf6
movq %rax, %rbx
movb $0x1, %bpl
jmp 0xdcfe
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0xe0aa
jmp 0xdd95
movq %rax, %rbx
movl $0x20, %r14d
leaq (%rsp,%r14), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xdad8
xorl %ebp, %ebp
jmp 0xdb01
jmp 0xdd92
movq %rax, %rbx
movb $0x1, %bpl
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0xd0, %rdi
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xdb07
movb $0x1, %r14b
jmp 0xdb2f
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0x70, %rdi
callq 0xe0aa
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0xdb35
movb $0x1, %r15b
jmp 0xdb5d
movq %rax, %rbx
movb $0x1, %bpl
xorl %r15d, %r15d
xorl %r14d, %r14d
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x150, %rdi            # imm = 0x150
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xdb63
jmp 0xdbbd
jmp 0xdd92
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
callq 0xe0aa
jmp 0xdb99
movq %rax, %rbx
movb $0x1, %bpl
xorl %r14d, %r14d
xorl %r15d, %r15d
jmp 0xdbbd
movq %rax, %rbx
movb $0x1, %bpl
xorl %r15d, %r15d
leaq 0x70(%rsp), %rax
movq %rax, 0x1e8(%rsp)
xorl %r14d, %r14d
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x170, %rdi            # imm = 0x170
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xdbc3
leaq 0x70(%rsp), %r12
movq 0x1e8(%rsp), %rcx
cmpq %rcx, %r12
sete %al
orb %al, %r15b
jne 0xdc09
movq %rcx, %r15
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0aa
cmpq %r12, %r15
jne 0xdbf8
testb %r14b, %r14b
je 0xdc23
jmp 0xdc30
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
callq 0xe0aa
movb $0x1, %bpl
leaq 0xd0(%rsp), %rdi
callq 0xe0aa
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x90, %rdi
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xdc36
movb $0x1, %r14b
movq 0x200(%rsp), %rax
movq %rax, 0x208(%rsp)
movl $0x10, %r15d
leaq (%rsp,%r15), %rdi
addq $0xb0, %rdi
callq 0xe0aa
addq $-0x10, %r15
cmpq $-0x10, %r15
jne 0xdc69
movb $0x1, %r15b
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x48, %rdi
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xdc8c
movl $0x10, %r12d
leaq (%rsp,%r12), %rdi
addq $0x28, %rdi
callq 0xe0aa
addq $-0x10, %r12
cmpq $-0x10, %r12
jne 0xdca9
leaq 0xb0(%rsp), %r12
cmpq %r13, %r12
sete %al
orb %al, %r15b
jne 0xdce4
addq $-0x10, %r13
movq %r13, %rdi
callq 0xe0aa
cmpq %r12, %r13
jne 0xdcd3
testb %r14b, %r14b
jne 0xdcf6
leaq 0x90(%rsp), %rdi
callq 0xe0aa
movq 0x208(%rsp), %r15
movl $0x10, %r14d
leaq (%rsp,%r14), %rdi
addq $0x100, %rdi            # imm = 0x100
callq 0xe0aa
addq $-0x10, %r14
cmpq $-0x10, %r14
jne 0xdd04
leaq 0x120(%rsp), %r14
cmpq %r15, %r14
setne %al
andb %al, %bpl
cmpb $0x1, %bpl
jne 0xdd95
addq $-0x10, %r15
movq %r15, %rdi
callq 0xe0aa
cmpq %r14, %r15
jne 0xdd35
jmp 0xdd95
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
jmp 0xdd92
movq %rax, %rbx
movq 0x260(%rsp), %rdi
testq %rdi, %rdi
je 0xdd95
movq 0x270(%rsp), %rsi
subq %rdi, %rsi
callq 0x6390
jmp 0xdd95
jmp 0xdd92
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0xe570
leaq 0x248(%rsp), %r14
movq (%r14), %rdi
cmpq %r14, %rdi
je 0xddc7
movq (%rdi), %r15
movl $0x20, %esi
callq 0x6390
movq %r15, %rdi
cmpq %r14, %r15
jne 0xddb2
movq %rbx, %rdi
callq 0x6640
nop