// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x328, %rsp            # imm = 0x328
movq %r9, %r15
movq %r8, -0xc8(%rbp)
movq %rcx, %r13
movq %rdx, -0x30(%rbp)
movq %rsi, -0x1c8(%rbp)
movq %rdi, -0xd0(%rbp)
leaq -0x340(%rbp), %r12
movq %r12, %rdi
callq 0x38c44
movq (%r12), %rbx
leaq -0x180(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x3058b(%rip), %rsi     # 0x44cb3
leaq 0x3058c(%rip), %rdx     # 0x44cbb
leaq -0x190(%rbp), %rdi
callq 0x12846
leaq -0x190(%rbp), %rsi
movq %rbx, -0x80(%rbp)
movq %rbx, %rdi
callq 0x2af0e
movq %rax, %rbx
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x14773
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
movq %rax, (%rdi)
leaq 0x301cd(%rip), %rsi     # 0x44958
leaq 0x301c7(%rip), %rdx     # 0x44959
callq 0x12846
xorps %xmm0, %xmm0
leaq -0xc0(%rbp), %rax
movaps %xmm0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x10(%rax)
leaq 0x30229(%rip), %rdx     # 0x449da
leaq -0x1b8(%rbp), %r9
movq %rdx, (%r9)
leaq -0x1f8(%rbp), %rdx
movb $0x0, (%rdx)
leaq -0x48(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq %rax, 0x8(%rsp)
movq %rdx, (%rsp)
leaq -0x50(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
leaq -0x190(%rbp), %r8
movq -0x80(%rbp), %rcx
callq 0x31e1e
leaq -0x50(%rbp), %r14
movq (%r14), %rsi
movq %r14, %rdi
callq 0x31ec0
movq (%r14), %rax
movq 0x8(%r14), %rcx
leaq -0x68(%rbp), %r14
movq %rax, -0x8(%r14)
movq %rcx, (%r14)
movq 0x1c0(%rbx), %rdi
movq %rax, 0x8(%rdi)
addq $0x10, %rdi
movq %r14, %rsi
callq 0x1432c
movq (%r14), %rdi
testq %rdi, %rdi
je 0x14836
callq 0x13612
leaq -0xc0(%rbp), %rdi
callq 0xcae6
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x14864
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq 0x8(%rbx), %rdx
leaq 0x30444(%rip), %rcx     # 0x44cb3
movl $0x8, %r8d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x93b0
leaq 0x3052e(%rip), %rax     # 0x44db4
movq %rax, 0x20(%rbx)
movb $0x1, %al
movb %al, 0xc0(%rbx)
movb %al, 0xe9(%rbx)
leaq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
movq %rax, (%rdi)
leaq 0x300a8(%rip), %rsi     # 0x44958
leaq 0x300a2(%rip), %rdx     # 0x44959
callq 0x12846
addq $0xf0, %rbx
leaq -0x170(%rbp), %rdx
leaq -0x190(%rbp), %rsi
movq %rbx, %rdi
movq %rdx, -0x1f0(%rbp)
callq 0x3a202
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x14902
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq 0x1a90f(%rip), %rax     # 0x2f218
movq %rax, -0x50(%rbp)
movq %r12, -0x48(%rbp)
leaq -0xb0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x2fe6f(%rip), %rsi     # 0x44792
leaq 0x2fe6f(%rip), %rdx     # 0x44799
leaq -0xc0(%rbp), %rdi
movq %r15, -0x78(%rbp)
callq 0x12846
leaq -0xc0(%rbp), %rsi
movq -0x1c8(%rbp), %rdi
movq -0xd0(%rbp), %r12
callq 0x2af0e
movq %rax, %rbx
leaq -0x240(%rbp), %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0xd1a0
movq %r14, (%rsp)
leaq -0x190(%rbp), %rdi
leaq -0x50(%rbp), %r8
movq %rbx, %rsi
movq -0x30(%rbp), %rdx
movq %r13, %rcx
xorl %r9d, %r9d
callq 0x38df8
movq -0x230(%rbp), %rax
testq %rax, %rax
je 0x149a7
leaq -0x240(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x149c9
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
cmpb $0x0, -0x190(%rbp)
je 0x14dda
leaq -0x128(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x149f5
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x148(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x14a14
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x14a2f
movq -0x168(%rbp), %rsi
subq %rdi, %rsi
callq 0x92b0
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0x14a4d
leaq -0x50(%rbp), %rsi
movl $0x3, %edi
xorl %edx, %edx
callq *%rax
movq $0x0, -0x50(%rbp)
movq -0xc8(%rbp), %rax
movq 0x10(%rax), %r15
testq %r15, %r15
je 0x14b7b
leaq -0x190(%rbp), %r12
leaq -0xc0(%rbp), %r13
leaq 0x8(%r15), %rsi
movq %r12, %rdi
callq 0x38fbe
leaq -0xb0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x14292
cmpq $0x0, -0xb8(%rbp)
je 0x14acb
movq -0xc0(%rbp), %rax
cmpb $0x7e, (%rax)
jne 0x14acb
movb $0x1, %bl
movl $0x1, %edx
movq %r13, %rdi
xorl %esi, %esi
callq 0x9090
jmp 0x14acd
xorl %ebx, %ebx
cmpq $0x0, -0xb8(%rbp)
je 0x14b1a
movq -0x80(%rbp), %rdi
movq %r13, %rsi
callq 0x3073a
movq %rax, %r14
movq 0x1c0(%rax), %rdi
movq -0x170(%rbp), %rax
movq %rax, 0x8(%rdi)
addq $0x10, %rdi
leaq -0x168(%rbp), %rsi
callq 0x1432c
movq %r14, %rdi
movq %r13, %rsi
callq 0x9170
movb %bl, 0xc0(%r14)
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x14b3c
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x168(%rbp), %rdi
testq %rdi, %rdi
je 0x14b4d
callq 0x13612
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x14b6f
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq (%r15), %r15
testq %r15, %r15
jne 0x14a6f
movq -0x308(%rbp), %rbx
movq -0x300(%rbp), %rax
movq %rax, -0xc8(%rbp)
cmpq %rax, %rbx
je 0x14e41
leaq -0xc0(%rbp), %r14
leaq -0x180(%rbp), %r13
movq -0x78(%rbp), %r15
cmpq $0x0, 0x10(%r15)
je 0x14dbd
movq 0x20(%rbx), %rsi
movl $0x1, %r15d
movq %rsi, %rdx
movl $0x1, %r13d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x14c0b
movl $0x1, %ecx
movq -0x30(%rbp), %rdi
movq %rdi, %rax
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x14be4
addq -0x30(%rbp), %rdx
movl %ecx, %r13d
movq %rdx, %rcx
subq %rax, %rcx
je 0x14c9a
movl $0x1, %r15d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x14c8b
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x14c4d
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x14c8b
cmpq $0x3, %rdi
jb 0x14c69
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x14c8b
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r15
cmpq %rcx, %rdx
jb 0x14c1c
movq %r14, %r12
movq %r14, %rdi
leaq 0x30116(%rip), %rsi     # 0x44dbd
movq %rbx, %rdx
callq 0xcdf6
movq %r12, %rdi
leaq 0x30115(%rip), %rsi     # 0x44dce
callq 0x9480
leaq -0x180(%rbp), %rsi
movq %rsi, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x14cee
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x14cf4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq 0x2fcb9(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r13, -0x70(%rbp)
movq %r15, -0x1b8(%rbp)
movq -0x78(%rbp), %r15
cmpq $0x0, 0x10(%r15)
je 0x16aa6
movq %r15, %rdi
leaq -0x70(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
leaq -0x50(%rbp), %r8
leaq -0x180(%rbp), %r13
callq *0x18(%r15)
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x14d80
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x14d9b
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x14dbd
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
addq $0x28, %rbx
cmpq -0xc8(%rbp), %rbx
jne 0x14bab
movl $0x0, -0x198(%rbp)
jmp 0x14e54
cmpq $0x0, 0x10(%r15)
je 0x15607
movq -0x160(%rbp), %rdx
testq %rdx, %rdx
je 0x15381
movl $0x1, %eax
movq %rdx, %rsi
movq -0x30(%rbp), %r11
subq %r11, %rsi
jbe 0x15438
movl $0x1, %edi
movq %r11, %rcx
movq %r11, %r8
xorl %r9d, %r9d
cmpb $0xa, (%r8)
leaq 0x1(%r8), %r10
cmoveq %r10, %rcx
sete %r9b
addl %r9d, %edi
movq %r10, %r8
cmpq %rdx, %r10
jne 0x14e15
movq -0x30(%rbp), %r11
addq %rsi, %r11
movl %edi, %edx
jmp 0x15440
movb $0x1, %al
movl %eax, -0x198(%rbp)
leaq -0x180(%rbp), %r13
movq -0x78(%rbp), %r15
movq -0x2f0(%rbp), %rbx
movq -0x2e8(%rbp), %rax
movq %rax, -0xc8(%rbp)
cmpq %rax, %rbx
movq -0xd0(%rbp), %r12
je 0x150bd
leaq -0xc0(%rbp), %r14
cmpq $0x0, 0x10(%r15)
je 0x1509b
movq 0x20(%rbx), %rsi
movl $0x1, %r15d
movq %rsi, %rdx
movl $0x1, %r12d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x14ee2
movl $0x1, %ecx
movq -0x30(%rbp), %r10
movq %r10, %rax
movq %r10, %rdi
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x14ebc
addq %r10, %rdx
movl %ecx, %r12d
movq %rdx, %rcx
subq %rax, %rcx
je 0x14f71
movl $0x1, %r15d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x14f62
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x14f24
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x14f62
cmpq $0x3, %rdi
jb 0x14f40
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x14f62
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r15
cmpq %rcx, %rdx
jb 0x14ef3
movq %r14, %r13
movq %r14, %rdi
leaq 0x2fe66(%rip), %rsi     # 0x44de4
movq %rbx, %rdx
callq 0xcdf6
movq %r13, %rdi
leaq 0x2fe3e(%rip), %rsi     # 0x44dce
callq 0x9480
leaq -0x180(%rbp), %rsi
movq %rsi, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x14fc5
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x14fcb
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq 0x2f9e2(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r12, -0x70(%rbp)
movq %r15, -0x1b8(%rbp)
movq -0x78(%rbp), %r15
cmpq $0x0, 0x10(%r15)
je 0x16aab
movq %r15, %rdi
leaq -0x70(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
leaq -0x50(%rbp), %r8
callq *0x18(%r15)
movq -0xd0(%rbp), %r12
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x15057
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x15079
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x1509b
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
addq $0x28, %rbx
cmpq -0xc8(%rbp), %rbx
jne 0x14e80
movl $0x0, -0x198(%rbp)
leaq -0x180(%rbp), %r13
movq -0x2a8(%rbp), %rbx
movq -0x2a0(%rbp), %rax
movq %rax, -0xc8(%rbp)
cmpq %rax, %rbx
je 0x1531f
leaq -0xc0(%rbp), %r14
cmpq $0x0, 0x10(%r15)
je 0x152fd
movq 0x20(%rbx), %rsi
movl $0x1, %r15d
movq %rsi, %rdx
movl $0x1, %r12d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x15144
movl $0x1, %ecx
movq -0x30(%rbp), %r10
movq %r10, %rax
movq %r10, %rdi
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x1511e
addq %r10, %rdx
movl %ecx, %r12d
movq %rdx, %rcx
subq %rax, %rcx
je 0x151d3
movl $0x1, %r15d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x151c4
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x15186
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x151c4
cmpq $0x3, %rdi
jb 0x151a2
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x151c4
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r15
cmpq %rcx, %rdx
jb 0x15155
movq %r14, %r13
movq %r14, %rdi
leaq 0x2fc16(%rip), %rsi     # 0x44df6
movq %rbx, %rdx
callq 0xcdf6
movq %r13, %rdi
leaq 0x2fc19(%rip), %rsi     # 0x44e0b
callq 0x9480
leaq -0x180(%rbp), %rsi
movq %rsi, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x15227
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x1522d
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq 0x2f780(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r12, -0x70(%rbp)
movq %r15, -0x1b8(%rbp)
movq -0x78(%rbp), %r15
cmpq $0x0, 0x10(%r15)
je 0x16ab0
movq %r15, %rdi
leaq -0x70(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
leaq -0x50(%rbp), %r8
callq *0x18(%r15)
movq -0xd0(%rbp), %r12
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x152b9
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x152db
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x152fd
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
addq $0x28, %rbx
cmpq -0xc8(%rbp), %rbx
jne 0x150e2
movl $0x0, -0x198(%rbp)
leaq -0x180(%rbp), %r13
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x330(%rbp), %rsi
movq -0x328(%rbp), %rdx
addq %rsi, %rdx
leaq -0x50(%rbp), %rdi
callq 0x14292
movq 0x10(%rbp), %rbx
cmpq $0x0, 0x8(%rbx)
je 0x15375
movq -0x80(%rbp), %rdi
movq %rbx, %rsi
callq 0x40842
movl -0x198(%rbp), %r14d
testq %rax, %rax
je 0x153d4
leaq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x9170
jmp 0x1577e
movl -0x198(%rbp), %r14d
jmp 0x1577e
movq -0x180(%rbp), %rdx
movl $0x1, %ebx
movq %rdx, %rcx
movq -0x30(%rbp), %r9
subq %r9, %rcx
jbe 0x154f9
movl $0x1, %esi
movq %r9, %rax
movq %r9, %rdi
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %esi
movq %r9, %rdi
cmpq %rdx, %r9
jne 0x153a8
movq -0x30(%rbp), %r9
addq %rcx, %r9
movl %esi, %r14d
jmp 0x15502
cmpq $0x0, 0x10(%r15)
je 0x1577b
leaq 0x2fa35(%rip), %rsi     # 0x44e1b
leaq -0xc0(%rbp), %rdi
movq %rbx, %rdx
callq 0xcdf6
leaq 0x2fa0f(%rip), %rsi     # 0x44e0b
leaq -0xc0(%rbp), %rdi
callq 0x9480
movq %r13, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x156ae
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x156b6
movl $0x1, %edx
movq %r11, %rcx
subq %rcx, %r11
je 0x154ce
movl $0x1, %eax
xorl %esi, %esi
movzbl (%rcx,%rsi), %edi
movl $0x1, %r9d
testb %dil, %dil
jns 0x154bf
movq %r11, %r8
subq %rsi, %r8
cmpq $0x1, %r8
je 0x15481
movl %edi, %r10d
andl $-0x20, %r10d
movl $0x2, %r9d
cmpl $0xc0, %r10d
je 0x154bf
cmpq $0x3, %r8
jb 0x1549d
movl %edi, %r10d
andl $-0x10, %r10d
movl $0x3, %r9d
cmpl $0xe0, %r10d
je 0x154bf
andl $-0x8, %edi
xorl %r10d, %r10d
cmpl $0xf0, %edi
sete %r10b
shll $0x2, %r10d
cmpq $0x4, %r8
movl $0x0, %r9d
cmovaeq %r10, %r9
cmpq $0x1, %r9
adcq %r9, %rsi
incq %rax
cmpq %r11, %rsi
jb 0x15450
leaq -0x158(%rbp), %rcx
leaq -0x138(%rbp), %r8
leaq -0x70(%rbp), %rsi
movq %rdx, (%rsi)
leaq -0x1b8(%rbp), %rdx
movq %rax, (%rdx)
movq %r15, %rdi
callq *0x18(%r15)
jmp 0x15607
movl $0x1, %r14d
movq %r9, %rax
subq %rax, %r9
je 0x1558b
movl $0x1, %ebx
xorl %ecx, %ecx
movzbl (%rax,%rcx), %edx
movl $0x1, %edi
testb %dl, %dl
jns 0x1557c
movq %r9, %rsi
subq %rcx, %rsi
cmpq $0x1, %rsi
je 0x15540
movl %edx, %r8d
andl $-0x20, %r8d
movl $0x2, %edi
cmpl $0xc0, %r8d
je 0x1557c
cmpq $0x3, %rsi
jb 0x1555b
movl %edx, %r8d
andl $-0x10, %r8d
movl $0x3, %edi
cmpl $0xe0, %r8d
je 0x1557c
andl $-0x8, %edx
xorl %r8d, %r8d
cmpl $0xf0, %edx
sete %r8b
shll $0x2, %r8d
cmpq $0x4, %rsi
movl $0x0, %edi
cmovaeq %r8, %rdi
cmpq $0x1, %rdi
adcq %rdi, %rcx
incq %rbx
cmpq %r9, %rcx
jb 0x15512
leaq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
movq %rax, (%rdi)
leaq 0x2f1b0(%rip), %rsi     # 0x44753
leaq 0x2f1b5(%rip), %rdx     # 0x4475f
callq 0x12846
movq %r14, -0x70(%rbp)
movq %rbx, -0x1b8(%rbp)
cmpq $0x0, 0x10(%r15)
je 0x16ac4
leaq -0x138(%rbp), %r8
leaq -0x70(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
leaq -0xc0(%rbp), %rcx
movq %r15, %rdi
callq *0x18(%r15)
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x15607
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq $0x0, 0x18(%r12)
xorl %eax, %eax
movb %al, 0x20(%r12)
movb %al, 0x30(%r12)
leaq -0x128(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1564d
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x148(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1566c
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x178(%rbp), %rdi
testq %rdi, %rdi
je 0x15687
movq -0x168(%rbp), %rsi
subq %rdi, %rsi
callq 0x92b0
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0x167be
leaq -0x50(%rbp), %rsi
movl $0x3, %edi
xorl %edx, %edx
callq *%rax
movq $0x0, -0x50(%rbp)
jmp 0x167be
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x60(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2f2fb(%rip), %rdx     # 0x449da
leaq -0x70(%rbp), %rdi
movq %rdx, %rsi
callq 0x12846
movl $0x1, %eax
movq %rax, -0x1b8(%rbp)
movq %rax, -0x1e8(%rbp)
cmpq $0x0, 0x10(%r15)
je 0x16ad3
leaq -0x1b8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
leaq -0x70(%rbp), %r8
movq %r15, %rdi
callq *0x18(%r15)
movq -0x70(%rbp), %rdi
cmpq %rbx, %rdi
je 0x1573e
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x15759
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x1577b
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
xorl %r14d, %r14d
testb %r14b, %r14b
je 0x15dad
leaq -0x50(%rbp), %rsi
movq -0x80(%rbp), %rdi
callq 0x3073a
cmpb $0x1, 0xc0(%rax)
movq %rax, -0x1c0(%rbp)
jne 0x159ba
cmpq $0x0, 0x10(%r15)
je 0x159b7
movq 0x20(%rax), %rsi
movl $0x1, %ebx
movq %rsi, %rdx
movl $0x1, %r14d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x15807
movl $0x1, %ecx
movq -0x30(%rbp), %rdi
movq %rdi, %rax
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x157e0
addq -0x30(%rbp), %rdx
movl %ecx, %r14d
movq %rdx, %rcx
subq %rax, %rcx
je 0x15895
movl $0x1, %ebx
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x15886
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x15848
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x15886
cmpq $0x3, %rdi
jb 0x15864
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x15886
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %rbx
cmpq %rcx, %rdx
jb 0x15817
leaq 0x2f59a(%rip), %rsi     # 0x44e36
leaq -0xc0(%rbp), %rdi
movq -0x1c0(%rbp), %rdx
callq 0xcdf6
leaq 0x2f5a7(%rip), %rsi     # 0x44e5d
leaq -0xc0(%rbp), %rdi
callq 0x9480
movq %r13, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x158eb
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x158f3
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x2f0be(%rip), %rdx     # 0x449da
leaq -0x70(%rbp), %rdi
movq %rdx, %rsi
callq 0x12846
movq %r14, -0x1b8(%rbp)
movq %rbx, -0x1e8(%rbp)
movq -0x78(%rbp), %rdi
cmpq $0x0, 0x10(%rdi)
je 0x16ace
leaq -0x1b8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq *0x18(%rdi)
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x15976
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
movq -0x78(%rbp), %r15
je 0x15995
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x159b7
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
xorl %r14d, %r14d
testb %r14b, %r14b
je 0x15dad
leaq -0x190(%rbp), %rbx
movq %r13, (%rbx)
leaq 0x2f4cc(%rip), %rsi     # 0x44ea0
leaq 0x2f4d0(%rip), %rdx     # 0x44eab
movq %rbx, %rdi
callq 0x12846
movl %r14d, %r12d
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x2f4b4(%rip), %rsi     # 0x44eac
leaq 0x2f4b2(%rip), %rdx     # 0x44eb1
leaq -0x170(%rbp), %rdi
callq 0x12846
leaq -0x150(%rbp), %r14
leaq -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x2f28f(%rip), %rsi     # 0x44cb3
leaq 0x2f290(%rip), %rdx     # 0x44cbb
movq %r14, %rdi
callq 0x12846
leaq -0x130(%rbp), %r14
leaq -0x120(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq -0x1c0(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x14292
movq %r14, -0x1f0(%rbp)
leaq -0x110(%rbp), %r13
leaq -0x1e8(%rbp), %rax
movq %rax, (%rsp)
leaq -0xc0(%rbp), %rdi
leaq -0x190(%rbp), %rsi
leaq -0x70(%rbp), %r8
leaq -0x1b8(%rbp), %r9
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x3ae9e
movq $-0x80, %r14
movq -0x10(%rbx), %rdi
cmpq %rdi, %rbx
je 0x15ab5
movq (%rbx), %rsi
incq %rsi
callq 0x92b0
addq $-0x20, %rbx
addq $0x20, %r14
jne 0x15aa1
movq -0x80(%rbp), %rax
movq 0x10(%rax), %rdx
testq %rdx, %rdx
je 0x15dd9
leaq -0x188(%rbp), %rbx
leaq 0x48d72(%rip), %r13     # 0x5e850
movl %r12d, %r14d
leaq 0x118(%rdx), %rax
movq %r13, -0x190(%rbp)
leaq -0x158(%rbp), %rcx
movq %rcx, -0x188(%rbp)
movl $0x1, %esi
movq %rsi, -0x180(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movl $0x3f800000, %edi       # imm = 0x3F800000
movl %edi, -0x168(%rbp)
leaq -0x160(%rbp), %rcx
movups %xmm0, (%rcx)
leaq -0x120(%rbp), %rcx
movq %rcx, -0x150(%rbp)
movq %rsi, -0x148(%rbp)
leaq -0x140(%rbp), %rcx
movups %xmm0, (%rcx)
movl %edi, -0x130(%rbp)
leaq -0x128(%rbp), %rcx
movups %xmm0, (%rcx)
leaq -0xe8(%rbp), %rcx
movq %rcx, -0x118(%rbp)
movq %rsi, -0x110(%rbp)
movups %xmm0, 0x80(%rbx)
movl %edi, -0xf8(%rbp)
movups %xmm0, 0x98(%rbx)
movq -0x80(%rbp), %rcx
movq %rcx, -0xe0(%rbp)
movq %rax, -0xd8(%rbp)
movq %rdx, -0xc8(%rbp)
movq 0x1e8(%rdx), %rdi
movq (%rdi), %rax
leaq -0x190(%rbp), %rsi
callq *0x18(%rax)
movq -0x108(%rbp), %rbx
leaq -0xc0(%rbp), %rax
movq %rax, -0x70(%rbp)
testq %rbx, %rbx
je 0x15bda
leaq 0x8(%rbx), %rsi
leaq -0xc0(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x3afa6
movq (%rbx), %rbx
jmp 0x15bbc
movq -0x178(%rbp), %rbx
testq %rbx, %rbx
je 0x15d6a
cmpq $0x0, 0x10(%r15)
je 0x15d5b
movq 0x28(%rbx), %rsi
movl $0x1, %r15d
movq %rsi, %rdx
movl $0x1, %r12d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x15c4c
movl $0x1, %ecx
movq -0x30(%rbp), %r10
movq %r10, %rax
movq %r10, %rdi
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x15c26
addq %r10, %rdx
movl %ecx, %r12d
movq %rdx, %rcx
subq %rax, %rcx
je 0x15cdb
movl $0x1, %r15d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x15ccc
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x15c8e
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x15ccc
cmpq $0x3, %rdi
jb 0x15caa
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x15ccc
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r15
cmpq %rcx, %rdx
jb 0x15c5d
leaq 0x8(%rbx), %rsi
leaq -0x150(%rbp), %rdi
callq 0x40ca0
movq %rax, %r14
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq -0x70(%rbp), %rdi
leaq 0x2ecd9(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r12, -0x1b8(%rbp)
movq %r15, -0x1e8(%rbp)
movq -0x78(%rbp), %r15
cmpq $0x0, 0x10(%r15)
je 0x16aa1
movq %r15, %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
movq %r14, %rcx
leaq -0x70(%rbp), %r8
callq *0x18(%r15)
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x15d5b
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x15bea
xorl %r14d, %r14d
movq %r13, -0x190(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x30684
leaq -0x150(%rbp), %rdi
callq 0x3e632
leaq -0x188(%rbp), %rbx
movq %rbx, %rdi
callq 0x3e72e
movq -0xc8(%rbp), %rdx
movq (%rdx), %rdx
testq %rdx, %rdx
jne 0x15ae1
jmp 0x15ddc
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq $0x0, 0x18(%r12)
xorl %eax, %eax
movb %al, 0x20(%r12)
movb %al, 0x30(%r12)
jmp 0x167a5
movl %r12d, %r14d
movq -0x80(%rbp), %rax
movq 0x10(%rax), %r15
testq %r15, %r15
leaq -0x180(%rbp), %r13
je 0x1603a
movl %r14d, -0x198(%rbp)
leaq 0x8(%r15), %r12
leaq -0xc0(%rbp), %rdi
movq %r12, %rsi
callq 0x40124
testq %rax, %rax
je 0x15e20
movq (%r15), %r15
testq %r15, %r15
jne 0x15dfb
jmp 0x1603a
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x15e13
movq 0x48(%r15), %rsi
movl $0x1, %r14d
movq %rsi, %rdx
movl $0x1, %r13d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rdx
jbe 0x15e80
movl $0x1, %ecx
movq -0x30(%rbp), %rdi
movq %rdi, %rax
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rsi, %r9
jne 0x15e59
addq -0x30(%rbp), %rdx
movl %ecx, %r13d
movq %rdx, %rcx
subq %rax, %rcx
je 0x15f0f
movl $0x1, %r14d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x15f00
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x15ec2
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x15f00
cmpq $0x3, %rdi
jb 0x15ede
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x15f00
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r14
cmpq %rcx, %rdx
jb 0x15e91
leaq -0x70(%rbp), %rbx
movq %rbx, %rdi
leaq 0x2e850(%rip), %rsi     # 0x4476d
movq %r12, %rdx
callq 0xcdf6
movq %rbx, %rdi
leaq 0x2ef31(%rip), %rsi     # 0x44e60
callq 0x9480
leaq -0x180(%rbp), %rsi
movq %rsi, -0x190(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x15f64
movq %rdx, -0x190(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x180(%rbp)
jmp 0x15f6a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x188(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x15f9d
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq %rbx, %rdi
leaq 0x2ea2b(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r13, -0x1b8(%rbp)
movq %r14, -0x1e8(%rbp)
movq -0x78(%rbp), %rdi
cmpq $0x0, 0x10(%rdi)
je 0x16ab5
leaq -0x1b8(%rbp), %rsi
leaq -0x1e8(%rbp), %rdx
leaq -0x190(%rbp), %rcx
movq %rbx, %r8
leaq -0x180(%rbp), %r13
callq *0x18(%rdi)
movl -0x198(%rbp), %r14d
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x16016
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x15e13
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x15e13
testb $0x1, %r14b
je 0x165ca
movq -0x80(%rbp), %rax
movq 0x10(%rax), %r14
testq %r14, %r14
movq -0xd0(%rbp), %r12
je 0x1609e
leaq 0x488e1(%rip), %r15     # 0x5e940
leaq -0x190(%rbp), %rbx
leaq 0x118(%r14), %rax
movq %r15, -0x190(%rbp)
movq -0x80(%rbp), %rcx
movq %rcx, -0x188(%rbp)
movq %rax, -0x180(%rbp)
movq 0x1e8(%r14), %rdi
movq (%rdi), %rax
movq %rbx, %rsi
callq *0x18(%rax)
movq (%r14), %r14
testq %r14, %r14
jne 0x16066
movq -0x80(%rbp), %r15
movq 0x10(%r15), %r14
testq %r14, %r14
je 0x163c3
leaq -0x180(%rbp), %rbx
movb $0x1, %r15b
leaq 0x484c0(%rip), %rax     # 0x5e580
movq %rax, -0x190(%rbp)
movq $0x0, -0x188(%rbp)
leaq -0x170(%rbp), %rax
movq %rax, -0x180(%rbp)
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x14292
leaq -0x130(%rbp), %rax
movq %rax, -0x160(%rbp)
movq $0x1, -0x158(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rbx)
movl $0x3f800000, -0x140(%rbp) # imm = 0x3F800000
movups %xmm0, 0x48(%rbx)
movb $0x0, 0x58(%rbx)
movq 0x1e8(%r14), %rdi
movq (%rdi), %rax
leaq -0x190(%rbp), %rsi
callq *0x18(%rax)
movq -0x188(%rbp), %rdx
testq %rdx, %rdx
je 0x16366
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x16363
movl $0x1, %r15d
movq %rdx, %rsi
movl $0x1, %r13d
movq -0x30(%rbp), %rdi
movq %rdi, %rcx
movq %rdi, %rax
subq %rdi, %rsi
leaq -0x1b8(%rbp), %r12
jbe 0x161b0
movl $0x1, %ecx
movq -0x30(%rbp), %rdi
movq %rdi, %rax
xorl %r8d, %r8d
cmpb $0xa, (%rdi)
leaq 0x1(%rdi), %r9
cmoveq %r9, %rax
sete %r8b
addl %r8d, %ecx
movq %r9, %rdi
cmpq %rdx, %r9
jne 0x16189
addq -0x30(%rbp), %rsi
movl %ecx, %r13d
movq %rsi, %rcx
subq %rax, %rcx
je 0x1623f
movl $0x1, %r15d
xorl %edx, %edx
movzbl (%rax,%rdx), %esi
movl $0x1, %r8d
testb %sil, %sil
jns 0x16230
movq %rcx, %rdi
subq %rdx, %rdi
cmpq $0x1, %rdi
je 0x161f2
movl %esi, %r9d
andl $-0x20, %r9d
movl $0x2, %r8d
cmpl $0xc0, %r9d
je 0x16230
cmpq $0x3, %rdi
jb 0x1620e
movl %esi, %r9d
andl $-0x10, %r9d
movl $0x3, %r8d
cmpl $0xe0, %r9d
je 0x16230
andl $-0x8, %esi
xorl %r9d, %r9d
cmpl $0xf0, %esi
sete %r9b
shll $0x2, %r9d
cmpq $0x4, %rdi
movl $0x0, %r8d
cmovaeq %r9, %r8
cmpq $0x1, %r8
adcq %r8, %rdx
incq %r15
cmpq %rcx, %rdx
jb 0x161c1
leaq 0x8(%r14), %rdx
movq %r12, %rdi
leaq 0x2e520(%rip), %rsi     # 0x4476d
callq 0xcdf6
movq %r12, %rdi
leaq 0x2ec19(%rip), %rsi     # 0x44e75
callq 0x9480
leaq -0x60(%rbp), %rsi
movq %rsi, -0x70(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x16285
movq %rdx, -0x70(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x60(%rbp)
jmp 0x1628b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x68(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x1d8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %rdi
leaq 0x2e71c(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
movq %r13, -0x1f8(%rbp)
movq %r15, -0x200(%rbp)
movq -0x78(%rbp), %rdi
cmpq $0x0, 0x10(%rdi)
je 0x16aba
leaq -0x1f8(%rbp), %rsi
leaq -0x200(%rbp), %rdx
leaq -0x70(%rbp), %rcx
leaq -0x1e8(%rbp), %r8
leaq -0x60(%rbp), %r15
callq *0x18(%rdi)
leaq -0x180(%rbp), %r13
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x1632c
movq -0x1d8(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x16341
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0x16363
movq -0x1a8(%rbp), %rsi
incq %rsi
callq 0x92b0
xorl %r15d, %r15d
leaq 0x48213(%rip), %rax     # 0x5e580
movq %rax, -0x190(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x30684
movq -0x180(%rbp), %rdi
leaq -0x170(%rbp), %rax
cmpq %rax, %rdi
je 0x163a2
movq -0x170(%rbp), %rsi
incq %rsi
callq 0x92b0
movq (%r14), %r14
testq %r14, %r14
jne 0x160b9
testb $0x1, %r15b
movq -0xd0(%rbp), %r12
movq -0x80(%rbp), %r15
je 0x16772
leaq -0x340(%rbp), %rsi
movq -0x1c8(%rbp), %rdi
movq -0x1c0(%rbp), %rdx
movq -0x78(%rbp), %r14
movq %r14, %rcx
movq -0x30(%rbp), %r8
callq 0x3904c
testb %al, %al
jne 0x16772
leaq -0x190(%rbp), %rdi
movq %r13, (%rdi)
leaq 0x2ea9f(%rip), %rsi     # 0x44ea0
leaq 0x2eaa3(%rip), %rdx     # 0x44eab
callq 0x12846
leaq -0x190(%rbp), %rsi
movq %r15, %rdi
callq 0x40842
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x1643a
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
testq %rbx, %rbx
je 0x16661
movq 0x10(%r15), %r14
testq %r14, %r14
je 0x1653d
leaq 0x488a9(%rip), %r15     # 0x5ed00
leaq -0x190(%rbp), %r13
leaq -0x70(%rbp), %r12
movq 0x49b07(%rip), %rbx     # 0x5ff70
movq 0x1e8(%r14), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x70(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
testq %rax, %rax
je 0x16493
cmpb $0x0, (%rbx)
je 0x1648f
incl 0x8(%rax)
jmp 0x16493
lock
incl 0x8(%rax)
movq -0x70(%rbp), %rdi
movq %r15, -0x190(%rbp)
movb $0x0, -0x188(%rbp)
movq (%rdi), %rax
movq %r13, %rsi
callq *0x18(%rax)
cmpb $0x1, -0x188(%rbp)
jne 0x16523
movq $0x0, -0x190(%rbp)
leaq -0x188(%rbp), %rdi
movq %r13, %rsi
leaq -0x1e8(%rbp), %rdx
movq %r12, %rcx
callq 0x2d15e
movq -0x190(%rbp), %rax
movq -0x188(%rbp), %rcx
movq %rax, -0x1b8(%rbp)
movq %rcx, -0x1b0(%rbp)
movq 0x1e8(%r14), %rdi
movq %rax, 0x8(%rdi)
addq $0x10, %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x1432c
movq -0x1b0(%rbp), %rdi
testq %rdi, %rdi
je 0x16523
callq 0x13612
movq -0x68(%rbp), %rdi
testq %rdi, %rdi
je 0x16531
callq 0x13612
movq (%r14), %r14
testq %r14, %r14
jne 0x16469
leaq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %r13
movq %r13, (%rdi)
leaq 0x2e94b(%rip), %rsi     # 0x44ea0
leaq 0x2e94f(%rip), %rdx     # 0x44eab
callq 0x12846
leaq -0x190(%rbp), %rsi
movq -0x80(%rbp), %r15
movq %r15, %rdi
callq 0x2af0e
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x16592
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq 0x1c0(%rbx), %rax
movq 0x8(%rax), %rcx
movq %rcx, -0x70(%rbp)
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
testq %rax, %rax
movq -0xd0(%rbp), %r12
movq -0x78(%rbp), %r14
je 0x165dd
movq 0x499b0(%rip), %rcx     # 0x5ff70
cmpb $0x0, (%rcx)
je 0x165d9
incl 0x8(%rax)
jmp 0x165dd
xorps %xmm0, %xmm0
movq -0xd0(%rbp), %r12
jmp 0x16775
lock
incl 0x8(%rax)
leaq -0x190(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x393c8
movaps -0x190(%rbp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, -0x190(%rbp)
movq -0x1c0(%rbp), %rax
movq 0xd0(%rax), %rdi
movups %xmm0, 0xc8(%rax)
testq %rdi, %rdi
je 0x1661d
callq 0x13612
movq -0x188(%rbp), %rdi
testq %rdi, %rdi
je 0x1662e
callq 0x13612
movq -0x68(%rbp), %rdi
testq %rdi, %rdi
je 0x1663c
callq 0x13612
leaq -0x340(%rbp), %rsi
movq -0x1c8(%rbp), %rdi
movq %rbx, %rdx
movq %r14, %rcx
movq -0x30(%rbp), %r8
callq 0x3904c
testb %al, %al
jne 0x16772
leaq -0x190(%rbp), %rdi
movq %r13, (%rdi)
leaq 0x2e83a(%rip), %rsi     # 0x44eac
leaq 0x2e838(%rip), %rdx     # 0x44eb1
callq 0x12846
leaq -0x190(%rbp), %rsi
movq %r15, %rdi
callq 0x40842
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x166ab
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
testq %rbx, %rbx
je 0x1684e
leaq -0x190(%rbp), %rdi
movq %r13, (%rdi)
leaq 0x2e7e7(%rip), %rsi     # 0x44eac
leaq 0x2e7e5(%rip), %rdx     # 0x44eb1
callq 0x12846
leaq -0x190(%rbp), %rsi
movq %r15, %rdi
callq 0x2af0e
movq %rax, %rbx
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
je 0x166fe
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq 0x1c0(%rbx), %rax
movq 0x8(%rax), %rcx
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x16727
movq 0x49857(%rip), %rdx     # 0x5ff70
cmpb $0x0, (%rdx)
je 0x16723
incl 0x8(%rax)
jmp 0x16727
lock
incl 0x8(%rax)
movq -0x1c0(%rbp), %rdx
movq %rcx, 0xd8(%rdx)
movq 0xe0(%rdx), %rdi
movq %rax, 0xe0(%rdx)
testq %rdi, %rdi
je 0x1674d
callq 0x13612
leaq -0x340(%rbp), %rsi
movq -0x1c8(%rbp), %rdi
movq %rbx, %rdx
movq %r14, %rcx
movq -0x30(%rbp), %r8
callq 0x3904c
testb %al, %al
je 0x1684e
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq $0x0, 0x18(%r12)
xorl %eax, %eax
movb %al, 0x20(%r12)
movb %al, 0x30(%r12)
leaq -0xc0(%rbp), %rdi
callq 0x30684
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x167be
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x278(%rbp), %rdi
callq 0x3657a
leaq -0x290(%rbp), %rdi
callq 0x3b7e0
leaq -0x2a8(%rbp), %rdi
callq 0x39df6
leaq -0x2d8(%rbp), %rdi
callq 0x3a198
leaq -0x2f0(%rbp), %rdi
callq 0x39df6
leaq -0x308(%rbp), %rbx
movq %rbx, %rdi
callq 0x39df6
movq -0x28(%rbx), %rdi
leaq -0x320(%rbp), %rax
cmpq %rax, %rdi
je 0x16828
movq -0x320(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x338(%rbp), %rdi
testq %rdi, %rdi
je 0x16839
callq 0x13612
movq %r12, %rax
addq $0x328, %rsp            # imm = 0x328
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq -0x2d0(%rbp), %rax
movq 0x10(%rax), %r14
cmpq %rax, %r14
je 0x169fb
leaq -0x190(%rbp), %r13
leaq 0x20(%r14), %rsi
movq %r15, %rdi
callq 0x3073a
movq 0x40(%r14), %r12
movq %r14, -0x198(%rbp)
movq 0x48(%r14), %r15
cmpq %r15, %r12
leaq -0x220(%rbp), %r14
je 0x169d8
movq %rax, %rbx
addq $0x198, %rax            # imm = 0x198
movq %rax, -0xc8(%rbp)
movq %r12, %rdi
leaq 0x2e19a(%rip), %rsi     # 0x44a48
callq 0x90c0
testl %eax, %eax
je 0x168f1
movq %r12, %rdi
leaq 0x2e1c2(%rip), %rsi     # 0x44a83
callq 0x90c0
testl %eax, %eax
je 0x16967
movq %r12, %rdi
leaq 0x2e1b9(%rip), %rsi     # 0x44a91
callq 0x90c0
testl %eax, %eax
jne 0x169cb
movb $0x1, 0x1b8(%rbx)
jmp 0x169cb
leaq 0x20(%r12), %rdi
callq 0x3b5ca
testq %rax, %rax
je 0x16abf
movq %r13, %rdi
movq %rax, %rsi
callq 0x37df6
movq %r14, %rdi
movq -0x78(%rbp), %rsi
callq 0xd1a0
movq -0x1c8(%rbp), %rdi
movq %rbx, %rsi
movq %r13, %rdx
movq -0x30(%rbp), %rcx
movq %r14, %r8
callq 0x39460
movl %eax, %r14d
movq -0x210(%rbp), %rax
testq %rax, %rax
je 0x16954
leaq -0x220(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
testb %r14b, %r14b
je 0x16a2f
movq %r13, %rdi
callq 0x37ff4
jmp 0x169c4
leaq 0x20(%r12), %rdi
callq 0x2f395
testq %rax, %rax
je 0x16ac9
leaq -0x180(%rbp), %r14
movq %r14, -0x190(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x14292
movq -0xc8(%rbp), %rdi
movq %r13, %rsi
callq 0x9330
movq -0x190(%rbp), %rdi
cmpq %r14, %rdi
je 0x169c4
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x220(%rbp), %r14
addq $0x40, %r12
cmpq %r15, %r12
jne 0x168a4
movq -0x198(%rbp), %rdi
callq 0x91f0
movq %rax, %r14
leaq -0x2d0(%rbp), %rax
cmpq %rax, %r14
movq -0x80(%rbp), %r15
jne 0x16869
movq -0x340(%rbp), %rax
movq -0xd0(%rbp), %r12
movq %rax, (%r12)
movq -0x338(%rbp), %rax
movq %rax, 0x8(%r12)
testq %rax, %rax
je 0x16a72
movq 0x4954b(%rip), %rcx     # 0x5ff70
cmpb $0x0, (%rcx)
je 0x16a6e
incl 0x8(%rax)
jmp 0x16a72
xorps %xmm0, %xmm0
movq -0xd0(%rbp), %r12
movups %xmm0, (%r12)
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq $0x0, 0x18(%r12)
xorl %eax, %eax
movb %al, 0x20(%r12)
movb %al, 0x30(%r12)
leaq -0x190(%rbp), %rdi
callq 0x37ff4
jmp 0x16799
lock
incl 0x8(%rax)
leaq 0x10(%r12), %rdi
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
callq 0x14292
movb -0x248(%rbp), %al
movb %al, 0x30(%r12)
jmp 0x16799
callq 0x90f0
callq 0x90f0
callq 0x90f0
callq 0x90f0
callq 0x90f0
callq 0x90f0
callq 0x2f195
callq 0x90f0
callq 0x2f195
callq 0x90f0
callq 0x90f0
movq %rax, %r14
movq 0x8(%r12), %rdi
jmp 0x16d01
jmp 0x17057
jmp 0x16b09
jmp 0x17057
jmp 0x17057
jmp 0x16cfa
jmp 0x16b09
jmp 0x17057
jmp 0x16b09
jmp 0x17057
movq %rax, %r14
movq -0x190(%rbp), %rdi
cmpq %r13, %rdi
jne 0x16de8
jmp 0x1705a
jmp 0x17057
jmp 0x17057
jmp 0x17057
jmp 0x16b39
jmp 0x16b41
jmp 0x16d9d
movq %rax, %r14
jmp 0x16bc1
movq %rax, %r14
jmp 0x16be3
jmp 0x16d9d
jmp 0x16e16
jmp 0x17057
jmp 0x17057
jmp 0x16e16
jmp 0x16c58
movq %rax, %r14
leaq -0x190(%rbp), %rsi
movq %r13, %rdi
callq 0x956f
movb $0x1, %al
jmp 0x16ca5
jmp 0x16ca0
movq %rax, %r14
xorl %eax, %eax
movq %rbx, -0x1f0(%rbp)
jmp 0x16ca5
jmp 0x16cfa
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x16bb5
jmp 0x16bc1
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x16bc1
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x16be3
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x16da0
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x16da0
jmp 0x16e16
jmp 0x17057
jmp 0x17057
movq %rax, %r14
movq -0x210(%rbp), %rax
testq %rax, %rax
je 0x16c47
leaq -0x220(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x16c47
jmp 0x16e16
movq %rax, %r14
leaq -0x190(%rbp), %rdi
callq 0x37ff4
jmp 0x1705a
movq %rdx, %rbx
movq %rax, %r14
jmp 0x16c88
movq %rdx, %rbx
movq %rax, %r14
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x16c88
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x190(%rbp), %rdi
callq 0x38f62
jmp 0x16ee7
movq %r14, -0x1f0(%rbp)
movq %rax, %r14
xorl %eax, %eax
movq -0x1f0(%rbp), %r15
leaq -0x190(%rbp), %rcx
cmpq %r15, %rcx
sete %cl
orb %al, %cl
jne 0x16da0
addq $-0x10, %r15
leaq -0x190(%rbp), %rbx
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x16ce0
movq (%r15), %rsi
incq %rsi
callq 0x92b0
leaq -0x20(%r15), %rax
addq $-0x10, %r15
cmpq %rbx, %r15
movq %rax, %r15
jne 0x16ccc
jmp 0x16da0
jmp 0x16d9d
movq %rax, %r14
movq -0x68(%rbp), %rdi
testq %rdi, %rdi
je 0x1705a
callq 0x13612
jmp 0x1705a
jmp 0x16e16
jmp 0x16e16
jmp 0x16d2a
movq %rax, %r14
jmp 0x16d4f
movq %rax, %r14
jmp 0x16d68
movq %rax, %r14
movq -0x1e8(%rbp), %rdi
leaq -0x1d8(%rbp), %rax
cmpq %rax, %rdi
je 0x16d4f
movq -0x1d8(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x16d68
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0x16ea4
movq -0x1a8(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x16ea4
jmp 0x16ea1
jmp 0x170eb
movq %rax, %r14
leaq -0x40(%rbp), %rbx
jmp 0x1716e
jmp 0x17057
jmp 0x16db0
movq %rax, %r14
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x16dd1
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x16dd1
movq %rax, %r14
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x1705a
movq -0x180(%rbp), %rsi
jmp 0x16e09
movq %rax, %r14
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x1705a
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x1705a
movq %rax, %rdi
callq 0xf084
movq %rdx, %rbx
movq %rax, %r14
movq -0x230(%rbp), %rax
testq %rax, %rax
je 0x16ec5
leaq -0x240(%rbp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x16ec5
jmp 0x16e16
movq %rdx, %rbx
movq %rax, %r14
jmp 0x16ee7
jmp 0x16e76
jmp 0x170eb
jmp 0x170eb
movq %rax, %r14
leaq -0xc0(%rbp), %rdi
callq 0xcae6
jmp 0x16e79
jmp 0x170eb
movq %rax, %r14
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x17183
movq -0x180(%rbp), %rsi
jmp 0x1717b
jmp 0x170eb
movq %rax, %r14
leaq -0x190(%rbp), %rdi
callq 0x1085c
jmp 0x1705a
jmp 0x17057
jmp 0x17057
movq %rdx, %rbx
movq %rax, %r14
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x16ee7
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x50(%rbp), %rdi
callq 0xb7ba
cmpl $0x1, %ebx
jne 0x17183
movq %r14, %rdi
callq 0x9110
movq -0x78(%rbp), %rcx
cmpq $0x0, 0x10(%rcx)
je 0x16fb5
movq 0x10(%rax), %rbx
movq 0x18(%rax), %r15
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
leaq -0x190(%rbp), %rdi
leaq -0x50(%rbp), %rdx
movq %rax, %rsi
callq 0x12808
leaq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
movq %rax, (%rdi)
leaq 0x2da8e(%rip), %rdx     # 0x449da
movq %rdx, %rsi
callq 0x12846
leaq -0x190(%rbp), %rcx
leaq -0xc0(%rbp), %r8
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x141c0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x16f93
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x16fb5
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
xorps %xmm0, %xmm0
movq -0xd0(%rbp), %r12
movups %xmm0, (%r12)
leaq 0x20(%r12), %rax
movq %rax, 0x10(%r12)
movq $0x0, 0x18(%r12)
xorl %eax, %eax
movb %al, 0x20(%r12)
movb %al, 0x30(%r12)
callq 0x93f0
jmp 0x167be
movq %rax, %r14
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x17017
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x17017
movq %rax, %r14
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x1703e
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x1703e
movq %rax, %r14
callq 0x93f0
jmp 0x17183
jmp 0x16e16
jmp 0x170eb
jmp 0x1714f
movq %rax, %r14
leaq -0x40(%rbp), %rbx
jmp 0x17162
jmp 0x170f8
jmp 0x1708a
jmp 0x170eb
jmp 0x17080
jmp 0x17085
jmp 0x1708a
jmp 0x1708a
jmp 0x170eb
jmp 0x17080
jmp 0x17085
jmp 0x1708a
jmp 0x1708a
jmp 0x170eb
movq %rax, %r14
jmp 0x170c8
movq %rax, %r14
jmp 0x170a6
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x170a6
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0x190(%rbp), %rdi
leaq -0x180(%rbp), %rax
cmpq %rax, %rdi
je 0x170c8
movq -0x180(%rbp), %rsi
incq %rsi
callq 0x92b0
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x17183
movq -0xb0(%rbp), %rsi
jmp 0x1717b
movq %rax, %r14
jmp 0x17183
movq %rax, %r14
jmp 0x1711d
movq %rax, %r14
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x1711d
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x190(%rbp), %rdi
callq 0x39010
jmp 0x17183
jmp 0x17131
jmp 0x1714f
jmp 0x1714f
movq %rax, %r14
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x17152
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x17152
movq %rax, %r14
leaq -0x40(%rbp), %rbx
leaq -0x190(%rbp), %rdi
callq 0x1136a
leaq -0xc0(%rbp), %rdi
callq 0x30684
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0x17183
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
leaq -0x340(%rbp), %rdi
callq 0x39d32
movq %r14, %rdi
callq 0x9420
nop