// File: yhirose[P]fizzbuzzlang/./peglib.h
// Function: peg::ParserGenerator::perform_core(char const*, unsigned long, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::shared_ptr<peg::Ope>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::shared_ptr<peg::Ope>>>> const&, std::function<void (unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
ParserContext perform_core(const char *s, size_t n, const Rules &rules,
                             Log log, std::string requested_start) {
    Data data;
    auto &grammar = *data.grammar;

    // Built-in macros
    {
      // `%recover`
      {
        auto &rule = grammar[RECOVER_DEFINITION_NAME];
        rule <= ref(grammar, "x", "", false, {});
        rule.name = RECOVER_DEFINITION_NAME;
        rule.s_ = "[native]";
        rule.ignoreSemanticValue = true;
        rule.is_macro = true;
        rule.params = {"x"};
      }
    }

    try {
      std::any dt = &data;
      auto r = g["Grammar"].parse(s, n, dt, nullptr, log);

      if (!r.ret) {
        if (log) {
          if (r.error_info.message_pos) {
            auto line = line_info(s, r.error_info.message_pos);
            log(line.first, line.second, r.error_info.message,
                r.error_info.label);
          } else {
            auto line = line_info(s, r.error_info.error_pos);
            log(line.first, line.second, "syntax error", r.error_info.label);
          }
        }
        return {};
      }
    } catch (const SyntaxErrorException &e) {
      if (log) {
        auto line = e.line_info();
        log(line.first, line.second, e.what(), "");
      }
      return {};
    }

    // User provided rules
    for (auto [user_name, user_rule] : rules) {
      auto name = user_name;
      auto ignore = false;
      if (!name.empty() && name[0] == '~') {
        ignore = true;
        name.erase(0, 1);
      }
      if (!name.empty()) {
        auto &rule = grammar[name];
        rule <= user_rule;
        rule.name = name;
        rule.ignoreSemanticValue = ignore;
      }
    }

    // Check duplicated definitions
    auto ret = true;

    if (!data.duplicates_of_definition.empty()) {
      for (const auto &[name, ptr] : data.duplicates_of_definition) {
        if (log) {
          auto line = line_info(s, ptr);
          log(line.first, line.second,
              "the definition '" + name + "' is already defined.", "");
        }
      }
      ret = false;
    }

    // Check duplicated instructions
    if (!data.duplicates_of_instruction.empty()) {
      for (const auto &[type, ptr] : data.duplicates_of_instruction) {
        if (log) {
          auto line = line_info(s, ptr);
          log(line.first, line.second,
              "the instruction '" + type + "' is already defined.", "");
        }
      }
      ret = false;
    }

    // Check undefined back references
    if (!data.undefined_back_references.empty()) {
      for (const auto &[name, ptr] : data.undefined_back_references) {
        if (log) {
          auto line = line_info(s, ptr);
          log(line.first, line.second,
              "the back reference '" + name + "' is undefined.", "");
        }
      }
      ret = false;
    }

    // Set root definition
    auto start = data.start;

    if (!requested_start.empty()) {
      if (grammar.count(requested_start)) {
        start = requested_start;
      } else {
        if (log) {
          auto line = line_info(s, s);
          log(line.first, line.second,
              "the specified start rule '" + requested_start +
                  "' is undefined.",
              "");
        }
        ret = false;
      }
    }

    if (!ret) { return {}; }

    auto &start_rule = grammar[start];

    // Check if the start rule has ignore operator
    {
      if (start_rule.ignoreSemanticValue) {
        if (log) {
          auto line = line_info(s, start_rule.s_);
          log(line.first, line.second,
              "ignore operator cannot be applied to '" + start_rule.name + "'.",
              "");
        }
        ret = false;
      }
    }

    if (!ret) { return {}; }

    // Check missing definitions
    auto referenced = std::unordered_set<std::string>{
        WHITESPACE_DEFINITION_NAME,
        WORD_DEFINITION_NAME,
        RECOVER_DEFINITION_NAME,
        start_rule.name,
    };

    for (auto &[_, rule] : grammar) {
      ReferenceChecker vis(grammar, rule.params);
      rule.accept(vis);
      referenced.insert(vis.referenced.begin(), vis.referenced.end());
      for (const auto &[name, ptr] : vis.error_s) {
        if (log) {
          auto line = line_info(s, ptr);
          log(line.first, line.second, vis.error_message[name], "");
        }
        ret = false;
      }
    }

    for (auto &[name, rule] : grammar) {
      if (!referenced.count(name)) {
        if (log) {
          auto line = line_info(s, rule.s_);
          auto msg = "'" + name + "' is not referenced.";
          log(line.first, line.second, msg, "");
        }
      }
    }

    if (!ret) { return {}; }

    // Link references
    for (auto &x : grammar) {
      auto &rule = x.second;
      LinkReferences vis(grammar, rule.params);
      rule.accept(vis);
    }

    // Check left recursion
    ret = true;

    for (auto &[name, rule] : grammar) {
      DetectLeftRecursion vis(name);
      rule.accept(vis);
      if (vis.error_s) {
        if (log) {
          auto line = line_info(s, vis.error_s);
          log(line.first, line.second, "'" + name + "' is left recursive.", "");
        }
        ret = false;
      }
    }

    if (!ret) { return {}; }

    // Check infinite loop
    if (detect_infiniteLoop(data, start_rule, log, s)) { return {}; }

    // Automatic whitespace skipping
    if (grammar.count(WHITESPACE_DEFINITION_NAME)) {
      for (auto &x : grammar) {
        auto &rule = x.second;
        auto ope = rule.get_core_operator();
        if (IsLiteralToken::check(*ope)) { rule <= tok(ope); }
      }

      auto &rule = grammar[WHITESPACE_DEFINITION_NAME];
      start_rule.whitespaceOpe = wsp(rule.get_core_operator());

      if (detect_infiniteLoop(data, rule, log, s)) { return {}; }
    }

    // Word expression
    if (grammar.count(WORD_DEFINITION_NAME)) {
      auto &rule = grammar[WORD_DEFINITION_NAME];
      start_rule.wordOpe = rule.get_core_operator();

      if (detect_infiniteLoop(data, rule, log, s)) { return {}; }
    }

    // Apply instructions
    for (const auto &[name, instructions] : data.instructions) {
      auto &rule = grammar[name];

      for (const auto &instruction : instructions) {
        if (instruction.type == "precedence") {
          const auto &info =
              std::any_cast<PrecedenceClimbing::BinOpeInfo>(instruction.data);

          if (!apply_precedence_instruction(rule, info, s, log)) { return {}; }
        } else if (instruction.type == "error_message") {
          rule.error_message = std::any_cast<std::string>(instruction.data);
        } else if (instruction.type == "no_ast_opt") {
          rule.no_ast_opt = true;
        }
      }
    }

    return {data.grammar, start, data.enablePackratParsing};
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x11f0, %rsp           # imm = 0x11F0
movq %r9, -0xdc8(%rbp)
movq %rdi, -0xdc0(%rbp)
movq %rdi, %rax
movq %rax, -0xdb8(%rbp)
movq 0x10(%rbp), %rax
movq %rax, -0xdb0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xda8(%rbp)
leaq -0x130(%rbp), %rdi
movq %rdi, -0xda0(%rbp)
callq 0x776c0
movq -0xda0(%rbp), %rdi
callq 0x4f200
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0xd98(%rbp)
movq 0xd32ec(%rip), %rax     # 0xf53a8
movq %rax, -0xd90(%rbp)
leaq -0x161(%rbp), %rdi
movq %rdi, -0xd88(%rbp)
callq 0xa660
movq -0xd90(%rbp), %rsi
movq -0xd88(%rbp), %rdx
leaq -0x160(%rbp), %rdi
callq 0x18be0
jmp 0x220f2
movq -0xd98(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x38850
movq %rax, -0xdd0(%rbp)
jmp 0x2210e
leaq -0x160(%rbp), %rdi
callq 0xa250
leaq -0x161(%rbp), %rdi
callq 0xa410
movq -0xdd0(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rax
movq %rax, -0xde8(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0xde0(%rbp)
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0xdd8(%rbp)
callq 0xa660
movq -0xdd8(%rbp), %rdx
leaq 0x7fdc3(%rip), %rsi     # 0xa1f34
leaq -0x1a8(%rbp), %rdi
callq 0x18be0
jmp 0x2217f
xorps %xmm0, %xmm0
movaps %xmm0, -0x1d0(%rbp)
movq $0x0, -0x1c0(%rbp)
leaq -0x1d0(%rbp), %rdi
movq %rdi, -0xdf0(%rbp)
callq 0xf850
movq -0xde0(%rbp), %rsi
movq -0xdf0(%rbp), %r9
leaq 0x7fdfa(%rip), %rcx     # 0xa1fb6
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rdx
xorl %r8d, %r8d
callq 0x593e0
jmp 0x221d4
movq -0xde8(%rbp), %rdi
leaq -0x188(%rbp), %rsi
movq %rsi, -0xdf8(%rbp)
callq 0x38880
movq -0xdf8(%rbp), %rdi
callq 0xda50
leaq -0x1d0(%rbp), %rdi
callq 0xfad0
leaq -0x1a8(%rbp), %rdi
callq 0xa250
leaq -0x1a9(%rbp), %rdi
callq 0xa410
movq 0xd3183(%rip), %rsi     # 0xf53a8
movq -0x140(%rbp), %rdi
callq 0xa510
jmp 0x22233
movq -0x140(%rbp), %rax
leaq 0x8014f(%rip), %rcx     # 0xa2390
movq %rcx, 0x20(%rax)
movq -0x140(%rbp), %rax
movb $0x1, 0xc0(%rax)
movq -0x140(%rbp), %rax
movb $0x1, 0xe9(%rax)
movb $0x1, -0x20a(%rbp)
leaq -0x200(%rbp), %rax
movq %rax, -0xe08(%rbp)
movq %rax, -0x208(%rbp)
leaq -0x209(%rbp), %rdi
movq %rdi, -0xe00(%rbp)
callq 0xa660
movq -0xe08(%rbp), %rdi
movq -0xe00(%rbp), %rdx
leaq 0x7fc8f(%rip), %rsi     # 0xa1f34
callq 0x18be0
jmp 0x222ac
movb $0x0, -0x20a(%rbp)
leaq -0x200(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq $0x1, -0x1d8(%rbp)
movq -0x140(%rbp), %rdi
addq $0xf0, %rdi
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
callq 0x778f0
jmp 0x222ef
leaq -0x200(%rbp), %rax
movq %rax, -0xe18(%rbp)
addq $0x20, %rax
movq %rax, -0xe10(%rbp)
movq -0xe10(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xe20(%rbp)
callq 0xa250
movq -0xe18(%rbp), %rcx
movq -0xe20(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0xe10(%rbp)
jne 0x22308
leaq -0x209(%rbp), %rdi
callq 0xa410
leaq -0x130(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x77940
jmp 0x22368
movq -0xda8(%rbp), %rax
movq %rax, -0xe30(%rbp)
leaq -0x2d1(%rbp), %rdi
movq %rdi, -0xe28(%rbp)
callq 0xa660
movq -0xe28(%rbp), %rdx
leaq 0x7f9d7(%rip), %rsi     # 0xa1d6e
leaq -0x2d0(%rbp), %rdi
callq 0x18be0
jmp 0x223a5
movq -0xe30(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x38850
movq %rax, -0xe38(%rbp)
jmp 0x223c1
movq -0xdc8(%rbp), %rsi
movq -0x18(%rbp), %rax
movq %rax, -0xe48(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0xe40(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x10520
jmp 0x223ec
movq -0xe40(%rbp), %rcx
movq -0xe48(%rbp), %rdx
movq -0xe38(%rbp), %rsi
movq %rsp, %rax
leaq -0x2f8(%rbp), %rdi
movq %rdi, (%rax)
xorl %eax, %eax
movl %eax, %r9d
leaq -0x2b0(%rbp), %rdi
leaq -0x220(%rbp), %r8
callq 0x77990
jmp 0x22428
leaq -0x2f8(%rbp), %rdi
callq 0xd9d0
leaq -0x2d0(%rbp), %rdi
callq 0xa250
leaq -0x2d1(%rbp), %rdi
callq 0xa410
testb $0x1, -0x2b0(%rbp)
jne 0x2283c
movq -0xdc8(%rbp), %rdi
callq 0x104e0
testb $0x1, %al
jne 0x2246e
jmp 0x22809
cmpq $0x0, -0x280(%rbp)
je 0x226fc
movq -0x18(%rbp), %rdi
movq -0x280(%rbp), %rsi
callq 0x21040
movq %rdx, -0xe58(%rbp)
movq %rax, -0xe50(%rbp)
jmp 0x2249c
movq -0xdc8(%rbp), %rdi
movq -0xe58(%rbp), %rax
movq -0xe50(%rbp), %rcx
movq %rcx, -0x308(%rbp)
movq %rax, -0x300(%rbp)
movq -0x308(%rbp), %rsi
movq -0x300(%rbp), %rdx
leaq -0x278(%rbp), %rcx
leaq -0x258(%rbp), %r8
callq 0x21400
jmp 0x224e2
jmp 0x22807
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22519
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x160(%rbp), %rdi
callq 0xa250
leaq -0x161(%rbp), %rdi
callq 0xa410
jmp 0x25025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22568
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0xfad0
leaq -0x1a8(%rbp), %rdi
callq 0xa250
leaq -0x1a9(%rbp), %rdi
callq 0xa410
jmp 0x25025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x25025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22602
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x200(%rbp), %rax
movq %rax, -0xe68(%rbp)
addq $0x20, %rax
movq %rax, -0xe60(%rbp)
movq -0xe60(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xe70(%rbp)
callq 0xa250
movq -0xe68(%rbp), %rcx
movq -0xe70(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0xe60(%rbp)
jne 0x225cf
jmp 0x22602
leaq -0x209(%rbp), %rdi
callq 0xa410
testb $0x1, -0x20a(%rbp)
jne 0x22619
jmp 0x22666
movq -0x208(%rbp), %rax
leaq -0x200(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0xe78(%rbp)
je 0x22664
movq -0xe78(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xe80(%rbp)
callq 0xa250
movq -0xe80(%rbp), %rax
leaq -0x200(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0xe78(%rbp)
jne 0x22633
jmp 0x22666
jmp 0x25025
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x2288b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x226d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x226c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0xd9d0
leaq -0x2d0(%rbp), %rdi
callq 0xa250
leaq -0x2d1(%rbp), %rdi
callq 0xa410
jmp 0x2287f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22873
movq -0x18(%rbp), %rdi
movq -0x2a0(%rbp), %rsi
callq 0x21040
movq %rdx, -0xe90(%rbp)
movq %rax, -0xe88(%rbp)
jmp 0x2271c
movq -0xe90(%rbp), %rax
movq -0xe88(%rbp), %rcx
movq %rcx, -0x318(%rbp)
movq %rax, -0x310(%rbp)
movq -0x318(%rbp), %rax
movq %rax, -0xea8(%rbp)
movq -0x310(%rbp), %rax
movq %rax, -0xea0(%rbp)
leaq -0x339(%rbp), %rdi
movq %rdi, -0xe98(%rbp)
callq 0xa660
movq -0xe98(%rbp), %rdx
leaq 0x7f5ba(%rip), %rsi     # 0xa1d2f
leaq -0x338(%rbp), %rdi
callq 0x18be0
jmp 0x22783
movq -0xea0(%rbp), %rdx
movq -0xea8(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x258(%rbp), %r8
leaq -0x338(%rbp), %rcx
callq 0x21400
jmp 0x227ad
leaq -0x338(%rbp), %rdi
callq 0xa250
leaq -0x339(%rbp), %rdi
callq 0xa410
jmp 0x22807
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x227f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x338(%rbp), %rdi
callq 0xa250
leaq -0x339(%rbp), %rdi
callq 0xa410
jmp 0x22873
jmp 0x22809
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x22846
movl $0x0, -0x340(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x77af0
leaq -0x220(%rbp), %rdi
callq 0xd9f0
movl -0x340(%rbp), %eax
testl %eax, %eax
jne 0x25009
jmp 0x2286e
jmp 0x22aba
leaq -0x2b0(%rbp), %rdi
callq 0x77af0
leaq -0x220(%rbp), %rdi
callq 0xd9f0
movl -0x174(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x25025
movq -0x170(%rbp), %rdi
callq 0xa160
movq -0xdc8(%rbp), %rdi
movq %rax, -0x348(%rbp)
callq 0x104e0
testb $0x1, %al
jne 0x228c6
jmp 0x22a71
movq -0x348(%rbp), %rdi
callq 0x77b10
movq %rdx, -0xeb8(%rbp)
movq %rax, -0xeb0(%rbp)
jmp 0x228e2
movq -0xeb8(%rbp), %rax
movq -0xeb0(%rbp), %rcx
movq %rcx, -0x358(%rbp)
movq %rax, -0x350(%rbp)
movq -0x358(%rbp), %rax
movq %rax, -0xed8(%rbp)
movq -0x350(%rbp), %rax
movq %rax, -0xed0(%rbp)
movq -0x348(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0xec8(%rbp)
leaq -0x379(%rbp), %rdi
movq %rdi, -0xec0(%rbp)
callq 0xa660
movq -0xec8(%rbp), %rsi
movq -0xec0(%rbp), %rdx
leaq -0x378(%rbp), %rdi
callq 0x18be0
jmp 0x22960
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0xee0(%rbp)
callq 0xa660
movq -0xee0(%rbp), %rdx
leaq 0x7f635(%rip), %rsi     # 0xa1fb6
leaq -0x3a0(%rbp), %rdi
callq 0x18be0
jmp 0x2298f
movq -0xed0(%rbp), %rdx
movq -0xed8(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x378(%rbp), %rcx
leaq -0x3a0(%rbp), %r8
callq 0x21400
jmp 0x229b9
leaq -0x3a0(%rbp), %rdi
callq 0xa250
leaq -0x3a1(%rbp), %rdi
callq 0xa410
leaq -0x378(%rbp), %rdi
callq 0xa250
leaq -0x379(%rbp), %rdi
callq 0xa410
jmp 0x22a71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22aae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22a63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22a4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x3a0(%rbp), %rdi
callq 0xa250
leaq -0x3a1(%rbp), %rdi
callq 0xa410
leaq -0x378(%rbp), %rdi
callq 0xa250
leaq -0x379(%rbp), %rdi
callq 0xa410
jmp 0x22aae
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
callq 0xa600
jmp 0x22aa9
jmp 0x25009
callq 0xa600
jmp 0x22ab5
jmp 0x25025
movq -0x28(%rbp), %rax
movq %rax, -0x3b0(%rbp)
movq -0x3b0(%rbp), %rdi
callq 0x77b30
movq %rax, -0x3b8(%rbp)
movq -0x3b0(%rbp), %rdi
callq 0x77b60
movq %rax, -0x3c0(%rbp)
leaq -0x3b8(%rbp), %rdi
leaq -0x3c0(%rbp), %rsi
callq 0x77b90
testb $0x1, %al
jne 0x22b07
jmp 0x22cb5
leaq -0x3b8(%rbp), %rdi
callq 0x77bc0
movq %rax, %rsi
leaq -0x3f0(%rbp), %rdi
callq 0x77bf0
jmp 0x22b24
leaq -0x3f0(%rbp), %rdi
movq %rdi, -0xee8(%rbp)
callq 0x77c30
movq -0xee8(%rbp), %rdi
movq %rax, -0x3f8(%rbp)
callq 0x77c50
movq %rax, -0x400(%rbp)
movq -0x3f8(%rbp), %rsi
leaq -0x420(%rbp), %rdi
callq 0xa170
jmp 0x22b66
movb $0x0, -0x421(%rbp)
leaq -0x420(%rbp), %rdi
callq 0xa610
testb $0x1, %al
jne 0x22c03
xorl %eax, %eax
movl %eax, %esi
leaq -0x420(%rbp), %rdi
callq 0xa710
movq %rax, -0xef0(%rbp)
jmp 0x22b9a
movq -0xef0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7e, %eax
jne 0x22c03
movb $0x1, -0x421(%rbp)
xorl %eax, %eax
movl %eax, %esi
leaq -0x420(%rbp), %rdi
movl $0x1, %edx
callq 0xa0a0
jmp 0x22bc7
jmp 0x22c03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22ca4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x420(%rbp), %rdi
callq 0xa250
jmp 0x22ca4
leaq -0x420(%rbp), %rdi
callq 0xa610
testb $0x1, %al
jne 0x22c7b
movq -0x138(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x4f230
movq %rax, -0xef8(%rbp)
jmp 0x22c2f
movq -0xef8(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x430(%rbp), %rdi
movq -0x400(%rbp), %rsi
callq 0x38880
movq -0x430(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xa040
jmp 0x22c65
movb -0x421(%rbp), %cl
movq -0x430(%rbp), %rax
andb $0x1, %cl
movb %cl, 0xc0(%rax)
leaq -0x420(%rbp), %rdi
callq 0xa250
leaq -0x3f0(%rbp), %rdi
callq 0x77c70
leaq -0x3b8(%rbp), %rdi
callq 0x77ca0
jmp 0x22aeb
leaq -0x3f0(%rbp), %rdi
callq 0x77c70
jmp 0x25025
movb $0x1, -0x431(%rbp)
leaq -0x130(%rbp), %rdi
addq $0x38, %rdi
callq 0x77cd0
testb $0x1, %al
jne 0x22f1d
leaq -0x130(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rdi
callq 0x53950
movq %rax, -0x448(%rbp)
movq -0x440(%rbp), %rdi
callq 0x53740
movq %rax, -0x450(%rbp)
leaq -0x448(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x77d10
testb $0x1, %al
jne 0x22d28
jmp 0x22f16
leaq -0x448(%rbp), %rdi
callq 0x53ff0
movq %rax, -0x458(%rbp)
movq -0x458(%rbp), %rdi
callq 0x77d50
movq %rax, -0x460(%rbp)
movq -0x458(%rbp), %rdi
callq 0x77d70
movq -0xdc8(%rbp), %rdi
movq %rax, -0x468(%rbp)
callq 0x104e0
testb $0x1, %al
jne 0x22d76
jmp 0x22f03
movq -0x18(%rbp), %rdi
movq -0x468(%rbp), %rax
movq (%rax), %rsi
callq 0x21040
movq %rdx, -0xf08(%rbp)
movq %rax, -0xf00(%rbp)
jmp 0x22d99
movq -0xf08(%rbp), %rax
movq -0xf00(%rbp), %rcx
movq %rcx, -0x478(%rbp)
movq %rax, -0x470(%rbp)
movq -0x478(%rbp), %rax
movq %rax, -0xf18(%rbp)
movq -0x470(%rbp), %rax
movq %rax, -0xf10(%rbp)
movq -0x460(%rbp), %rdx
leaq 0x7f5ba(%rip), %rsi     # 0xa2399
leaq -0x4b8(%rbp), %rdi
callq 0x10030
jmp 0x22ded
leaq 0x7f5b6(%rip), %rdx     # 0xa23aa
leaq -0x498(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0xffe0
jmp 0x22e09
leaq -0x4d9(%rbp), %rdi
movq %rdi, -0xf20(%rbp)
callq 0xa660
movq -0xf20(%rbp), %rdx
leaq 0x7f18c(%rip), %rsi     # 0xa1fb6
leaq -0x4d8(%rbp), %rdi
callq 0x18be0
jmp 0x22e38
movq -0xf10(%rbp), %rdx
movq -0xf18(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x498(%rbp), %rcx
leaq -0x4d8(%rbp), %r8
callq 0x21400
jmp 0x22e62
leaq -0x4d8(%rbp), %rdi
callq 0xa250
leaq -0x4d9(%rbp), %rdi
callq 0xa410
leaq -0x498(%rbp), %rdi
callq 0xa250
leaq -0x4b8(%rbp), %rdi
callq 0xa250
jmp 0x22f03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22ef2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x22eda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0xa250
leaq -0x4d9(%rbp), %rdi
callq 0xa410
leaq -0x498(%rbp), %rdi
callq 0xa250
leaq -0x4b8(%rbp), %rdi
callq 0xa250
jmp 0x25025
jmp 0x22f05
leaq -0x448(%rbp), %rdi
callq 0x77d90
jmp 0x22d0c
movb $0x0, -0x431(%rbp)
leaq -0x130(%rbp), %rdi
addq $0x50, %rdi
callq 0x77cd0
testb $0x1, %al
jne 0x2317e
leaq -0x130(%rbp), %rax
addq $0x50, %rax
movq %rax, -0x4e8(%rbp)
movq -0x4e8(%rbp), %rdi
callq 0x53950
movq %rax, -0x4f0(%rbp)
movq -0x4e8(%rbp), %rdi
callq 0x53740
movq %rax, -0x4f8(%rbp)
leaq -0x4f0(%rbp), %rdi
leaq -0x4f8(%rbp), %rsi
callq 0x77d10
testb $0x1, %al
jne 0x22f89
jmp 0x23177
leaq -0x4f0(%rbp), %rdi
callq 0x53ff0
movq %rax, -0x500(%rbp)
movq -0x500(%rbp), %rdi
callq 0x77d50
movq %rax, -0x508(%rbp)
movq -0x500(%rbp), %rdi
callq 0x77d70
movq -0xdc8(%rbp), %rdi
movq %rax, -0x510(%rbp)
callq 0x104e0
testb $0x1, %al
jne 0x22fd7
jmp 0x23164
movq -0x18(%rbp), %rdi
movq -0x510(%rbp), %rax
movq (%rax), %rsi
callq 0x21040
movq %rdx, -0xf30(%rbp)
movq %rax, -0xf28(%rbp)
jmp 0x22ffa
movq -0xf30(%rbp), %rax
movq -0xf28(%rbp), %rcx
movq %rcx, -0x520(%rbp)
movq %rax, -0x518(%rbp)
movq -0x520(%rbp), %rax
movq %rax, -0xf40(%rbp)
movq -0x518(%rbp), %rax
movq %rax, -0xf38(%rbp)
movq -0x508(%rbp), %rdx
leaq 0x7f380(%rip), %rsi     # 0xa23c0
leaq -0x560(%rbp), %rdi
callq 0x10030
jmp 0x2304e
leaq 0x7f355(%rip), %rdx     # 0xa23aa
leaq -0x540(%rbp), %rdi
leaq -0x560(%rbp), %rsi
callq 0xffe0
jmp 0x2306a
leaq -0x581(%rbp), %rdi
movq %rdi, -0xf48(%rbp)
callq 0xa660
movq -0xf48(%rbp), %rdx
leaq 0x7ef2b(%rip), %rsi     # 0xa1fb6
leaq -0x580(%rbp), %rdi
callq 0x18be0
jmp 0x23099
movq -0xf38(%rbp), %rdx
movq -0xf40(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x540(%rbp), %rcx
leaq -0x580(%rbp), %r8
callq 0x21400
jmp 0x230c3
leaq -0x580(%rbp), %rdi
callq 0xa250
leaq -0x581(%rbp), %rdi
callq 0xa410
leaq -0x540(%rbp), %rdi
callq 0xa250
leaq -0x560(%rbp), %rdi
callq 0xa250
jmp 0x23164
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23153
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x2313b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x580(%rbp), %rdi
callq 0xa250
leaq -0x581(%rbp), %rdi
callq 0xa410
leaq -0x540(%rbp), %rdi
callq 0xa250
leaq -0x560(%rbp), %rdi
callq 0xa250
jmp 0x25025
jmp 0x23166
leaq -0x4f0(%rbp), %rdi
callq 0x77d90
jmp 0x22f6d
movb $0x0, -0x431(%rbp)
leaq -0x130(%rbp), %rdi
addq $0x98, %rdi
callq 0x77cd0
testb $0x1, %al
jne 0x233e4
leaq -0x130(%rbp), %rax
addq $0x98, %rax
movq %rax, -0x590(%rbp)
movq -0x590(%rbp), %rdi
callq 0x53950
movq %rax, -0x598(%rbp)
movq -0x590(%rbp), %rdi
callq 0x53740
movq %rax, -0x5a0(%rbp)
leaq -0x598(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
callq 0x77d10
testb $0x1, %al
jne 0x231ef
jmp 0x233dd
leaq -0x598(%rbp), %rdi
callq 0x53ff0
movq %rax, -0x5a8(%rbp)
movq -0x5a8(%rbp), %rdi
callq 0x77d50
movq %rax, -0x5b0(%rbp)
movq -0x5a8(%rbp), %rdi
callq 0x77d70
movq -0xdc8(%rbp), %rdi
movq %rax, -0x5b8(%rbp)
callq 0x104e0
testb $0x1, %al
jne 0x2323d
jmp 0x233ca
movq -0x18(%rbp), %rdi
movq -0x5b8(%rbp), %rax
movq (%rax), %rsi
callq 0x21040
movq %rdx, -0xf58(%rbp)
movq %rax, -0xf50(%rbp)
jmp 0x23260
movq -0xf58(%rbp), %rax
movq -0xf50(%rbp), %rcx
movq %rcx, -0x5c8(%rbp)
movq %rax, -0x5c0(%rbp)
movq -0x5c8(%rbp), %rax
movq %rax, -0xf68(%rbp)
movq -0x5c0(%rbp), %rax
movq %rax, -0xf60(%rbp)
movq -0x5b0(%rbp), %rdx
leaq 0x7f12c(%rip), %rsi     # 0xa23d2
leaq -0x608(%rbp), %rdi
callq 0x10030
jmp 0x232b4
leaq 0x7f12c(%rip), %rdx     # 0xa23e7
leaq -0x5e8(%rbp), %rdi
leaq -0x608(%rbp), %rsi
callq 0xffe0
jmp 0x232d0
leaq -0x629(%rbp), %rdi
movq %rdi, -0xf70(%rbp)
callq 0xa660
movq -0xf70(%rbp), %rdx
leaq 0x7ecc5(%rip), %rsi     # 0xa1fb6
leaq -0x628(%rbp), %rdi
callq 0x18be0
jmp 0x232ff
movq -0xf60(%rbp), %rdx
movq -0xf68(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x5e8(%rbp), %rcx
leaq -0x628(%rbp), %r8
callq 0x21400
jmp 0x23329
leaq -0x628(%rbp), %rdi
callq 0xa250
leaq -0x629(%rbp), %rdi
callq 0xa410
leaq -0x5e8(%rbp), %rdi
callq 0xa250
leaq -0x608(%rbp), %rdi
callq 0xa250
jmp 0x233ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x233b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x233a1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x628(%rbp), %rdi
callq 0xa250
leaq -0x629(%rbp), %rdi
callq 0xa410
leaq -0x5e8(%rbp), %rdi
callq 0xa250
leaq -0x608(%rbp), %rdi
callq 0xa250
jmp 0x25025
jmp 0x233cc
leaq -0x598(%rbp), %rdi
callq 0x77d90
jmp 0x231d3
movb $0x0, -0x431(%rbp)
leaq -0x120(%rbp), %rsi
leaq -0x650(%rbp), %rdi
callq 0xa170
jmp 0x233f9
movq -0xdb0(%rbp), %rdi
callq 0xa610
testb $0x1, %al
jne 0x2360b
movq -0xdb0(%rbp), %rsi
movq -0x138(%rbp), %rdi
callq 0x12610
movq %rax, -0xf78(%rbp)
jmp 0x23429
movq -0xf78(%rbp), %rax
cmpq $0x0, %rax
je 0x23467
movq -0xdb0(%rbp), %rsi
leaq -0x650(%rbp), %rdi
callq 0xa040
jmp 0x2344b
jmp 0x23609
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24ffb
movq -0xdc8(%rbp), %rdi
callq 0x104e0
testb $0x1, %al
jne 0x2347c
jmp 0x23602
movq -0x18(%rbp), %rsi
movq %rsi, %rdi
callq 0x21040
movq %rdx, -0xf88(%rbp)
movq %rax, -0xf80(%rbp)
jmp 0x23498
movq -0xdb0(%rbp), %rdx
movq -0xf88(%rbp), %rax
movq -0xf80(%rbp), %rcx
movq %rcx, -0x660(%rbp)
movq %rax, -0x658(%rbp)
movq -0x660(%rbp), %rax
movq %rax, -0xf98(%rbp)
movq -0x658(%rbp), %rax
movq %rax, -0xf90(%rbp)
leaq 0x7ef19(%rip), %rsi     # 0xa23f7
leaq -0x6a0(%rbp), %rdi
callq 0x10030
jmp 0x234ec
leaq 0x7eef4(%rip), %rdx     # 0xa23e7
leaq -0x680(%rbp), %rdi
leaq -0x6a0(%rbp), %rsi
callq 0xffe0
jmp 0x23508
leaq -0x6c1(%rbp), %rdi
movq %rdi, -0xfa0(%rbp)
callq 0xa660
movq -0xfa0(%rbp), %rdx
leaq 0x7ea8d(%rip), %rsi     # 0xa1fb6
leaq -0x6c0(%rbp), %rdi
callq 0x18be0
jmp 0x23537
movq -0xf90(%rbp), %rdx
movq -0xf98(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x680(%rbp), %rcx
leaq -0x6c0(%rbp), %r8
callq 0x21400
jmp 0x23561
leaq -0x6c0(%rbp), %rdi
callq 0xa250
leaq -0x6c1(%rbp), %rdi
callq 0xa410
leaq -0x680(%rbp), %rdi
callq 0xa250
leaq -0x6a0(%rbp), %rdi
callq 0xa250
jmp 0x23602
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x235f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x235d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x6c0(%rbp), %rdi
callq 0xa250
leaq -0x6c1(%rbp), %rdi
callq 0xa410
leaq -0x680(%rbp), %rdi
callq 0xa250
leaq -0x6a0(%rbp), %rdi
callq 0xa250
jmp 0x24ffb
movb $0x0, -0x431(%rbp)
jmp 0x2360b
testb $0x1, -0x431(%rbp)
jne 0x2364a
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fed
movq -0x138(%rbp), %rdi
leaq -0x650(%rbp), %rsi
callq 0x4f230
movq %rax, -0xfa8(%rbp)
jmp 0x23666
movq -0xfa8(%rbp), %rax
movq %rax, -0x6d0(%rbp)
movq -0x6d0(%rbp), %rax
testb $0x1, 0xc0(%rax)
je 0x23832
movq -0xdc8(%rbp), %rdi
callq 0x104e0
testb $0x1, %al
jne 0x2369d
jmp 0x2382b
movq -0x18(%rbp), %rdi
movq -0x6d0(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x21040
movq %rdx, -0xfb8(%rbp)
movq %rax, -0xfb0(%rbp)
jmp 0x236c1
movq -0xfb8(%rbp), %rax
movq -0xfb0(%rbp), %rcx
movq %rcx, -0x6e0(%rbp)
movq %rax, -0x6d8(%rbp)
movq -0x6e0(%rbp), %rax
movq %rax, -0xfc8(%rbp)
movq -0x6d8(%rbp), %rax
movq %rax, -0xfc0(%rbp)
movq -0x6d0(%rbp), %rdx
leaq 0x7ed0b(%rip), %rsi     # 0xa2412
leaq -0x720(%rbp), %rdi
callq 0x10030
jmp 0x23715
leaq 0x7ed1d(%rip), %rdx     # 0xa2439
leaq -0x700(%rbp), %rdi
leaq -0x720(%rbp), %rsi
callq 0xffe0
jmp 0x23731
leaq -0x741(%rbp), %rdi
movq %rdi, -0xfd0(%rbp)
callq 0xa660
movq -0xfd0(%rbp), %rdx
leaq 0x7e864(%rip), %rsi     # 0xa1fb6
leaq -0x740(%rbp), %rdi
callq 0x18be0
jmp 0x23760
movq -0xfc0(%rbp), %rdx
movq -0xfc8(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x700(%rbp), %rcx
leaq -0x740(%rbp), %r8
callq 0x21400
jmp 0x2378a
leaq -0x740(%rbp), %rdi
callq 0xa250
leaq -0x741(%rbp), %rdi
callq 0xa410
leaq -0x700(%rbp), %rdi
callq 0xa250
leaq -0x720(%rbp), %rdi
callq 0xa250
jmp 0x2382b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x2381a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23802
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x740(%rbp), %rdi
callq 0xa250
leaq -0x741(%rbp), %rdi
callq 0xa410
leaq -0x700(%rbp), %rdi
callq 0xa250
leaq -0x720(%rbp), %rdi
callq 0xa250
jmp 0x24ffb
movb $0x0, -0x431(%rbp)
testb $0x1, -0x431(%rbp)
jne 0x23871
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fed
movb $0x1, -0x81c(%rbp)
leaq -0x810(%rbp), %rax
movq %rax, -0xfe8(%rbp)
movq %rax, -0x818(%rbp)
movq 0xd1b1c(%rip), %rax     # 0xf53b0
movq %rax, -0xfe0(%rbp)
leaq -0x819(%rbp), %rdi
movq %rdi, -0xfd8(%rbp)
callq 0xa660
movq -0xfe8(%rbp), %rdi
movq -0xfe0(%rbp), %rsi
movq -0xfd8(%rbp), %rdx
callq 0x18be0
jmp 0x238ca
leaq -0x7f0(%rbp), %rax
movq %rax, -0x1000(%rbp)
movq %rax, -0x818(%rbp)
movq 0xd1ad2(%rip), %rax     # 0xf53b8
movq %rax, -0xff8(%rbp)
leaq -0x81a(%rbp), %rdi
movq %rdi, -0xff0(%rbp)
callq 0xa660
movq -0x1000(%rbp), %rdi
movq -0xff8(%rbp), %rsi
movq -0xff0(%rbp), %rdx
callq 0x18be0
jmp 0x2391c
leaq -0x7d0(%rbp), %rax
movq %rax, -0x1018(%rbp)
movq %rax, -0x818(%rbp)
movq 0xd1a70(%rip), %rax     # 0xf53a8
movq %rax, -0x1010(%rbp)
leaq -0x81b(%rbp), %rdi
movq %rdi, -0x1008(%rbp)
callq 0xa660
movq -0x1018(%rbp), %rdi
movq -0x1010(%rbp), %rsi
movq -0x1008(%rbp), %rdx
callq 0x18be0
jmp 0x2396e
leaq -0x7b0(%rbp), %rdi
movq %rdi, -0x818(%rbp)
movq -0x6d0(%rbp), %rsi
callq 0xa170
jmp 0x2398a
movb $0x0, -0x81c(%rbp)
leaq -0x810(%rbp), %rax
movq %rax, -0x790(%rbp)
movq $0x4, -0x788(%rbp)
leaq -0x81f(%rbp), %rdi
movq %rdi, -0x1020(%rbp)
callq 0x77db0
movq -0x1020(%rbp), %rcx
movq -0x790(%rbp), %rsi
movq -0x788(%rbp), %rdx
movq %rsp, %rax
movq %rcx, (%rax)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x780(%rbp), %rdi
leaq -0x81d(%rbp), %r8
leaq -0x81e(%rbp), %r9
callq 0x77dd0
jmp 0x239f8
leaq -0x81f(%rbp), %rdi
callq 0x4fff0
leaq -0x810(%rbp), %rax
movq %rax, -0x1030(%rbp)
addq $0x80, %rax
movq %rax, -0x1028(%rbp)
movq -0x1028(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1038(%rbp)
callq 0xa250
movq -0x1030(%rbp), %rcx
movq -0x1038(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1028(%rbp)
jne 0x23a1f
leaq -0x81b(%rbp), %rdi
callq 0xa410
leaq -0x81a(%rbp), %rdi
callq 0xa410
leaq -0x819(%rbp), %rdi
callq 0xa410
movq -0x138(%rbp), %rax
movq %rax, -0x828(%rbp)
movq -0x828(%rbp), %rdi
callq 0x3b3c0
movq %rax, -0x830(%rbp)
movq -0x828(%rbp), %rdi
callq 0x3b3f0
movq %rax, -0x838(%rbp)
leaq -0x830(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0x3b420
testb $0x1, %al
jne 0x23ac4
jmp 0x23eed
leaq -0x830(%rbp), %rdi
callq 0x3b450
movq %rax, -0x840(%rbp)
movq -0x840(%rbp), %rdi
callq 0x77e30
movq %rax, -0x848(%rbp)
movq -0x840(%rbp), %rdi
callq 0x77e50
movq %rax, -0x850(%rbp)
movq -0x138(%rbp), %rsi
movq -0x850(%rbp), %rdx
addq $0xf0, %rdx
leaq -0x910(%rbp), %rdi
callq 0x77e70
jmp 0x23b20
movq -0x850(%rbp), %rdi
leaq -0x910(%rbp), %rsi
callq 0x115e0
jmp 0x23b35
leaq -0x898(%rbp), %rdi
movq %rdi, -0x1040(%rbp)
callq 0x77f30
movq -0x1040(%rbp), %rdi
movq %rax, -0x918(%rbp)
callq 0x4ef30
movq %rax, -0x920(%rbp)
movq -0x918(%rbp), %rsi
movq -0x920(%rbp), %rdx
leaq -0x780(%rbp), %rdi
callq 0x77ef0
jmp 0x23b7e
leaq -0x910(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x928(%rbp)
movq -0x928(%rbp), %rdi
callq 0x77f60
movq %rax, -0x930(%rbp)
movq -0x928(%rbp), %rdi
callq 0x77f90
movq %rax, -0x938(%rbp)
leaq -0x930(%rbp), %rdi
leaq -0x938(%rbp), %rsi
callq 0x77fc0
testb $0x1, %al
jne 0x23bd2
jmp 0x23ebf
leaq -0x930(%rbp), %rdi
callq 0x77ff0
movq %rax, -0x940(%rbp)
movq -0x940(%rbp), %rdi
callq 0x78020
movq %rax, -0x948(%rbp)
movq -0x940(%rbp), %rdi
callq 0x78040
movq -0xdc8(%rbp), %rdi
movq %rax, -0x950(%rbp)
callq 0x104e0
testb $0x1, %al
jne 0x23c20
jmp 0x23ea7
movq -0x18(%rbp), %rdi
movq -0x950(%rbp), %rax
movq (%rax), %rsi
callq 0x21040
movq %rdx, -0x1050(%rbp)
movq %rax, -0x1048(%rbp)
jmp 0x23c43
movq -0x1050(%rbp), %rax
movq -0x1048(%rbp), %rcx
movq %rcx, -0x960(%rbp)
movq %rax, -0x958(%rbp)
movq -0x960(%rbp), %rax
movq %rax, -0x1068(%rbp)
movq -0x958(%rbp), %rax
movq %rax, -0x1060(%rbp)
leaq -0x8d0(%rbp), %rdi
movq -0x948(%rbp), %rsi
callq 0x12670
movq %rax, -0x1058(%rbp)
jmp 0x23c97
leaq -0x981(%rbp), %rdi
movq %rdi, -0x1070(%rbp)
callq 0xa660
movq -0x1070(%rbp), %rdx
leaq 0x7e2fe(%rip), %rsi     # 0xa1fb6
leaq -0x980(%rbp), %rdi
callq 0x18be0
jmp 0x23cc6
movq -0x1058(%rbp), %rcx
movq -0x1060(%rbp), %rdx
movq -0x1068(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x980(%rbp), %r8
callq 0x21400
jmp 0x23cf0
leaq -0x980(%rbp), %rdi
callq 0xa250
leaq -0x981(%rbp), %rdi
callq 0xa410
jmp 0x23ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23dd3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23dc7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23dbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x81f(%rbp), %rdi
callq 0x4fff0
leaq -0x810(%rbp), %rax
movq %rax, -0x1080(%rbp)
addq $0x80, %rax
movq %rax, -0x1078(%rbp)
movq -0x1078(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1088(%rbp)
callq 0xa250
movq -0x1080(%rbp), %rcx
movq -0x1088(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x1078(%rbp)
jne 0x23d88
jmp 0x23dbb
leaq -0x81b(%rbp), %rdi
callq 0xa410
leaq -0x81a(%rbp), %rdi
callq 0xa410
leaq -0x819(%rbp), %rdi
callq 0xa410
testb $0x1, -0x81c(%rbp)
jne 0x23dea
jmp 0x23e37
movq -0x818(%rbp), %rax
leaq -0x810(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x1090(%rbp)
je 0x23e35
movq -0x1090(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x1098(%rbp)
callq 0xa250
movq -0x1098(%rbp), %rax
leaq -0x810(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x1090(%rbp)
jne 0x23e04
jmp 0x23e37
jmp 0x24ffb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24fdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23edc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x23e99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0x980(%rbp), %rdi
callq 0xa250
leaq -0x981(%rbp), %rdi
callq 0xa410
jmp 0x23edc
movb $0x0, -0x431(%rbp)
leaq -0x930(%rbp), %rdi
callq 0x78060
jmp 0x23bb6
leaq -0x910(%rbp), %rdi
callq 0x16f70
leaq -0x830(%rbp), %rdi
callq 0x3b480
jmp 0x23aa8
leaq -0x910(%rbp), %rdi
callq 0x16f70
jmp 0x24fdf
movq -0x138(%rbp), %rax
movq %rax, -0x990(%rbp)
movq -0x990(%rbp), %rdi
callq 0x3b3c0
movq %rax, -0x998(%rbp)
movq -0x990(%rbp), %rdi
callq 0x3b3f0
movq %rax, -0x9a0(%rbp)
leaq -0x998(%rbp), %rdi
leaq -0x9a0(%rbp), %rsi
callq 0x3b420
testb $0x1, %al
jne 0x23f3d
jmp 0x2415e
leaq -0x998(%rbp), %rdi
callq 0x3b450
movq %rax, -0x9a8(%rbp)
movq -0x9a8(%rbp), %rdi
callq 0x77e30
movq %rax, -0x9b0(%rbp)
movq -0x9a8(%rbp), %rdi
callq 0x77e50
movq %rax, -0x9b8(%rbp)
movq -0x9b0(%rbp), %rsi
leaq -0x780(%rbp), %rdi
callq 0x11770
movq %rax, -0x10a0(%rbp)
jmp 0x23f92
movq -0x10a0(%rbp), %rax
cmpq $0x0, %rax
jne 0x2414b
movq -0xdc8(%rbp), %rdi
callq 0x104e0
testb $0x1, %al
jne 0x23fb8
jmp 0x24149
movq -0x18(%rbp), %rdi
movq -0x9b8(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x21040
movq %rdx, -0x10b0(%rbp)
movq %rax, -0x10a8(%rbp)
jmp 0x23fdc
movq -0x10b0(%rbp), %rax
movq -0x10a8(%rbp), %rcx
movq %rcx, -0x9c8(%rbp)
movq %rax, -0x9c0(%rbp)
movq -0x9b0(%rbp), %rdx
leaq 0x7dd43(%rip), %rsi     # 0xa1d49
leaq -0xa08(%rbp), %rdi
callq 0x10030
jmp 0x24014
leaq 0x7e421(%rip), %rdx     # 0xa243c
leaq -0x9e8(%rbp), %rdi
leaq -0xa08(%rbp), %rsi
callq 0xffe0
jmp 0x24030
leaq -0xa08(%rbp), %rdi
callq 0xa250
movq -0x9c8(%rbp), %rax
movq %rax, -0x10c8(%rbp)
movq -0x9c0(%rbp), %rax
movq %rax, -0x10c0(%rbp)
leaq -0xa29(%rbp), %rdi
movq %rdi, -0x10b8(%rbp)
callq 0xa660
movq -0x10b8(%rbp), %rdx
leaq 0x7df3d(%rip), %rsi     # 0xa1fb6
leaq -0xa28(%rbp), %rdi
callq 0x18be0
jmp 0x24087
movq -0x10c0(%rbp), %rdx
movq -0x10c8(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0x9e8(%rbp), %rcx
leaq -0xa28(%rbp), %r8
callq 0x21400
jmp 0x240b1
leaq -0xa28(%rbp), %rdi
callq 0xa250
leaq -0xa29(%rbp), %rdi
callq 0xa410
leaq -0x9e8(%rbp), %rdi
callq 0xa250
jmp 0x24149
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xa08(%rbp), %rdi
callq 0xa250
jmp 0x24fdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x2412c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xa28(%rbp), %rdi
callq 0xa250
leaq -0xa29(%rbp), %rdi
callq 0xa410
leaq -0x9e8(%rbp), %rdi
callq 0xa250
jmp 0x24fdf
jmp 0x2414b
jmp 0x2414d
leaq -0x998(%rbp), %rdi
callq 0x3b480
jmp 0x23f21
testb $0x1, -0x431(%rbp)
jne 0x2419d
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq -0x138(%rbp), %rax
movq %rax, -0xa38(%rbp)
movq -0xa38(%rbp), %rdi
callq 0x3b3c0
movq %rax, -0xa40(%rbp)
movq -0xa38(%rbp), %rdi
callq 0x3b3f0
movq %rax, -0xa48(%rbp)
leaq -0xa40(%rbp), %rdi
leaq -0xa48(%rbp), %rsi
callq 0x3b420
testb $0x1, %al
jne 0x241ed
jmp 0x2428a
leaq -0xa40(%rbp), %rdi
callq 0x3b450
movq %rax, -0xa50(%rbp)
movq -0xa50(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xa58(%rbp)
movq -0x138(%rbp), %rsi
movq -0xa58(%rbp), %rdx
addq $0xf0, %rdx
leaq -0xa70(%rbp), %rdi
callq 0x78090
jmp 0x24235
movq -0xa58(%rbp), %rdi
leaq -0xa70(%rbp), %rsi
callq 0x115e0
jmp 0x2424a
leaq -0xa70(%rbp), %rdi
callq 0x174c0
leaq -0xa40(%rbp), %rdi
callq 0x3b480
jmp 0x241d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xa70(%rbp), %rdi
callq 0x174c0
jmp 0x24fdf
movb $0x1, -0x431(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0xa78(%rbp)
movq -0xa78(%rbp), %rdi
callq 0x3b3c0
movq %rax, -0xa80(%rbp)
movq -0xa78(%rbp), %rdi
callq 0x3b3f0
movq %rax, -0xa88(%rbp)
leaq -0xa80(%rbp), %rdi
leaq -0xa88(%rbp), %rsi
callq 0x3b420
testb $0x1, %al
jne 0x242e1
jmp 0x2453d
leaq -0xa80(%rbp), %rdi
callq 0x3b450
movq %rax, -0xa90(%rbp)
movq -0xa90(%rbp), %rdi
callq 0x77e30
movq %rax, -0xa98(%rbp)
movq -0xa90(%rbp), %rdi
callq 0x77e50
movq %rax, -0xaa0(%rbp)
movq -0xa98(%rbp), %rsi
leaq -0xb10(%rbp), %rdi
callq 0x780e0
jmp 0x2432f
movq -0xaa0(%rbp), %rdi
leaq -0xb10(%rbp), %rsi
callq 0x115e0
jmp 0x24344
cmpq $0x0, -0xb08(%rbp)
je 0x2450f
movq -0xdc8(%rbp), %rdi
callq 0x104e0
testb $0x1, %al
jne 0x24367
jmp 0x24508
movq -0x18(%rbp), %rdi
movq -0xb08(%rbp), %rsi
callq 0x21040
movq %rdx, -0x10d8(%rbp)
movq %rax, -0x10d0(%rbp)
jmp 0x24387
movq -0x10d8(%rbp), %rax
movq -0x10d0(%rbp), %rcx
movq %rcx, -0xb20(%rbp)
movq %rax, -0xb18(%rbp)
movq -0xb20(%rbp), %rax
movq %rax, -0x10e8(%rbp)
movq -0xb18(%rbp), %rax
movq %rax, -0x10e0(%rbp)
movq -0xa98(%rbp), %rdx
leaq 0x7d97c(%rip), %rsi     # 0xa1d49
leaq -0xb60(%rbp), %rdi
callq 0x10030
jmp 0x243db
leaq 0x7e06f(%rip), %rdx     # 0xa2451
leaq -0xb40(%rbp), %rdi
leaq -0xb60(%rbp), %rsi
callq 0xffe0
jmp 0x243f7
leaq -0xb81(%rbp), %rdi
movq %rdi, -0x10f0(%rbp)
callq 0xa660
movq -0x10f0(%rbp), %rdx
leaq 0x7db9e(%rip), %rsi     # 0xa1fb6
leaq -0xb80(%rbp), %rdi
callq 0x18be0
jmp 0x24426
movq -0x10e0(%rbp), %rdx
movq -0x10e8(%rbp), %rsi
movq -0xdc8(%rbp), %rdi
leaq -0xb40(%rbp), %rcx
leaq -0xb80(%rbp), %r8
callq 0x21400
jmp 0x24450
leaq -0xb80(%rbp), %rdi
callq 0xa250
leaq -0xb81(%rbp), %rdi
callq 0xa410
leaq -0xb40(%rbp), %rdi
callq 0xa250
leaq -0xb60(%rbp), %rdi
callq 0xa250
jmp 0x24508
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x2452c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x244fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x244e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xb80(%rbp), %rdi
callq 0xa250
leaq -0xb81(%rbp), %rdi
callq 0xa410
leaq -0xb40(%rbp), %rdi
callq 0xa250
leaq -0xb60(%rbp), %rdi
callq 0xa250
jmp 0x2452c
movb $0x0, -0x431(%rbp)
leaq -0xb10(%rbp), %rdi
callq 0x15cf0
leaq -0xa80(%rbp), %rdi
callq 0x3b480
jmp 0x242c5
leaq -0xb10(%rbp), %rdi
callq 0x15cf0
jmp 0x24fdf
testb $0x1, -0x431(%rbp)
jne 0x2457c
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq -0xdc8(%rbp), %rcx
movq -0xda8(%rbp), %rdi
movq -0x6d0(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq -0x130(%rbp), %rsi
callq 0x78160
movb %al, -0x10f1(%rbp)
jmp 0x245a9
movb -0x10f1(%rbp), %al
testb $0x1, %al
jne 0x245b5
jmp 0x245eb
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq -0x138(%rbp), %rax
movq %rax, -0x1110(%rbp)
movq 0xd0db0(%rip), %rax     # 0xf53b0
movq %rax, -0x1108(%rbp)
leaq -0xba9(%rbp), %rdi
movq %rdi, -0x1100(%rbp)
callq 0xa660
movq -0x1108(%rbp), %rsi
movq -0x1100(%rbp), %rdx
leaq -0xba8(%rbp), %rdi
callq 0x18be0
jmp 0x24636
movq -0x1110(%rbp), %rdi
leaq -0xba8(%rbp), %rsi
callq 0x12610
movq %rax, -0x1118(%rbp)
jmp 0x24652
leaq -0xba8(%rbp), %rdi
callq 0xa250
leaq -0xba9(%rbp), %rdi
callq 0xa410
movq -0x1118(%rbp), %rax
cmpq $0x0, %rax
je 0x249cb
movq -0x138(%rbp), %rax
movq %rax, -0xbb8(%rbp)
movq -0xbb8(%rbp), %rdi
callq 0x3b3c0
movq %rax, -0xbc0(%rbp)
movq -0xbb8(%rbp), %rdi
callq 0x3b3f0
movq %rax, -0xbc8(%rbp)
leaq -0xbc0(%rbp), %rdi
leaq -0xbc8(%rbp), %rsi
callq 0x3b420
testb $0x1, %al
jne 0x246cb
jmp 0x247fc
leaq -0xbc0(%rbp), %rdi
callq 0x3b450
movq %rax, -0xbd0(%rbp)
movq -0xbd0(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xbd8(%rbp)
movq -0xbd8(%rbp), %rsi
leaq -0xbe8(%rbp), %rdi
movq %rdi, -0x1128(%rbp)
callq 0x19720
movq -0x1128(%rbp), %rdi
callq 0x104b0
movq %rax, %rdi
callq 0x1a010
movb %al, -0x1119(%rbp)
jmp 0x24726
movb -0x1119(%rbp), %al
testb $0x1, %al
jne 0x24735
jmp 0x247df
movq -0xbd8(%rbp), %rax
movq %rax, -0x1130(%rbp)
leaq -0xbf8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
callq 0x39bb0
jmp 0x24758
movq -0x1130(%rbp), %rdi
leaq -0xbf8(%rbp), %rsi
callq 0x38880
leaq -0xbf8(%rbp), %rdi
callq 0xda50
jmp 0x247df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x247ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xba8(%rbp), %rdi
callq 0xa250
leaq -0xba9(%rbp), %rdi
callq 0xa410
jmp 0x24fdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xbe8(%rbp), %rdi
callq 0xda50
jmp 0x24fdf
leaq -0xbe8(%rbp), %rdi
callq 0xda50
leaq -0xbc0(%rbp), %rdi
callq 0x3b480
jmp 0x246af
movq -0x138(%rbp), %rax
movq %rax, -0x1148(%rbp)
movq 0xd0b9f(%rip), %rax     # 0xf53b0
movq %rax, -0x1140(%rbp)
leaq -0xc21(%rbp), %rdi
movq %rdi, -0x1138(%rbp)
callq 0xa660
movq -0x1140(%rbp), %rsi
movq -0x1138(%rbp), %rdx
leaq -0xc20(%rbp), %rdi
callq 0x18be0
jmp 0x24847
movq -0x1148(%rbp), %rdi
leaq -0xc20(%rbp), %rsi
callq 0x38850
movq %rax, -0x1150(%rbp)
jmp 0x24863
leaq -0xc20(%rbp), %rdi
callq 0xa250
leaq -0xc21(%rbp), %rdi
callq 0xa410
movq -0x1150(%rbp), %rax
movq %rax, -0xc00(%rbp)
movq -0xc00(%rbp), %rsi
leaq -0xc48(%rbp), %rdi
movq %rdi, -0x1158(%rbp)
callq 0x19720
movq -0x1158(%rbp), %rsi
leaq -0xc38(%rbp), %rdi
callq 0x78430
jmp 0x248b8
movq -0x6d0(%rbp), %rdi
addq $0xc8, %rdi
leaq -0xc38(%rbp), %rsi
movq %rsi, -0x1168(%rbp)
callq 0x4ed50
movq -0x1168(%rbp), %rdi
callq 0xda50
leaq -0xc48(%rbp), %rdi
callq 0xda50
movq -0xda8(%rbp), %rdi
movq -0xdc8(%rbp), %rcx
movq -0xc00(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq -0x130(%rbp), %rsi
callq 0x78160
movb %al, -0x1159(%rbp)
jmp 0x2491e
movb -0x1159(%rbp), %al
testb $0x1, %al
jne 0x2492d
jmp 0x249c9
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24995
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xc20(%rbp), %rdi
callq 0xa250
leaq -0xc21(%rbp), %rdi
callq 0xa410
jmp 0x24fdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xc48(%rbp), %rdi
callq 0xda50
jmp 0x24fdf
jmp 0x249cb
movq -0x138(%rbp), %rax
movq %rax, -0x1180(%rbp)
movq 0xd09d8(%rip), %rax     # 0xf53b8
movq %rax, -0x1178(%rbp)
leaq -0xc69(%rbp), %rdi
movq %rdi, -0x1170(%rbp)
callq 0xa660
movq -0x1178(%rbp), %rsi
movq -0x1170(%rbp), %rdx
leaq -0xc68(%rbp), %rdi
callq 0x18be0
jmp 0x24a16
movq -0x1180(%rbp), %rdi
leaq -0xc68(%rbp), %rsi
callq 0x12610
movq %rax, -0x1188(%rbp)
jmp 0x24a32
leaq -0xc68(%rbp), %rdi
callq 0xa250
leaq -0xc69(%rbp), %rdi
callq 0xa410
movq -0x1188(%rbp), %rax
cmpq $0x0, %rax
je 0x24c22
movq -0x138(%rbp), %rax
movq %rax, -0x11a0(%rbp)
movq 0xd0948(%rip), %rax     # 0xf53b8
movq %rax, -0x1198(%rbp)
leaq -0xc99(%rbp), %rdi
movq %rdi, -0x1190(%rbp)
callq 0xa660
movq -0x1198(%rbp), %rsi
movq -0x1190(%rbp), %rdx
leaq -0xc98(%rbp), %rdi
callq 0x18be0
jmp 0x24aa6
movq -0x11a0(%rbp), %rdi
leaq -0xc98(%rbp), %rsi
callq 0x38850
movq %rax, -0x11a8(%rbp)
jmp 0x24ac2
leaq -0xc98(%rbp), %rdi
callq 0xa250
leaq -0xc99(%rbp), %rdi
callq 0xa410
movq -0x11a8(%rbp), %rax
movq %rax, -0xc78(%rbp)
movq -0xc78(%rbp), %rsi
leaq -0xcb0(%rbp), %rdi
movq %rdi, -0x11b8(%rbp)
callq 0x19720
movq -0x11b8(%rbp), %rsi
movq -0x6d0(%rbp), %rdi
addq $0xd8, %rdi
callq 0x4ed50
movq -0x11b8(%rbp), %rdi
callq 0xda50
movq -0xda8(%rbp), %rdi
movq -0xdc8(%rbp), %rcx
movq -0xc78(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq -0x130(%rbp), %rsi
callq 0x78160
movb %al, -0x11a9(%rbp)
jmp 0x24b55
movb -0x11a9(%rbp), %al
testb $0x1, %al
jne 0x24b64
jmp 0x24c20
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24bcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xc68(%rbp), %rdi
callq 0xa250
leaq -0xc69(%rbp), %rdi
callq 0xa410
jmp 0x24fdf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24c0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xc98(%rbp), %rdi
callq 0xa250
leaq -0xc99(%rbp), %rdi
callq 0xa410
jmp 0x24fdf
jmp 0x24c22
leaq -0x130(%rbp), %rax
addq $0x68, %rax
movq %rax, -0xcb8(%rbp)
movq -0xcb8(%rbp), %rdi
callq 0x784c0
movq %rax, -0xcc0(%rbp)
movq -0xcb8(%rbp), %rdi
callq 0x51a40
movq %rax, -0xcc8(%rbp)
leaq -0xcc0(%rbp), %rdi
leaq -0xcc8(%rbp), %rsi
callq 0x784f0
testb $0x1, %al
jne 0x24c76
jmp 0x24f5f
leaq -0xcc0(%rbp), %rdi
callq 0x51ac0
movq %rax, -0xcd0(%rbp)
movq -0xcd0(%rbp), %rdi
callq 0x78520
movq %rax, -0xcd8(%rbp)
movq -0xcd0(%rbp), %rdi
callq 0x78540
movq %rax, -0xce0(%rbp)
movq -0x138(%rbp), %rdi
movq -0xcd8(%rbp), %rsi
callq 0x4f230
movq %rax, -0x11c0(%rbp)
jmp 0x24ccb
movq -0x11c0(%rbp), %rax
movq %rax, -0xce8(%rbp)
movq -0xce0(%rbp), %rax
movq %rax, -0xcf0(%rbp)
movq -0xcf0(%rbp), %rdi
callq 0x50e30
movq %rax, -0xcf8(%rbp)
movq -0xcf0(%rbp), %rdi
callq 0x50e60
movq %rax, -0xd00(%rbp)
leaq -0xcf8(%rbp), %rdi
leaq -0xd00(%rbp), %rsi
callq 0x51240
testb $0x1, %al
jne 0x24d29
jmp 0x24f4c
leaq -0xcf8(%rbp), %rdi
callq 0x512b0
movq %rax, -0xd08(%rbp)
movq -0xd08(%rbp), %rdi
leaq 0x7d2da(%rip), %rsi     # 0xa2024
callq 0x4f0b0
testb $0x1, %al
jne 0x24d58
jmp 0x24eb4
movq -0xd08(%rbp), %rsi
addq $0x20, %rsi
leaq -0xd40(%rbp), %rdi
callq 0x78560
jmp 0x24d71
movq -0xdc8(%rbp), %rsi
leaq -0xd40(%rbp), %rax
movq %rax, -0xd10(%rbp)
movq -0xce8(%rbp), %rax
movq %rax, -0x11d8(%rbp)
movq -0xd10(%rbp), %rax
movq %rax, -0x11d0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x11c8(%rbp)
leaq -0xd60(%rbp), %rdi
callq 0x10520
jmp 0x24dbb
movq -0x11c8(%rbp), %rcx
movq -0x11d0(%rbp), %rdx
movq -0x11d8(%rbp), %rsi
movq -0xda8(%rbp), %rdi
leaq -0xd60(%rbp), %r8
callq 0x785b0
movb %al, -0x11d9(%rbp)
jmp 0x24deb
movb -0x11d9(%rbp), %al
xorb $-0x1, %al
movb %al, -0x11da(%rbp)
leaq -0xd60(%rbp), %rdi
callq 0xd9d0
movb -0x11da(%rbp), %al
testb $0x1, %al
jne 0x24e11
jmp 0x24e78
movq -0xdc0(%rbp), %rdi
callq 0x21bb0
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
callq 0xa520
movq -0xdc0(%rbp), %rax
movb $0x0, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
jmp 0x24ea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
leaq -0xd60(%rbp), %rdi
callq 0xd9d0
jmp 0x24ea3
movl $0x0, -0x340(%rbp)
leaq -0xd40(%rbp), %rdi
callq 0x72700
movl -0x340(%rbp), %eax
testl %eax, %eax
jne 0x24fd1
jmp 0x24e9e
jmp 0x24f39
leaq -0xd40(%rbp), %rdi
callq 0x72700
jmp 0x24fdf
movq -0xd08(%rbp), %rdi
leaq 0x7d19d(%rip), %rsi     # 0xa205f
callq 0x4f0b0
testb $0x1, %al
jne 0x24ecd
jmp 0x24f0e
movq -0xd08(%rbp), %rsi
addq $0x20, %rsi
leaq -0xd80(%rbp), %rdi
callq 0x4ec30
jmp 0x24ee6
movq -0xce8(%rbp), %rdi
addq $0x198, %rdi            # imm = 0x198
leaq -0xd80(%rbp), %rsi
callq 0xa4a0
leaq -0xd80(%rbp), %rdi
callq 0xa250
jmp 0x24f37
movq -0xd08(%rbp), %rdi
leaq 0x7d151(%rip), %rsi     # 0xa206d
callq 0x4f0b0
testb $0x1, %al
jne 0x24f27
jmp 0x24f35
movq -0xce8(%rbp), %rax
movb $0x1, 0x1b8(%rax)
jmp 0x24f37
jmp 0x24f39
jmp 0x24f3b
leaq -0xcf8(%rbp), %rdi
callq 0x512d0
jmp 0x24d0d
jmp 0x24f4e
leaq -0xcc0(%rbp), %rdi
callq 0x52b20
jmp 0x24c5a
movq -0xdc0(%rbp), %rdi
movq %rdi, %rax
movq %rax, -0x11e8(%rbp)
leaq -0x130(%rbp), %rsi
callq 0x78d60
movq -0xdc0(%rbp), %rdi
addq $0x10, %rdi
leaq -0x650(%rbp), %rsi
callq 0xa170
jmp 0x24f95
movq -0xdc0(%rbp), %rax
movb -0x38(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x30(%rax)
movl $0x1, -0x340(%rbp)
jmp 0x24fd1
movq -0x11e8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x170(%rbp)
movl %eax, -0x174(%rbp)
callq 0x21d70
jmp 0x24fdf
leaq -0x780(%rbp), %rdi
callq 0x4f1e0
jmp 0x24fed
leaq -0x780(%rbp), %rdi
callq 0x4f1e0
jmp 0x24ffb
leaq -0x650(%rbp), %rdi
callq 0xa250
jmp 0x25009
leaq -0x650(%rbp), %rdi
callq 0xa250
jmp 0x25025
leaq -0x130(%rbp), %rdi
callq 0x78d90
movq -0xdb8(%rbp), %rax
addq $0x11f0, %rsp           # imm = 0x11F0
popq %rbp
retq
leaq -0x130(%rbp), %rdi
callq 0x78d90
movq -0x170(%rbp), %rdi
callq 0xa650
movq %rax, %rdi
callq 0x13bd0
nopw %cs:(%rax,%rax)
nop