// File: /workspace/github_cpp_makefile_star2_O3/davmac314[P]dinit/src/dinitctl.cc
// Function: enable_disable_service(int, cpbuffer<1024u>&, service_dir_opt&, char const*, char const*, bool, bool, unsigned short)
static int enable_disable_service(int socknum, cpbuffer_t &rbuffer, service_dir_opt &service_dir_opts,
        const char *from, const char *to, bool enable, bool verbose, uint16_t proto_version)
{
    using std::cout;
    using std::cerr;
    using std::string;

    service_state_t from_state = service_state_t::STARTED;
    handle_t from_handle;

    handle_t to_handle;

    std::vector<string> service_dir_paths;

    string service_file_path;
    string to_service_file_path;
    dio::istream service_file;
    fd_holder parent_dir_fd;

    if (strchr(from, '@') != nullptr) {
        cerr << "dinitctl: cannot enable/disable from a service with argument (service@arg).\n";
        return 1;
    }

    if (socknum >= 0) {
        if (!load_service(socknum, rbuffer, from, &from_handle, &from_state)
                || !load_service(socknum, rbuffer, to, &to_handle, nullptr)) {
            return 1;
        }

        try {
            service_dir_paths = get_service_description_dirs(socknum, rbuffer);
        }
        catch (dinit_protocol_error &) {
            cerr << "dinitctl: unknown configuration or protocol error, unable to load service descriptions\n";
        }

        to_service_file_path = get_service_descr_filename(socknum, rbuffer, to_handle, to);

        std::string from_sdf_dir = get_service_description_dir(socknum, rbuffer, from_handle);
        if (from_sdf_dir.empty())
            throw dinit_protocol_error();

        auto sdf_fds = open_with_dir(from_sdf_dir.c_str(), from);
        if (sdf_fds.first == -1) {
            cerr << "dinitctl: could not open service description file '"
                    << service_file_path << "': " << strerror(sdf_fds.second) << "\n";
            return EXIT_FAILURE;
        }

        parent_dir_fd = sdf_fds.first;
        service_file.set_fd(sdf_fds.second);

        service_file_path = from_sdf_dir;
        if (*service_file_path.rbegin() != '/') service_file_path += '/';
        service_file_path += from;
    }
    else {
        // offline case
        const auto &path_list = service_dir_opts.get_paths();
        for (auto &path : path_list) {
            service_dir_paths.emplace_back(path.get_dir());
        }

        auto sdf_fds = find_service_desc(from, service_dir_paths, service_file_path);
        if (sdf_fds.first == -1) {
            if (sdf_fds.second == ENOENT) {
                cerr << "dinitctl: could not locate service file for service '" << from << "'\n";
            }
            else {
                cerr << "dinitctl: could not open service description file '"
                        << service_file_path << "': " << strerror(sdf_fds.second)
                        << "\n";
            }
            return EXIT_FAILURE;
        }

        parent_dir_fd = sdf_fds.first;
        service_file.set_fd(sdf_fds.second);

        auto to_sdf_fds = find_service_desc(to, service_dir_paths, to_service_file_path);
        if (to_sdf_fds.first == -1 && to_sdf_fds.second == ENOENT) {
            cerr << "dinitctl: could not locate service file for target service '" << to << "'\n";
            return EXIT_FAILURE;
        }

        if (to_sdf_fds.first != -1) {
            close(to_sdf_fds.first);
            close(to_sdf_fds.second);
        }
    }

    // We now need to read the service file, identify the waits-for.d directory (bail out if more than one),
    // make sure the service is not listed as a dependency individually.

    string waits_for_d;
    fd_holder waits_for_d_fd;

    file_input_stack input_stack;
    input_stack.push(service_file_path, std::move(service_file), parent_dir_fd.release());

    try {
        auto resolve_var = [](const std::string &name) {
            return (char *)nullptr; // FIXME
        };

        auto is_setting = [](const std::string &setting, dinit_load::setting_id_t setting_id) {
            return (setting == dinit_load::all_settings[(size_t)setting_id].setting_str);
        };

        process_service_file(from, input_stack, [&](string &line, file_pos_ref fpr,
                string &setting, dinit_load::setting_op_t op,
                dinit_load::string_iterator i, dinit_load::string_iterator end) -> void {
                    using namespace dinit_load;

                    if (is_setting(setting, setting_id_t::WAITS_FOR)
                            || is_setting(setting, setting_id_t::DEPENDS_ON)
                            || is_setting(setting, setting_id_t::DEPENDS_MS)) {
                        string dname = dinit_load::read_setting_value(fpr, i, end);
                        if (dname == to) {
                            // There is already a dependency
                            cerr << "dinitctl: there is a fixed dependency to service '" << to
                                    << "' in the service description of '" << from << "'.\n";
                            throw service_op_cancel();
                        }
                    }
                    else if (is_setting(setting, setting_id_t::WAITS_FOR_D)) {
                        string dname = dinit_load::read_setting_value(fpr, i, end);
                        if (! waits_for_d.empty()) {
                            cerr << "dinitctl: service '" << from << "' has multiple waits-for.d directories "
                                    << "specified in service description\n";
                            throw service_op_cancel();
                        }
                        waits_for_d = std::move(dname);
                    }
                },
                nullptr /* service arg */, resolve_var);
    }
    catch (const service_op_cancel &cexc) {
        return 1;
    }
    catch (std::system_error &err) {
        cerr << "dinitctl: " << input_stack.current_file_name() << ": " << strerror(errno) << "\n";
        return 1;
    }

    // If the from service has no waits-for.d specified, we can't continue
    if (waits_for_d.empty()) {
        cerr << "dinitctl: service '" << from << "' has no waits-for.d directory specified" << "\n";
        return 1;
    }

    // The waits-for.d path is relative to the service file path, combine:
    // XXX should use parent dir fd
    string waits_for_d_full = combine_paths(parent_path(service_file_path), waits_for_d.c_str());

    // check if dependency already exists
    string dep_link_path = combine_paths(waits_for_d_full, to);
    struct stat stat_buf;
    if (lstat(dep_link_path.c_str(), &stat_buf) == -1) {
        if (errno != ENOENT) {
            cerr << "dinitctl: checking for existing dependency link: " << dep_link_path << ": "
                    << strerror(errno) << "\n";
            return 1;
        }
    }
    else {
        // dependency already exists
        if (enable) {
            cerr << "dinitctl: service already enabled.\n";
            return 1;
        }
    }

    if (socknum >= 0) {
        // warn if 'from' service is not started
        if (enable && from_state != service_state_t::STARTED) {
            cerr << "dinitctl: warning: enabling dependency for non-started service\n";
        }

        // add/remove dependency
        constexpr int enable_pktsize = 2 + sizeof(handle_t) * 2;
        char cmdbuf[enable_pktsize] = { char(enable ? cp_cmd::ENABLESERVICE : cp_cmd::REM_DEP),
                char(dependency_type::WAITS_FOR)};
        memcpy(cmdbuf + 2, &from_handle, sizeof(from_handle));
        memcpy(cmdbuf + 2 + sizeof(from_handle), &to_handle, sizeof(to_handle));
        write_all_x(socknum, cmdbuf, enable_pktsize);

        wait_for_reply(rbuffer, socknum);

        // check reply
        if (rbuffer[0] == (char)cp_rply::NAK) {
            if (enable) {
                cerr << "dinitctl: could not enable service: possible circular dependency\n";
            }
            else {
                cerr << "dinitctl: service not currently enabled\n";
            }
            return 1;
        }
        if (rbuffer[0] != (char)cp_rply::ACK) {
            cerr << "dinitctl: control socket protocol error\n";
            return 1;
        }
        rbuffer.consume(1);
    }

    // create link
    if (enable) {
        // Guess a relative path to use as the symlink target. Note that if either the waits-for.d directory
        // path, or the "to" service description file path, contains symbolic links or path segments with
        // ".." or ".", this may not produce the "correct" result. We do a "reasonable effort". If the
        // result isn't correct, the only consequence is that the link may be broken or point to the wrong
        // file; Dinit itself won't be affected by this.
        string symlink_target;
        auto spos = waits_for_d_full.rfind('/');
        if (spos != std::string::npos) {
            if (strncmp(waits_for_d_full.c_str(), to_service_file_path.c_str(), spos) == 0) {
                symlink_target = "../";
                symlink_target.append(to_service_file_path, spos + 1, std::string::npos);
            }
        }
        if (symlink_target.empty()) {
            // not yet determined: try full path or just "../(to)"
            if (to_service_file_path[0] == '/') {
                symlink_target = to_service_file_path;
            }
            else {
                symlink_target = "../";
                symlink_target.append(to);
            }
        }

        if (symlink(symlink_target.c_str(), dep_link_path.c_str()) == -1) {
            cerr << "dinitctl: could not create symlink at " << dep_link_path << ": " << strerror(errno);
            if (socknum >= 0) {
                cerr << "\n" "dinitctl: note: service was enabled for now; persistent enable failed.";
            }
            cerr << "\n";
            return 1;
        }
    }
    else {
        if (unlink(dep_link_path.c_str()) == -1) {
            cerr << "dinitctl: could not unlink dependency entry " << dep_link_path << ": "
                    << strerror(errno);
            if (socknum >= 0) {
                cerr << "\n" "dinitctl: note: service was disabled for now; persistent disable failed.";
            }
            cerr << "\n";
            return 1;
        }
    }

    if (socknum >= 0) {
        if (verbose) {
            cout << "Service '" << to << "' has been " << (enable ? "enabled" : "disabled") << ".\n";
        }

        char cmd_pkt = (char)(proto_version < 5 ? cp_cmd::SERVICESTATUS : cp_cmd::SERVICESTATUS5);

        // Check status of the service now
        auto m = membuf()
                .append(cmd_pkt)
                .append(to_handle);
        write_all_x(socknum, m);

        int statussize = proto_version < 5 ? STATUS_BUFFER_SIZE : STATUS_BUFFER5_SIZE;

        // For an enable, we want to wait until the service has started so we can report any
        // failure. But, if the service is already started, we won't get any service events, so we
        // have to request status via SERVICESTATUS to catch that case. However, we may get
        // a service event before the reply to SERVICESTATUS and in that case should use it to
        // report status.
        if (enable) {
            int r = rbuffer.fill_to(socknum, 2);
            while (r > 0 && rbuffer[0] >= 100) {
                unsigned pktlen = (unsigned char) rbuffer[1];
                fill_buffer_to(rbuffer, socknum, pktlen);

                if (value(rbuffer[0]).is_in((char)cp_info::SERVICEEVENT, (char)cp_info::SERVICEEVENT5)) {
                    int ret = process_service_event(rbuffer, pktlen, to_handle, to,
                            false /* start */, verbose);
                    if (ret >= 0) {
                        // Consume the outstanding reply packet before returning.
                        wait_for_reply(rbuffer, socknum);
                        if (rbuffer[0] != (char)cp_rply::SERVICESTATUS) {
                            cerr << "dinitctl: protocol error.\n";
                            return 1;
                        }
                        // +2 is 1 byte packet type, 1 byte reserved
                        fill_buffer_to(rbuffer, socknum, statussize + 2);
                        rbuffer.consume(statussize + 2);
                        return ret;
                    }
                }
                else {
                    rbuffer.consume(pktlen);
                }

                r = rbuffer.fill_to(socknum, 2);
            }
            if (r == -1) {
                throw cp_read_exception(errno);
            }
            if (r == 0) {
                cerr << "dinitctl: protocol error.\n";
                return 1;
            }
        }
        else {
            wait_for_reply(rbuffer, socknum);
        }

        if (rbuffer[0] != (char)cp_rply::SERVICESTATUS) {
            cerr << "dinitctl: protocol error.\n";
            return 1;
        }
        rbuffer.consume(1);

        fill_buffer_to(rbuffer, socknum, statussize + 1 /* reserved */);
        rbuffer.consume(1);
        service_state_t current = static_cast<service_state_t>(rbuffer[0]);
        service_state_t target = static_cast<service_state_t>(rbuffer[1]);
        rbuffer.consume(statussize);

        if (enable) {
            if (current != service_state_t::STARTED) {
                wait_service_state(socknum, rbuffer, to_handle, to, false /* start */, verbose);
            }
        }
        else {
            if (target != service_state_t::STOPPED) {
                std::cerr << "dinitctl: note: disabled service may have other dependents\n";
            }
        }
    }
    else {
        if (verbose) {
            cout << "Service '" << to << "' has been " << (enable ? "enabled" : "disabled") << ".\n";
        }
    }

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x348, %rsp            # imm = 0x348
movq %r9, %r15
movq %r8, %rbp
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r12
movl %edi, %r13d
movb $0x2, 0xf(%rsp)
xorl %eax, %eax
movq %rax, 0x210(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x200(%rsp)
leaq 0x1e8(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x288(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x2b8(%rsp)
movq %rax, 0x2c0(%rsp)
movq %rax, 0x2c6(%rsp)
movl %ecx, 0x54(%rsp)
movq %r8, %rdi
movl $0x40, %esi
callq 0x4120
testq %rax, %rax
je 0x63ae
movl $0x1, %ebp
movq 0x16ccd(%rip), %rdi     # 0x1cfe8
leaq 0x106ca(%rip), %rsi     # 0x169ec
movl $0x4c, %edx
callq 0x4330
leaq 0x54(%rsp), %rdi
callq 0x102b0
leaq 0x2b8(%rsp), %rdi
callq 0x14276
movq 0x278(%rsp), %rdi
leaq 0x288(%rsp), %rax
cmpq %rax, %rdi
je 0x6368
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x638d
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x200(%rsp), %rdi
callq 0xfc1e
movl %ebp, %eax
addq $0x348, %rsp            # imm = 0x348
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbp, 0xe0(%rsp)
movq %r15, 0x60(%rsp)
testl %r13d, %r13d
js 0x64ff
leaq 0x1cc(%rsp), %rcx
leaq 0xf(%rsp), %r8
movl $0x1, %ebp
movl %r13d, %edi
movq %r12, %rsi
movq 0xe0(%rsp), %rdx
movl $0x1, %r9d
callq 0xd2a8
testb %al, %al
je 0x632c
leaq 0x190(%rsp), %rcx
movl $0x1, %ebp
movl %r13d, %edi
movq %r12, %rsi
movq 0x60(%rsp), %rdx
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0xd2a8
testb %al, %al
je 0x632c
leaq 0x220(%rsp), %rdi
movl %r13d, %esi
movq %r12, %rdx
callq 0xf707
movq 0x210(%rsp), %rax
leaq 0x220(%rsp), %rbx
movaps (%rbx), %xmm0
movq 0x10(%rbx), %rcx
movq %rcx, 0x210(%rsp)
movaps 0x200(%rsp), %xmm1
movaps %xmm0, 0x200(%rsp)
leaq 0xf0(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rbx)
movq $0x0, 0x10(%rbx)
callq 0xfc1e
movq %rbx, %rdi
callq 0xfc1e
movl 0x190(%rsp), %ecx
leaq 0xf0(%rsp), %rdi
movl %r13d, %esi
movq %r12, %rdx
callq 0xdf13
movq 0xf8(%rsp), %rsi
testq %rsi, %rsi
je 0x90ed
movq 0xf0(%rsp), %rax
cmpb $0x2f, -0x1(%rax,%rsi)
je 0x64e5
leaq 0xf0(%rsp), %rdi
movl $0x1, %ecx
xorl %edx, %edx
movl $0x2f, %r8d
callq 0x4510
xorl %r8d, %r8d
movq 0x60(%rsp), %rax
movzbl (%rax,%r8), %eax
testb $-0x41, %al
je 0x65dd
incq %r8
jmp 0x64e8
movq %r12, %rbp
cmpq %rbx, %r14
je 0x6536
leaq 0x200(%rsp), %r15
leaq 0xf0(%rsp), %r12
movq (%r14), %rax
movq %rax, 0xf0(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xffda
addq $0x10, %r14
cmpq %rbx, %r14
jne 0x6517
leaq 0x200(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
movq 0xe0(%rsp), %rdi
callq 0xe292
movq %rax, %r14
movl %r14d, %ebx
shrq $0x20, %r14
cmpl $-0x1, %ebx
je 0x66fd
movq %rbp, %r12
movl 0x54(%rsp), %edi
cmpl $-0x1, %edi
je 0x6577
callq 0x4560
movl %ebx, 0x54(%rsp)
leaq 0x2b8(%rsp), %rdi
movl %r14d, %esi
callq 0x12e6a
leaq 0x200(%rsp), %rsi
leaq 0x278(%rsp), %rdx
movq 0x60(%rsp), %rdi
callq 0xe292
movq %rax, %rbx
movl %ebx, %edi
shrq $0x20, %rbx
cmpl $-0x1, %edi
setne %al
cmpq $0x2, %rbx
setne %cl
orb %al, %cl
je 0x674e
cmpl $-0x1, %edi
je 0x6982
callq 0x4560
movl %ebx, %edi
callq 0x4560
jmp 0x6982
leaq 0xf0(%rsp), %rdi
movq 0x8(%rdi), %rsi
xorl %edx, %edx
movq 0x60(%rsp), %rcx
callq 0x4320
leaq 0x278(%rsp), %rdi
leaq 0xf0(%rsp), %rbx
movq %rbx, %rsi
callq 0x4390
movq (%rbx), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x662d
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movl 0x1cc(%rsp), %ecx
leaq 0xf0(%rsp), %rdi
movl %r13d, %esi
movq %r12, %rdx
callq 0xdf13
cmpq $0x0, 0xf8(%rsp)
je 0x9108
movq 0xf0(%rsp), %rdi
movq 0xe0(%rsp), %rsi
movl $0xffffff9c, %edx       # imm = 0xFFFFFF9C
callq 0xfc7c
movq %rax, %rbx
movq %rax, %r14
shrq $0x20, %r14
cmpl $-0x1, %ebx
je 0x6810
movl 0x54(%rsp), %edi
cmpl $-0x1, %edi
je 0x6691
callq 0x4560
movl %ebx, 0x54(%rsp)
leaq 0x2b8(%rsp), %rdi
movl %r14d, %esi
callq 0x12e6a
leaq 0x1d8(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x41d0
movq 0x1d8(%rsp), %rax
movq 0x1e0(%rsp), %rcx
cmpb $0x2f, -0x1(%rax,%rcx)
je 0x66e3
leaq 0x1d8(%rsp), %rdi
movl $0x2f, %esi
callq 0x42a0
leaq 0x1d8(%rsp), %rdi
movq 0xe0(%rsp), %rsi
callq 0x4540
jmp 0x6954
cmpl $0x2, %r14d
jne 0x6796
movq 0x168da(%rip), %rbx     # 0x1cfe8
leaq 0x103b4(%rip), %rsi     # 0x16ac9
movl $0x35, %edx
movq %rbx, %rdi
callq 0x4330
movq 0xe0(%rsp), %r14
testq %r14, %r14
je 0x68c3
movq %r14, %rdi
callq 0x4150
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x68e1
movq 0x16893(%rip), %rbx     # 0x1cfe8
leaq 0x103a6(%rip), %rsi     # 0x16b02
movl $0x3c, %edx
movq %rbx, %rdi
callq 0x4330
movq 0x60(%rsp), %r14
testq %r14, %r14
je 0x688a
movq %r14, %rdi
callq 0x4150
movq 0x16862(%rip), %rdi     # 0x1cfe8
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x68a1
movq 0x1684b(%rip), %rdi     # 0x1cfe8
leaq 0x102ed(%rip), %rsi     # 0x16a91
movl $0x33, %edx
callq 0x4330
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
movq 0x16823(%rip), %rdi     # 0x1cfe8
callq 0x4330
movq %rax, %rbx
leaq 0x102f1(%rip), %rsi     # 0x16ac5
movl $0x3, %edx
movq %rax, %rdi
callq 0x4330
movl %r14d, %edi
callq 0x40f0
testq %rax, %rax
je 0x68ef
movq %rax, %r14
movq %rax, %rdi
callq 0x4150
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x6908
movq 0x167d1(%rip), %rdi     # 0x1cfe8
leaq 0x10273(%rip), %rsi     # 0x16a91
movl $0x33, %edx
callq 0x4330
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
movq 0x167a9(%rip), %rdi     # 0x1cfe8
callq 0x4330
movq %rax, %r15
leaq 0x10277(%rip), %rsi     # 0x16ac5
movl $0x3, %edx
movq %rax, %rdi
callq 0x4330
movl %r14d, %edi
callq 0x40f0
testq %rax, %rax
je 0x6926
movq %rax, %r14
movq %rax, %rdi
callq 0x4150
movq %r15, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x6940
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x44c0
movl $0x1, %ebp
movq 0x1673b(%rip), %rdi     # 0x1cfe8
leaq 0x1024b(%rip), %rsi     # 0x16aff
movl $0x2, %edx
callq 0x4330
jmp 0x632c
movq 0x1671e(%rip), %rbx     # 0x1cfe8
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x44c0
movl $0x2, %edx
leaq 0x10212(%rip), %rsi     # 0x16aff
jmp 0x6914
movq (%rbx), %rax
movq -0x18(%rax), %rax
movq %rbx, %rdi
addq %rax, %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x44c0
movl $0x1, %edx
leaq 0x101ec(%rip), %rsi     # 0x16b00
movl $0x1, %ebp
movq %rbx, %rdi
callq 0x4330
jmp 0x632c
movq (%r15), %rax
movq -0x18(%rax), %rax
movq %r15, %rdi
addq %rax, %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x44c0
leaq 0x101b9(%rip), %rsi     # 0x16b00
movl $0x1, %edx
movq %r15, %rdi
callq 0x4330
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x6979
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
cmpl $-0x1, %ebx
je 0x632c
leaq 0x2a8(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movl $0xffffffff, 0x1c8(%rsp) # imm = 0xFFFFFFFF
xorps %xmm0, %xmm0
leaq 0x220(%rsp), %rdi
movaps %xmm0, 0x40(%rdi)
movaps %xmm0, 0x30(%rdi)
movaps %xmm0, 0x20(%rdi)
movaps %xmm0, 0x10(%rdi)
movaps %xmm0, (%rdi)
xorl %esi, %esi
callq 0x10e70
leaq 0x308(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x2f8(%rsp), %rdi
callq 0x11358
movq 0xe0(%rsp), %rbx
movl 0x54(%rsp), %ecx
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
leaq 0x220(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
leaq 0x2b8(%rsp), %rdx
callq 0x10026
movq 0x2f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x6a43
movq 0x308(%rsp), %rsi
incq %rsi
callq 0x42f0
movq %r12, 0xd8(%rsp)
movl %r13d, 0x4(%rsp)
leaq 0x2d0(%rsp), %rdi
leaq 0x197(%rsp), %rdx
movq %rbx, %rsi
callq 0xebda
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x100(%rsp), %rbp
leaq 0x40(%rsp), %r12
leaq 0x220(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x113ee
testb %al, %al
je 0x7ab8
movq 0x250(%rsp), %rcx
cmpq 0x258(%rsp), %rcx
jne 0x6acf
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rcx
movl $0x200, %eax            # imm = 0x200
addq %rax, %rcx
movq 0xc0(%rsp), %rax
testq %rax, %rax
je 0x6a8c
movl -0x8(%rcx), %r15d
movq 0xb8(%rsp), %rbx
cmpb $0x5c, -0x1(%rbx,%rax)
jne 0x6d45
leaq (%rbx,%rax), %rcx
decq %rcx
cmpq %rbx, %rcx
je 0x6b27
movl %ebx, %edx
notl %edx
leal (%rcx,%rdx), %esi
movb $0x1, %dl
movq %rcx, %rdi
cmpb $0x5c, -0x1(%rdi)
jne 0x6b1e
decq %rdi
xorb $0x1, %dl
cmpq %rbx, %rdi
jne 0x6b0b
movl %esi, %edx
testb $0x1, %dl
je 0x6c0b
movq %rbp, 0xf0(%rsp)
movq $0x0, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
movb $0xa, (%rcx)
leaq 0x220(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x1146a
testb %al, %al
je 0x88d6
movq 0xf8(%rsp), %r14
testq %r14, %r14
je 0x86e2
movq 0xf0(%rsp), %rbx
leaq (%rbx,%r14), %r12
movzbl (%rbx), %r13d
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%r13,2)
je 0x6ba8
incq %rbx
decq %r14
jne 0x6b80
movq %r12, %rbx
movq 0xf0(%rsp), %rsi
cmpq %rsi, %rbx
je 0x86e2
movq 0xf8(%rsp), %rdx
leaq 0xb8(%rsp), %rdi
callq 0x40e0
movq 0xf0(%rsp), %rdi
cmpq %rbp, %rdi
je 0x6beb
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0xb8(%rsp), %rbx
movq 0xc0(%rsp), %rax
leaq (%rbx,%rax), %rcx
decq %rcx
cmpb $0x5c, (%rcx)
je 0x6afa
movq %rbx, 0x58(%rsp)
leaq (%rbx,%rax), %rbp
testq %rax, %rax
jne 0x6d50
movq %rbx, 0x58(%rsp)
cmpq %rbp, %rbx
je 0x7a71
movzbl (%rbx), %eax
cmpl $0x23, %eax
je 0x7a71
cmpl $0x40, %eax
jne 0x6d8f
incq %rbx
movq %rbx, 0x58(%rsp)
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movq %rax, %r14
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq $0x0, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
movq 0x58(%rsp), %rax
cmpq %rbp, %rax
leaq 0x80(%rsp), %rbx
je 0x6e78
movzbl (%rax), %ecx
leal -0x2d(%rcx), %edx
cmpb $0x2, %dl
jb 0x6e78
movq 0x30(%r14), %rdx
testb $0x8, 0x1(%rdx,%rcx,2)
jne 0x6e78
movzbl (%rax), %eax
movl %eax, %ecx
addl $-0x2d, %ecx
cmpl $0x32, %ecx
ja 0x6ccd
movabsq $0x4000000000003, %rdx  # imm = 0x4000000000003
btq %rcx, %rdx
jb 0x6cdd
movq 0x30(%r14), %rcx
movzwl (%rcx,%rax,2), %ecx
testl $0x2006, %ecx           # imm = 0x2006
jne 0x6cff
movsbl %al, %esi
leaq 0xf0(%rsp), %rdi
callq 0x42a0
movq 0x58(%rsp), %rax
incq %rax
movq %rax, 0x58(%rsp)
cmpq %rbp, %rax
jne 0x6cb0
movq 0xf0(%rsp), %rax
leaq 0x90(%rsp), %rdx
movq %rdx, 0x80(%rsp)
leaq 0x100(%rsp), %rcx
cmpq %rcx, %rax
je 0x7a83
movq %rax, 0x80(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x90(%rsp)
jmp 0x7a89
addq %rbx, %rax
movq %rbx, 0x58(%rsp)
movq %rax, %rbp
movzbl (%rbx), %r14d
xorl %r12d, %r12d
cmpq $0xa, %r14
sete %r13b
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movb %r13b, %r12b
addl %r12d, %r15d
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%r14,2)
je 0x6c1d
incq %rbx
cmpq %rbp, %rbx
jne 0x6d50
jmp 0x7a71
callq 0x43d0
leaq 0x40(%rsp), %r12
movq %rax, %rdi
callq 0x4140
movq %rax, %r14
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq $0x0, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
movq 0x58(%rsp), %rbx
cmpq %rbp, %rbx
je 0x7579
movzbl (%rbx), %eax
leal -0x2d(%rax), %ecx
cmpb $0x2, %cl
jb 0x7579
movq 0x30(%r14), %rcx
testb $0x8, 0x1(%rcx,%rax,2)
jne 0x7579
movzbl (%rbx), %eax
movl %eax, %ecx
addl $-0x2d, %ecx
cmpl $0x32, %ecx
ja 0x6e11
movabsq $0x4000000000003, %rdx  # imm = 0x4000000000003
btq %rcx, %rdx
jb 0x6e21
movq 0x30(%r14), %rcx
movzwl (%rcx,%rax,2), %ecx
testl $0x2006, %ecx           # imm = 0x2006
jne 0x6e43
movsbl %al, %esi
leaq 0xf0(%rsp), %rdi
callq 0x42a0
movq 0x58(%rsp), %rbx
incq %rbx
movq %rbx, 0x58(%rsp)
cmpq %rbp, %rbx
jne 0x6df4
movq 0xf0(%rsp), %rax
movq %r12, 0x30(%rsp)
leaq 0x100(%rsp), %rcx
cmpq %rcx, %rax
je 0x7a9e
movq %rax, 0x30(%rsp)
movq 0x100(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x7aa6
leaq 0x90(%rsp), %rax
movq %rax, 0x80(%rsp)
movq $0x0, 0x88(%rsp)
movb $0x0, 0x90(%rsp)
movq %rbx, %rdi
leaq 0x10024(%rip), %rsi     # 0x16eca
callq 0x40b0
movl %eax, %r14d
testl %eax, %eax
je 0x6ec9
movq %rbx, %rdi
leaq 0x1001a(%rip), %rsi     # 0x16ed6
callq 0x40b0
testl %eax, %eax
jne 0x8f5c
movl %r14d, 0x1fc(%rsp)
movq 0x250(%rsp), %rcx
cmpq 0x258(%rsp), %rcx
jne 0x6ef7
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rcx
movl $0x200, %eax            # imm = 0x200
addq %rax, %rcx
addq $-0x28, %rcx
movl %r15d, 0x338(%rsp)
movq %rcx, 0x340(%rsp)
leaq 0x1a8(%rsp), %rax
movq %rax, 0x198(%rsp)
xorl %edx, %edx
movq %rdx, 0x1a0(%rsp)
movb $0x0, 0x1a8(%rsp)
leaq 0xa0(%rsp), %r13
movq %r13, 0xa8(%rsp)
movq %r13, 0xa0(%rsp)
movq %rdx, 0xb0(%rsp)
leaq 0x198(%rsp), %rdi
xorl %esi, %esi
movl %r15d, %edx
leaq 0x58(%rsp), %r8
movq %rbp, %r9
pushq $0x20
pushq %r13
callq 0x11919
addq $0x10, %rsp
cmpq $0x1, 0xb0(%rsp)
leaq 0x68(%rsp), %rbp
leaq 0xf0(%rsp), %r15
jne 0x8e6b
movq %rbp, 0x70(%rsp)
movq %rbp, 0x68(%rsp)
movq $0x0, 0x78(%rsp)
movq 0x1a0(%rsp), %rbx
movl $0x18, %edi
callq 0x42e0
movl $0x0, 0x10(%rax)
movl %ebx, 0x14(%rax)
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4060
incq 0x78(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x188(%rsp)
leaq 0x198(%rsp), %rdi
movl $0x24, %esi
xorl %edx, %edx
callq 0x43b0
cmpq $-0x1, %rax
je 0x7851
movq %rax, %rbp
movq 0x1a0(%rsp), %rax
shrq $0x1f, %rax
jne 0x8ffd
movq 0x68(%rsp), %r14
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq $0x0, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
leaq 0x68(%rsp), %rax
cmpq %rax, %r14
je 0x7802
xorl %r12d, %r12d
xorl %ecx, %ecx
movq %r12, %rdx
addl %ecx, 0x10(%r14)
leaq 0x14(%r14), %r12
movl 0x14(%r14), %eax
cmpq %rax, %rbp
jae 0x7522
movq %r14, 0x1b8(%rsp)
movl %ecx, 0x8(%rsp)
movl $0x0, 0xec(%rsp)
xorl %r14d, %r14d
leaq 0x198(%rsp), %rsi
movl %edx, %edx
movq %rbp, %rcx
subq %rdx, %rcx
movq %r15, %rdi
callq 0x43f0
movq 0x198(%rsp), %rax
movb 0x1(%rax,%rbp), %bl
cmpb $0x24, %bl
jne 0x70c8
movq %r15, %rdi
movl $0x24, %esi
callq 0x42a0
addl $0x2, %ebp
decl 0x8(%rsp)
movl %ebp, %r12d
leaq 0x198(%rsp), %rbx
jmp 0x74ac
leaq 0x1(%rbp), %rcx
movl (%r12), %r12d
addq %rax, %r12
leaq 0x2(%rbp), %rdx
cmpb $0x2f, %bl
cmovneq %rcx, %rdx
leaq (%rax,%rdx), %rcx
movb (%rax,%rdx), %r13b
xorl %eax, %eax
cmpb $0x7b, %r13b
sete %al
addq %rcx, %rax
movq %rax, 0x1c0(%rsp)
movb $0x0, 0x3(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x1c0(%rsp), %rsi
movq %r12, %rdx
movl $0x1, %ecx
leaq 0x3(%rsp), %r8
callq 0x115ae
cmpq $0x0, 0x38(%rsp)
je 0x87a2
cmpb $0x1, 0x3(%rsp)
jne 0x714a
leaq 0x30(%rsp), %rdi
leaq 0xed8b(%rip), %rsi      # 0x15ec8
callq 0x40b0
testl %eax, %eax
jne 0x8a09
movq 0x1c0(%rsp), %r14
cmpb $0x7b, %r13b
jne 0x71e2
movb (%r14), %al
movq %r14, %rsi
cmpb $0x3a, %al
jne 0x7188
leaq 0x1(%r14), %rax
movq %rax, %rsi
movq %rax, 0x1c0(%rsp)
movzbl 0x1(%r14), %eax
cmpl $0x2b, %eax
je 0x7188
cmpl $0x2d, %eax
jne 0x8d42
cmpb $0x2d, %al
je 0x7196
movzbl %al, %ecx
xorl %edx, %edx
cmpl $0x2b, %ecx
jne 0x71f4
leaq 0x1(%rsi), %r13
movq %r13, 0x1c0(%rsp)
movq %r13, %rcx
movq %r13, %r14
cmpq %r12, %r13
je 0x71ff
cmpb $0x7d, (%r13)
movq %r13, %rcx
movq %r13, %r14
je 0x71ff
movq %rsi, %r14
leaq 0x2(%rsi), %rdx
incq %r14
movq %rdx, %rcx
movq %rdx, 0x1c0(%rsp)
cmpq %r12, %rdx
je 0x71fc
leaq 0x1(%rcx), %rdx
incq %r14
cmpb $0x7d, (%rcx)
jne 0x71c4
jmp 0x71ff
movq 0xf8(%rsp), %rax
movq %rax, 0x1d0(%rsp)
jmp 0x723c
movq %r14, %r13
movq %rsi, %r12
jmp 0x7207
movq %r12, %r14
movsbl %al, %edx
movb (%rcx), %al
movq %rcx, %r12
cmpb $0x7d, %al
jne 0x8a6f
incq %r12
movq %r12, 0x1c0(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x1d0(%rsp)
cmpl $0x2b, %edx
je 0x724a
cmpl $0x2d, %edx
jne 0x7239
subq %r13, %r14
jmp 0x7250
movq %r12, %r14
cmpb $0x1, 0x3(%rsp)
je 0x897c
movq %r14, %r12
xorl %r14d, %r14d
xorl %r13d, %r13d
subl 0x198(%rsp), %r12d
subl %r12d, %ebp
addl %ebp, 0x8(%rsp)
cmpb $0x2f, %bl
movq %r12, 0x2f0(%rsp)
jne 0x72a6
leaq (%r14,%r13), %rbp
movq %r13, %r12
testq %r14, %r14
je 0x72dd
xorl %r12d, %r12d
movzbl (%r13,%r12), %ebx
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%rbx,2)
jne 0x72da
incq %r12
cmpq %r12, %r14
jne 0x727b
jmp 0x742d
movb $0x1, %al
movl %eax, 0xec(%rsp)
testq %r14, %r14
je 0x72d2
movq %r15, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x4070
leaq 0x198(%rsp), %rbx
xorl %r14d, %r14d
jmp 0x7461
xorl %r14d, %r14d
jmp 0x7459
addq %r13, %r12
cmpq %rbp, %r12
je 0x742d
movl 0x8(%rsp), %r14d
movq %r12, %rdx
subq %r13, %rdx
je 0x72fe
movq %r15, %rdi
movq %r13, %rsi
callq 0x4070
movq 0x1b8(%rsp), %rcx
movl 0x10(%rcx), %eax
movq 0xf8(%rsp), %r13
cmpq %rax, %r13
setne %al
orb 0xec(%rsp), %al
testb $0x1, %al
je 0x73b7
movl 0x14(%rcx), %ebx
movl %r13d, 0x14(%rcx)
movq %r15, %rdi
movl $0x20, %esi
callq 0x42a0
movl %r14d, 0x8(%rsp)
incq %r13
cmpq $0x7fffffff, %r13       # imm = 0x7FFFFFFF
ja 0x867c
movq 0x1b8(%rsp), %rax
movq (%rax), %r14
movl 0xf8(%rsp), %r15d
movl $0x18, %edi
callq 0x42e0
shlq $0x20, %rbx
orq %r15, %rbx
movq %rbx, 0x10(%rax)
movq %rax, 0x1b8(%rsp)
movq %rax, %rdi
movq %r14, %rsi
callq 0x4060
incq 0x78(%rsp)
movl 0x8(%rsp), %r14d
subl 0x1d0(%rsp), %r14d
addl %r13d, %r14d
movq 0xf8(%rsp), %rax
movq %rax, 0x1d0(%rsp)
leaq 0xf0(%rsp), %r15
movzbl (%r12), %ebx
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%rbx,2)
je 0x73e4
incq %r12
cmpq %rbp, %r12
jne 0x73b7
movq %rbp, %r13
movq %rbp, %r12
jmp 0x73e7
movq %r12, %r13
cmpq %rbp, %r13
je 0x7417
movq %r13, %r12
movzbl (%r12), %ebx
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%rbx,2)
jne 0x7417
incq %r12
cmpq %rbp, %r12
jne 0x73ef
movq %rbp, %r12
movl $0x0, 0xec(%rsp)
cmpq %rbp, %r12
jne 0x72eb
jmp 0x7432
movl 0x8(%rsp), %r14d
movl %r14d, 0x8(%rsp)
cmpq %rbp, %r13
je 0x744d
subq %r13, %rbp
movq %r15, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0x4070
movl 0xec(%rsp), %r14d
xorb $0x1, %r14b
leaq 0x198(%rsp), %rbx
movq 0xf8(%rsp), %r12
testq $-0x80000000, %r12      # imm = 0x80000000
jne 0x8808
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x7492
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
movl 0x8(%rsp), %eax
subl 0x1d0(%rsp), %eax
addl %r12d, %eax
movl %eax, 0x8(%rsp)
movq 0x2f0(%rsp), %r12
movl %r12d, %edx
movq %rbx, %rdi
movl $0x24, %esi
callq 0x43b0
movq %rbx, %rsi
movq %rax, %rbp
movq 0x1b8(%rsp), %rax
movq %r12, %rdx
leaq 0x14(%rax), %r12
movl 0x14(%rax), %eax
cmpq %rax, %rbp
jb 0x7083
addl 0x8(%rsp), %eax
movl %eax, (%r12)
testb $0x1, %r14b
je 0x752a
movq 0x1b8(%rsp), %r14
cmpl %eax, 0x10(%r14)
movq %rdx, %r12
jne 0x753b
movq (%r14), %rbx
decq 0x78(%rsp)
movq %r14, %rdi
callq 0x44a0
movl $0x18, %esi
movq %r14, %rdi
callq 0x42f0
movq %rbx, %r14
movl 0x8(%rsp), %ecx
jmp 0x7541
addl %ecx, %eax
movl %eax, (%r12)
jmp 0x7536
movl 0x8(%rsp), %ecx
movq 0x1b8(%rsp), %r14
movq %rdx, %r12
jmp 0x755e
movl 0x8(%rsp), %ecx
jmp 0x755e
leaq 0x68(%rsp), %rax
cmpq %rax, %r14
je 0x7563
movl 0x14(%r14), %eax
cmpq %rax, %rbp
jbe 0x7563
addl %ecx, 0x10(%r14)
addl %ecx, %eax
movl %eax, 0x14(%r14)
movq (%r14), %r14
jmp 0x7541
leaq 0x68(%rsp), %rax
cmpq %rax, %r14
jne 0x7049
movl %r12d, %edx
jmp 0x7804
movq %r12, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movb $0x0, 0x40(%rsp)
xorl %eax, %eax
cmpq %rbp, %rbx
je 0x75d6
movzbl (%rbx), %r14d
xorl %r12d, %r12d
cmpq $0xa, %r14
sete %r13b
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movb %r13b, %r12b
addl %r12d, %r15d
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%r14,2)
je 0x75cc
incq %rbx
cmpq %rbp, %rbx
jne 0x7593
movq %rbp, %rbx
movq 0x38(%rsp), %rax
leaq 0x40(%rsp), %r12
movq %rbx, 0x58(%rsp)
testq %rax, %rax
je 0x8e04
movzbl (%rbx), %eax
cmpl $0x3d, %eax
je 0x7614
cmpl $0x3a, %eax
je 0x7614
cmpl $0x2b, %eax
jne 0x8e04
incq %rbx
movq %rbx, 0x58(%rsp)
cmpq %rbp, %rbx
je 0x8e04
cmpb $0x3d, (%rbx)
jne 0x8e04
incq %rbx
movq %rbx, 0x58(%rsp)
cmpq %rbp, %rbx
je 0x765f
movzbl (%rbx), %r14d
xorl %r12d, %r12d
cmpq $0xa, %r14
sete %r13b
callq 0x43d0
movq %rax, %rdi
callq 0x4140
movb %r13b, %r12b
addl %r12d, %r15d
movq 0x30(%rax), %rax
testb $0x20, 0x1(%rax,%r14,2)
je 0x765a
incq %rbx
cmpq %rbp, %rbx
jne 0x7621
movq %rbp, %rbx
leaq 0x40(%rsp), %r12
movq %rbx, 0x58(%rsp)
movq 0x250(%rsp), %r14
cmpq 0x258(%rsp), %r14
jne 0x768a
movq 0x268(%rsp), %rax
movq -0x8(%rax), %r14
movl $0x200, %eax            # imm = 0x200
addq %rax, %r14
addq $-0x28, %r14
movq %rbx, 0x10(%rsp)
leaq 0x15ca6(%rip), %r13     # 0x1d340
movq 0xc0(%r13), %rsi
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
callq 0x40b0
testl %eax, %eax
je 0x7767
movq 0xa0(%r13), %rsi
movq %rbx, %rdi
callq 0x40b0
testl %eax, %eax
je 0x7767
movq 0xb0(%r13), %rsi
movq %rbx, %rdi
callq 0x40b0
testl %eax, %eax
je 0x7767
movq 0xd0(%r13), %rsi
movq %rbx, %rdi
callq 0x40b0
testl %eax, %eax
jne 0x77ea
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
xorl %eax, %eax
movq %rax, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
leaq 0xf0(%rsp), %rdi
xorl %esi, %esi
movl %r15d, %edx
movq %r14, %rcx
leaq 0x10(%rsp), %r8
movq %rbp, %r9
pushq $0x20
pushq %rax
callq 0x11919
addq $0x10, %rsp
cmpq $0x0, 0x2a0(%rsp)
jne 0x9188
leaq 0x298(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x4390
jmp 0x77c5
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
xorl %eax, %eax
movq %rax, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
leaq 0xf0(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
movl %r15d, %edx
movq %r14, %rcx
leaq 0x10(%rsp), %r8
movq %rbp, %r9
pushq $0x20
pushq %rax
callq 0x11919
addq $0x10, %rsp
movq %rbx, %rdi
movq 0x60(%rsp), %rsi
callq 0x40b0
testl %eax, %eax
je 0x8ed8
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x77ea
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x7a71
movq 0x40(%rsp), %rsi
jmp 0x7a69
xorl %edx, %edx
movq %r15, %rdi
leaq 0x198(%rsp), %r14
movq %r14, %rsi
movq $-0x1, %rcx
movq %r15, %rbx
leaq 0x100(%rsp), %r15
callq 0x43f0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x4390
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x7851
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x68(%rsp), %rdi
leaq 0x68(%rsp), %r14
cmpq %r14, %rdi
je 0x7875
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x42f0
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x7860
movq 0xa0(%rsp), %rdi
leaq 0xa0(%rsp), %r14
cmpq %r14, %rdi
leaq 0x90(%rsp), %r13
je 0x78a7
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x42f0
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x7892
movq 0x198(%rsp), %rdi
xorl %eax, %eax
leaq 0x100(%rsp), %r15
leaq 0x1(%rax), %rcx
movzbl -0x1(%rdi,%rcx), %edx
testl %edx, %edx
je 0x78d5
cmpl $0x2f, %edx
je 0x78d0
incq %rcx
jmp 0x78bd
movq %rcx, %rax
jmp 0x78b9
leaq (%rdi,%rax), %rsi
movq $-0x1, %rbx
testq %rax, %rax
je 0x78f4
cmpq $0x1, %rax
jne 0x78fd
leaq 0xf38d(%rip), %rdi      # 0x16c7f
jmp 0x790a
leaq 0xf206(%rip), %rdi      # 0x16b01
jmp 0x790a
movq %rdi, %rbx
notq %rbx
addq %rsi, %rbx
movb $0x0, (%rdi,%rbx)
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x7930
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rax
movl $0x200, %ecx            # imm = 0x200
addq %rcx, %rax
movl -0x4(%rax), %edx
callq 0xfc7c
movq %rax, %r14
cmpq $-0x1, %rbx
je 0x794d
movq 0x198(%rsp), %rax
movb $0x2f, (%rax,%rbx)
movq %r14, %r12
shrq $0x20, %r12
cmpl $-0x1, %r14d
je 0x7a17
movw $0x0, 0x4(%r15)
movl $0x0, (%r15)
movl %r12d, 0xf0(%rsp)
movl $0x4008, %edi           # imm = 0x4008
movq 0x155f8(%rip), %rsi     # 0x1cf78
callq 0x4580
testq %rax, %rax
je 0x7995
movq $0x0, 0x4000(%rax)
movq %rax, 0xf8(%rsp)
leaq 0x328(%rsp), %r15
movq %r15, 0x318(%rsp)
movq 0x198(%rsp), %rsi
movq 0x1a0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x318(%rsp), %rbx
movq %rbx, %rdi
callq 0x11358
leaq 0x220(%rsp), %rdi
movq %rbx, %rsi
leaq 0xf0(%rsp), %rdx
movl %r14d, %ecx
callq 0x10026
movq 0x318(%rsp), %rdi
cmpq %r15, %rdi
je 0x7a08
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0xf0(%rsp), %rdi
callq 0x14276
jmp 0x7a2f
cmpl $0x0, 0x1fc(%rsp)
jne 0x907c
cmpl $0x2, %r12d
jne 0x907c
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x7a54
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x80(%rsp), %rdi
cmpq %r13, %rdi
je 0x7a71
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x40(%rsp), %r12
leaq 0x100(%rsp), %rbp
jmp 0x6a8c
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0xf8(%rsp), %rax
movq %rax, 0x88(%rsp)
jmp 0x6e9c
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0xf8(%rsp), %rax
movq %rax, 0x38(%rsp)
jmp 0x758e
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x7add
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x2e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movq 0xe0(%rsp), %r14
movzwl 0x390(%rsp), %ebp
je 0x7b0e
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x42f0
cmpq $0x0, 0x2a0(%rsp)
je 0x7b53
movups 0x1d8(%rsp), %xmm0
leaq 0xf0(%rsp), %rdi
movups %xmm0, (%rdi)
movl $0x2f, %esi
callq 0x11d78
cmpq $-0x1, %rax
je 0x7b8f
testq %rax, %rax
jne 0x7b95
movl $0x1, %eax
movq 0xf0(%rsp), %rsi
jmp 0x7c12
movq 0x1548e(%rip), %rbx     # 0x1cfe8
leaq 0xefde(%rip), %rsi      # 0x16b3f
movl $0x13, %edx
movq %rbx, %rdi
callq 0x4330
testq %r14, %r14
je 0x7bb2
movq %r14, %rdi
callq 0x4150
movq 0x15466(%rip), %rdi     # 0x1cfe8
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x7bc9
xorl %esi, %esi
xorl %eax, %eax
jmp 0x7c12
movq 0xf0(%rsp), %rsi
leal -0x1(%rax), %ecx
cmpb $0x2f, (%rsi,%rcx)
jne 0x7c03
decq %rax
jne 0x7b9d
movl $0x1, %eax
jmp 0x7c12
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x44c0
movq 0x15418(%rip), %rdi     # 0x1cfe8
leaq 0xef7c(%rip), %rsi      # 0x16b53
movl $0x28, %edx
callq 0x4330
movl $0x1, %ebp
movq 0x153fb(%rip), %rdi     # 0x1cfe8
leaq 0xef0c(%rip), %rsi      # 0x16b00
movl $0x1, %edx
callq 0x4330
jmp 0x7fdc
movq 0xf8(%rsp), %rcx
cmpq %rax, %rcx
cmovbq %rcx, %rax
movq 0x298(%rsp), %rcx
leaq 0x30(%rsp), %rdi
movq %rax, %rdx
callq 0x10080
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq 0x10(%rsp), %rdi
movq 0x60(%rsp), %rcx
callq 0x10080
movq 0x10(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x4550
cmpl $-0x1, %eax
je 0x7c7b
movb 0x380(%rsp), %al
testb %al, %al
je 0x7c89
movl $0x23, %r14d
leaq 0xef3f(%rip), %r15      # 0x16bae
movq 0x15372(%rip), %rbx     # 0x1cfe8
jmp 0x7dd1
callq 0x4040
cmpl $0x2, (%rax)
jne 0x7d67
cmpl $0x0, 0x4(%rsp)
js 0x7e08
movb 0x380(%rsp), %al
testb %al, %al
je 0x7cbe
cmpb $0x2, 0xf(%rsp)
je 0x7cbe
movq 0x1533b(%rip), %rdi     # 0x1cfe8
leaq 0xef1e(%rip), %rsi      # 0x16bd2
movl $0x3f, %edx
callq 0x4330
movb 0x380(%rsp), %al
addl %eax, %eax
orb $0xc, %al
leaq 0xb8(%rsp), %rsi
movb %al, (%rsi)
movb $0x2, 0x1(%rsi)
movl 0x1cc(%rsp), %eax
movl %eax, 0x2(%rsi)
movl 0x190(%rsp), %eax
movl %eax, 0x6(%rsi)
movl 0x4(%rsp), %ebx
movl %ebx, %edi
movl $0xa, %edx
callq 0xecc9
movq 0xd8(%rsp), %r14
movq %r14, %rdi
movl %ebx, %esi
callq 0xed47
movl 0x400(%r14), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
movzbl (%r14,%rcx), %ecx
cmpl $0x32, %ecx
je 0x7de9
cmpl $0x33, %ecx
jne 0x7f8d
leaq 0xeed2(%rip), %rax      # 0x16c12
leaq 0xef0d(%rip), %rsi      # 0x16c54
movb 0x380(%rsp), %cl
testb %cl, %cl
cmovneq %rax, %rsi
movl $0x41, %eax
movl $0x28, %edx
cmovneq %rax, %rdx
jmp 0x7f99
movq %rax, %rbx
movq 0x15277(%rip), %rdi     # 0x1cfe8
leaq 0xee04(%rip), %rsi      # 0x16b7c
movl $0x31, %edx
callq 0x4330
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x15255(%rip), %rdi     # 0x1cfe8
callq 0x4330
movq %rax, %r14
leaq 0xed24(%rip), %rsi      # 0x16ac6
movl $0x2, %edx
movq %rax, %rdi
callq 0x4330
movl (%rbx), %edi
callq 0x40f0
movq %r14, %rdi
movq %rax, %rsi
callq 0x42d0
movq %rax, %rbx
movl $0x1, %r14d
leaq 0xed2f(%rip), %r15      # 0x16b00
movl $0x1, %ebp
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x4330
jmp 0x7faa
leal 0x1(%rax), %ecx
addl $0xfffffc01, %eax       # imm = 0xFFFFFC01
cmpl $0x400, %ecx            # imm = 0x400
cmovbl %ecx, %eax
movl %eax, 0x400(%r14)
decl 0x404(%r14)
movb 0x380(%rsp), %al
testb %al, %al
je 0x7ee3
leaq 0xc8(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq $0x0, 0xc0(%rsp)
movb $0x0, 0xc8(%rsp)
leaq 0x30(%rsp), %rdi
movl $0x2f, %esi
movq $-0x1, %rdx
callq 0x4570
cmpq $-0x1, %rax
je 0x7ea9
movq %rax, %rbx
movq 0x30(%rsp), %rdi
movq 0x278(%rsp), %rsi
movq %rax, %rdx
callq 0x4170
testl %eax, %eax
jne 0x7ea9
leaq 0xee03(%rip), %rsi      # 0x16c7d
leaq 0xb8(%rsp), %rdi
callq 0x43e0
incq %rbx
leaq 0xb8(%rsp), %rdi
leaq 0x278(%rsp), %rsi
movq %rbx, %rdx
movq $-0x1, %rcx
callq 0x43f0
cmpq $0x0, 0xc0(%rsp)
jne 0x804a
movq 0x278(%rsp), %rax
cmpb $0x2f, (%rax)
jne 0x8024
leaq 0xb8(%rsp), %rdi
leaq 0x278(%rsp), %rsi
callq 0x41d0
jmp 0x804a
movq 0x10(%rsp), %rdi
callq 0x4160
cmpl $-0x1, %eax
jne 0x808a
movq 0x150eb(%rip), %rdi     # 0x1cfe8
leaq 0xedec(%rip), %rsi      # 0x16cf0
movl $0x2c, %edx
callq 0x4330
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x150c9(%rip), %rbx     # 0x1cfe8
movq %rbx, %rdi
callq 0x4330
movq %rax, %r14
leaq 0xeb95(%rip), %rsi      # 0x16ac6
movl $0x2, %edx
movq %rax, %rdi
callq 0x4330
callq 0x4040
movl (%rax), %edi
callq 0x40f0
movq %r14, %rdi
movq %rax, %rsi
callq 0x42d0
movl $0x1, %r14d
leaq 0xeb9e(%rip), %r15      # 0x16b00
cmpl $0x0, 0x4(%rsp)
js 0x7dd1
movq 0x15074(%rip), %rbx     # 0x1cfe8
leaq 0xeda2(%rip), %rsi      # 0x16d1d
movl $0x49, %edx
movq %rbx, %rdi
callq 0x4330
jmp 0x7dd1
movl $0x28, %edx
leaq 0xe790(%rip), %rsi      # 0x16729
movq 0x15048(%rip), %rdi     # 0x1cfe8
callq 0x4330
movl $0x1, %ebp
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7fc5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x7fdc
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x220(%rsp), %rdi
callq 0x11ebe
leaq 0x1c8(%rsp), %rdi
callq 0x102b0
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x632c
movq 0x2a8(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x632c
leaq 0xec52(%rip), %rsi      # 0x16c7d
leaq 0xb8(%rsp), %rdi
callq 0x43e0
leaq 0xb8(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x4540
movq 0xb8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x4050
cmpl $-0x1, %eax
je 0x8296
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x808a
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
cmpl $0x0, 0x4(%rsp)
js 0x81e6
cmpb $0x0, 0x388(%rsp)
je 0x8125
movq 0x14efe(%rip), %rdi     # 0x1cfa8
leaq 0xdfcc(%rip), %rsi      # 0x1607d
movl $0x9, %edx
callq 0x4330
movq 0x14ee6(%rip), %rdi     # 0x1cfa8
movq 0x60(%rsp), %rsi
callq 0x42d0
movq %rax, %rbx
leaq 0xec91(%rip), %rsi      # 0x16d67
movl $0xb, %edx
movq %rax, %rdi
callq 0x4330
leaq 0xec89(%rip), %rax      # 0x16d73
leaq 0xec8a(%rip), %rsi      # 0x16d7b
movb 0x380(%rsp), %cl
testb %cl, %cl
cmovneq %rax, %rsi
movzbl %cl, %eax
movl $0x8, %edx
subq %rax, %rdx
movq %rbx, %rdi
callq 0x4330
leaq 0xe08d(%rip), %rsi      # 0x161a5
movl $0x2, %edx
movq %rbx, %rdi
callq 0x4330
movl 0x190(%rsp), %ebx
movl %ebx, %eax
shll $0x8, %eax
xorl %ecx, %ecx
cmpw $0x5, %bp
setae %cl
leal (%rax,%rcx,8), %eax
addl $0x12, %eax
movl %ebx, %ecx
shrl $0x18, %ecx
leaq 0x80(%rsp), %rsi
movb %cl, 0x4(%rsi)
movl %eax, (%rsi)
movl 0x4(%rsp), %edi
callq 0xf5b1
xorl %eax, %eax
cmpw $0x5, %bp
setae %al
leal 0xa(,%rax,4), %r14d
movb 0x380(%rsp), %al
testb %al, %al
je 0x827d
movq 0xd8(%rsp), %r15
cmpl $0x1, 0x404(%r15)
ja 0x8357
movq %r15, %rdi
movl 0x4(%rsp), %esi
callq 0xef52
testl %eax, %eax
jg 0x8183
testl %eax, %eax
je 0x865a
cmpl $-0x1, %eax
movq 0xd8(%rsp), %r15
jne 0x84d0
movl $0x4, %edi
callq 0x4190
movq %rax, %rbx
callq 0x4040
movl (%rax), %eax
movl %eax, (%rbx)
leaq 0x14969(%rip), %rsi     # 0x1cb40
movq %rbx, %rdi
xorl %edx, %edx
callq 0x44d0
jmp 0x9123
xorl %ebp, %ebp
cmpb $0x0, 0x388(%rsp)
je 0x7faa
movq 0x14dab(%rip), %rdi     # 0x1cfa8
leaq 0xde79(%rip), %rsi      # 0x1607d
movl $0x9, %edx
callq 0x4330
movq 0x14d93(%rip), %rdi     # 0x1cfa8
movq 0x60(%rsp), %rsi
callq 0x42d0
movq %rax, %rbx
leaq 0xeb3e(%rip), %rsi      # 0x16d67
movl $0xb, %edx
movq %rax, %rdi
callq 0x4330
leaq 0xeb36(%rip), %rax      # 0x16d73
leaq 0xeb37(%rip), %rsi      # 0x16d7b
movb 0x380(%rsp), %cl
testb %cl, %cl
cmovneq %rax, %rsi
movzbl %cl, %eax
movl $0x8, %edx
subq %rax, %rdx
movq %rbx, %rdi
callq 0x4330
leaq 0xdf3a(%rip), %rsi      # 0x161a5
movl $0x2, %edx
movq %rbx, %rdi
callq 0x4330
jmp 0x7faa
movq 0xd8(%rsp), %r15
movq %r15, %rdi
movl 0x4(%rsp), %esi
callq 0xed47
jmp 0x84d0
movq 0x14d4b(%rip), %rdi     # 0x1cfe8
leaq 0xe9dd(%rip), %rsi      # 0x16c81
movl $0x26, %edx
callq 0x4330
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x14d29(%rip), %rdi     # 0x1cfe8
callq 0x4330
movq %rax, %rbx
leaq 0xe7f8(%rip), %rsi      # 0x16ac6
movl $0x2, %edx
movq %rax, %rdi
callq 0x4330
callq 0x4040
movl (%rax), %edi
callq 0x40f0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x42d0
cmpl $0x0, 0x4(%rsp)
js 0x8311
movq 0x14ce8(%rip), %rdi     # 0x1cfe8
leaq 0xe9a1(%rip), %rsi      # 0x16ca8
movl $0x47, %edx
callq 0x4330
movq 0x14cd0(%rip), %rdi     # 0x1cfe8
leaq 0xe7e1(%rip), %rsi      # 0x16b00
movl $0x1, %edx
callq 0x4330
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x7fa5
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x7fa5
movl 0x400(%r15), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
cmpb $0x64, (%r15,%rcx)
jl 0x84d0
movzbl 0x388(%rsp), %r13d
leal 0x1(%rax), %ecx
addl $0xfffffc01, %eax       # imm = 0xFFFFFC01
cmpl $0x400, %ecx            # imm = 0x400
cmovbl %ecx, %eax
movzbl (%r15,%rax), %ebp
cmpl %ebp, 0x404(%r15)
jae 0x83db
movq %r15, %rdi
movl 0x4(%rsp), %esi
callq 0xef52
testl %eax, %eax
jg 0x8396
cmpl $-0x1, %eax
jne 0x83cb
callq 0x4040
cmpl $0x4, (%rax)
movq 0xd8(%rsp), %r15
je 0x8396
jmp 0x91fa
testl %eax, %eax
movq 0xd8(%rsp), %r15
je 0x9212
movl 0x400(%r15), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
movb (%r15,%rcx), %cl
andb $-0x2, %cl
cmpb $0x64, %cl
jne 0x8463
leaq 0xb8(%rsp), %r12
movq %r12, %rdi
movq 0x60(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0xebda
movq %r15, %rdi
movl %ebp, %esi
movl %ebx, %edx
movq %r12, %rcx
xorl %r8d, %r8d
movl %r13d, %r9d
leaq 0x40(%rsp), %r12
callq 0xd980
movl %eax, %ebp
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x845a
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
testl %ebp, %ebp
js 0x8489
jmp 0x8723
leal (%rax,%rbp), %ecx
cmpl $0x400, %ecx            # imm = 0x400
leal -0x400(%rax,%rbp), %eax
cmovbl %ecx, %eax
movl %eax, 0x400(%r15)
subl %ebp, 0x404(%r15)
leaq 0x40(%rsp), %r12
movq 0xd8(%rsp), %r15
cmpl $0x1, 0x404(%r15)
ja 0x84b0
movq %r15, %rdi
movl 0x4(%rsp), %esi
callq 0xef52
testl %eax, %eax
jg 0x8491
jmp 0x81a1
movl 0x400(%r15), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
cmpb $0x64, (%r15,%rcx)
jge 0x8380
movl 0x400(%r15), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
cmpb $0x46, (%r15,%rcx)
jne 0x8614
leal 0x1(%rax), %ecx
addl $0xfffffc01, %eax       # imm = 0xFFFFFC01
cmpl $0x400, %ecx            # imm = 0x400
cmovbl %ecx, %eax
movl %eax, 0x400(%r15)
decl 0x404(%r15)
movl %r14d, %edx
orl $0x1, %edx
movq %r15, %rdi
movl 0x4(%rsp), %esi
callq 0xeeda
movl 0x400(%r15), %ecx
movl 0x404(%r15), %eax
leal 0x1(%rcx), %edx
movl $0xfffffc01, %esi       # imm = 0xFFFFFC01
addl %esi, %ecx
movl $0x400, %edi            # imm = 0x400
cmpl %edi, %edx
cmovbl %edx, %ecx
movl %ecx, 0x400(%r15)
decl %eax
movl %eax, 0x404(%r15)
movl $0xfffffc00, %r8d       # imm = 0xFFFFFC00
leal (%rcx,%r8), %edx
cmpl %edi, %ecx
cmovbl %ecx, %edx
movb (%r15,%rdx), %dl
leal 0x1(%rcx), %r9d
addl %ecx, %esi
cmpl %edi, %r9d
cmovbl %r9d, %esi
movb (%r15,%rsi), %sil
addl %r14d, %ecx
addl %ecx, %r8d
cmpl %edi, %ecx
cmovbl %ecx, %r8d
movl %r8d, 0x400(%r15)
subl %r14d, %eax
movl %eax, 0x404(%r15)
movb 0x380(%rsp), %al
testb %al, %al
je 0x8636
cmpb $0x2, %dl
je 0x8653
leaq 0xb8(%rsp), %rdi
leaq 0x198(%rsp), %rdx
movq 0x60(%rsp), %rsi
callq 0xebda
movzbl 0x388(%rsp), %r9d
leaq 0xb8(%rsp), %rcx
movl 0x4(%rsp), %edi
movq 0xd8(%rsp), %rsi
movl %ebx, %edx
xorl %r8d, %r8d
callq 0xd2f3
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x8653
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x8653
movl $0x1, %ebp
movq 0x149c8(%rip), %rdi     # 0x1cfe8
leaq 0xdb36(%rip), %rsi      # 0x1615d
movl $0x1a, %edx
callq 0x4330
jmp 0x7faa
testb %sil, %sil
je 0x8653
movq 0x149a6(%rip), %rdi     # 0x1cfe8
leaq 0xe73b(%rip), %rsi      # 0x16d84
movl $0x3b, %edx
callq 0x4330
xorl %ebp, %ebp
jmp 0x7faa
movl $0x1, %ebp
movq 0x14982(%rip), %rdi     # 0x1cfe8
leaq 0xdaf0(%rip), %rsi      # 0x1615d
movl $0x1a, %edx
callq 0x4330
jmp 0x7faa
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe9d4(%rip), %rsi      # 0x1706e
leaq 0xe9f0(%rip), %rdx      # 0x17091
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x886e
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x887b
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x8917
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rax
leaq 0x1f8(%rax), %rcx
addq $0x200, %rax            # imm = 0x200
jmp 0x891b
movq 0xd8(%rsp), %rbx
movq %rbx, %rdi
movl 0x4(%rsp), %esi
callq 0xed47
movl 0x400(%rbx), %eax
leal -0x400(%rax), %ecx
cmpl $0x400, %eax            # imm = 0x400
cmovbl %eax, %ecx
cmpb $0x46, (%rbx,%rcx)
jne 0x89e2
addl $0x2, %r14d
movq 0xd8(%rsp), %rbx
movq %rbx, %rdi
movl 0x4(%rsp), %esi
movl %r14d, %edx
leaq 0x40(%rsp), %r12
callq 0xeeda
movl 0x400(%rbx), %eax
leal (%rax,%r14), %ecx
cmpl $0x400, %ecx            # imm = 0x400
leal -0x400(%rax,%r14), %eax
cmovbl %ecx, %eax
movl %eax, 0x400(%rbx)
subl %r14d, 0x404(%rbx)
jmp 0x7faa
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe7e7(%rip), %rsi      # 0x16fa7
leaq 0xe807(%rip), %rdx      # 0x16fce
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8b3a
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8b47
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe848(%rip), %rsi      # 0x1706e
leaq 0xe864(%rip), %rdx      # 0x17091
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8ba2
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8baf
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x1444e(%rip), %rsi     # 0x1cd10
leaq 0x8c97(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x8ad5
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rax
leaq 0x1f8(%rax), %rcx
addq $0x200, %rax            # imm = 0x200
jmp 0x8ad9
leaq -0x8(%rax), %rcx
movl (%rcx), %ecx
movl %ecx, 0x10(%rsp)
addq $-0x28, %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
leaq 0xe532(%rip), %rsi      # 0x16e70
leaq 0xe584(%rip), %rdx      # 0x16ec9
callq 0xec34
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x114c0
xorl %ebp, %ebp
leaq 0x143a8(%rip), %rsi     # 0x1cd10
leaq 0x8bf1(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x930e
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe6ad(%rip), %rsi      # 0x17047
leaq 0xe6cc(%rip), %rdx      # 0x1706d
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8c0a
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8c17
movl $0x1, %ebp
movq 0x145fa(%rip), %rdi     # 0x1cfe8
leaq 0xd768(%rip), %rsi      # 0x1615d
movl $0x1a, %edx
leaq 0x40(%rsp), %r12
callq 0x4330
jmp 0x7faa
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe5a8(%rip), %rsi      # 0x16fcf
leaq 0xe5c9(%rip), %rdx      # 0x16ff7
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8c72
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8c7f
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe593(%rip), %rsi      # 0x17020
leaq 0xe5b2(%rip), %rdx      # 0x17046
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8cda
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8ce7
leaq -0x8(%rax), %rcx
movl (%rcx), %ecx
movl %ecx, 0x10(%rsp)
addq $-0x28, %rax
movq %rax, 0x18(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
leaq 0xe33f(%rip), %rsi      # 0x16e3b
leaq 0xe36c(%rip), %rdx      # 0x16e6f
callq 0xec34
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %r15, %rdi
callq 0x114c0
xorl %ebp, %ebp
leaq 0x141ea(%rip), %rsi     # 0x1cd10
leaq 0x8a33(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x930e
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x14182(%rip), %rsi     # 0x1cd10
leaq 0x89cb(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x1411a(%rip), %rsi     # 0x1cd10
leaq 0x8963(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x140b2(%rip), %rsi     # 0x1cd10
leaq 0x88fb(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x1404a(%rip), %rsi     # 0x1cd10
leaq 0x8893(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x13fe2(%rip), %rsi     # 0x1cd10
leaq 0x882b(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x8e04
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0xe298(%rip), %rsi      # 0x16ff8
leaq 0xe2b8(%rip), %rdx      # 0x1701f
leaq 0x10(%rsp), %rdi
callq 0xec34
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
leaq 0x30(%r15), %rax
movq %rax, 0x20(%r15)
movq 0x10(%rsp), %rcx
cmpq %r12, %rcx
jne 0x8da1
movups (%r12), %xmm0
movups %xmm0, (%rax)
jmp 0x8dae
movq %rcx, 0x20(%r15)
movq 0x20(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%r15)
movq %r12, 0x10(%rsp)
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movb %al, 0x20(%rsp)
movl $0xffffffff, 0x40(%r15) # imm = 0xFFFFFFFF
movq %r15, %rcx
addq $0x58, %rcx
movq %rcx, 0x48(%r15)
movq %rax, 0x50(%r15)
movb %al, 0x58(%r15)
movq 0x188(%rsp), %rax
movq %rax, 0x68(%r15)
leaq 0x13f1b(%rip), %rsi     # 0x1cd10
leaq 0x8764(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
movq %rax, (%rdi)
leaq 0xe0d4(%rip), %rsi      # 0x16eff
leaq 0xe0df(%rip), %rdx      # 0x16f11
callq 0xec34
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x902f
movq 0x268(%rsp), %rax
movq -0x8(%rax), %rax
leaq 0x1f8(%rax), %rcx
addq $0x200, %rax            # imm = 0x200
jmp 0x9033
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0xe093(%rip), %rsi      # 0x16f12
leaq 0x30(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x11cb3
leaq 0xe07d(%rip), %rsi      # 0x16f15
leaq 0x30(%rsp), %rdi
callq 0x4540
leaq 0x100(%rsp), %rcx
movq %rcx, 0xf0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x9123
movups (%rcx), %xmm0
leaq 0x100(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x9136
movq 0x14109(%rip), %rdi     # 0x1cfe8
leaq 0xe1ac(%rip), %rsi      # 0x17092
movl $0x32, %edx
callq 0x4330
movq 0x140f1(%rip), %rdi     # 0x1cfe8
movq 0x60(%rsp), %rsi
callq 0x42d0
movq %rax, %rbx
leaq 0xe1ba(%rip), %rsi      # 0x170c5
movl $0x21, %edx
movq %rax, %rdi
callq 0x4330
movq %rbx, %rdi
movq 0xe0(%rsp), %rsi
callq 0x42d0
leaq 0xd275(%rip), %rsi      # 0x161a4
movl $0x3, %edx
movq %rax, %rdi
callq 0x4330
movl $0x1, %edi
callq 0x4190
leaq 0x13d8b(%rip), %rsi     # 0x1ccd8
movq %rax, %rdi
xorl %edx, %edx
callq 0x44d0
jmp 0x91fa
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x8f7f
movq 0x268(%rsp), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
addq $-0x28, %rax
movl %r15d, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movl $0x70, %edi
callq 0x4190
movq %rax, %r15
leaq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
movq %rax, (%rdi)
leaq 0xdf3a(%rip), %rsi      # 0x16eee
leaq 0xdf43(%rip), %rdx      # 0x16efe
callq 0xec34
movb $0x1, %bpl
leaq 0x2d0(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
leaq 0x30(%rsp), %rcx
movq %r15, %rdi
callq 0x1182c
xorl %ebp, %ebp
leaq 0x13d27(%rip), %rsi     # 0x1cd10
leaq 0x8570(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x930e
movl $0x10, %edi
callq 0x4190
movq %rax, %r15
leaq 0xdf86(%rip), %rsi      # 0x16f97
movq %rax, %rdi
callq 0x4340
movq 0x13fa0(%rip), %rsi     # 0x1cfc0
movq 0x13f79(%rip), %rdx     # 0x1cfa0
movq %r15, %rdi
callq 0x44d0
leaq -0x8(%rax), %rcx
movl (%rcx), %edx
leaq 0x10(%rsp), %rcx
movl %edx, (%rcx)
addq $-0x28, %rax
movq %rax, 0x8(%rcx)
movb $0x1, %bpl
leaq 0x2d0(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
movq %r15, %rdi
callq 0x1182c
xorl %ebp, %ebp
leaq 0x13ca8(%rip), %rsi     # 0x1cd10
leaq 0x84f1(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
jmp 0x930e
movl $0x40, %edi
callq 0x4190
movq %rax, %r15
leaq 0xde4e(%rip), %rdx      # 0x16ede
leaq 0x30(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0x11736
movl %r12d, %edi
callq 0x40f0
leaq 0x30(%rsp), %rdi
movq %rax, %rsi
callq 0x4540
leaq 0x100(%rsp), %rcx
movq %rcx, 0xf0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x9233
movups (%rcx), %xmm0
leaq 0x100(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x9246
movl $0x1, %edi
callq 0x4190
leaq 0x13a02(%rip), %rsi     # 0x1cb00
movq %rax, %rdi
xorl %edx, %edx
callq 0x44d0
movl $0x1, %edi
callq 0x4190
leaq 0x139e7(%rip), %rsi     # 0x1cb00
movq %rax, %rdi
xorl %edx, %edx
callq 0x44d0
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
movq 0x8(%rax), %rsi
leaq 0xf0(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
leaq 0x2d0(%rsp), %rsi
leaq 0x338(%rsp), %rcx
movq %r15, %rdi
callq 0x1182c
xorl %ebp, %ebp
leaq 0x13b97(%rip), %rsi     # 0x1cd10
leaq 0x83e0(%rip), %rdx      # 0x11560
movq %r15, %rdi
callq 0x44d0
movq 0x13e59(%rip), %rdi     # 0x1cfe8
leaq 0xd9a9(%rip), %rsi      # 0x16b3f
movl $0x13, %edx
callq 0x4330
movq 0x13e41(%rip), %rdi     # 0x1cfe8
movq 0xe0(%rsp), %rsi
callq 0x42d0
movq %rax, %rbx
leaq 0xdf29(%rip), %rsi      # 0x170e7
movl $0x27, %edx
movq %rax, %rdi
callq 0x4330
leaq 0xdf3d(%rip), %rsi      # 0x1710f
movl $0x21, %edx
movq %rbx, %rdi
callq 0x4330
movl $0x1, %edi
callq 0x4190
leaq 0x13ae8(%rip), %rsi     # 0x1ccd8
movq %rax, %rdi
xorl %edx, %edx
callq 0x44d0
movq %rax, %r12
movl $0x4, %edi
callq 0x4190
movq %rax, %rdi
movl (%r12), %eax
movl %eax, (%rdi)
jmp 0x9225
movl $0x4, %edi
callq 0x4190
movq %rax, %rdi
movl $0x0, (%rax)
leaq 0x13914(%rip), %rsi     # 0x1cb40
xorl %edx, %edx
callq 0x44d0
movq %rdx, 0xf0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x100(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0xf8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq 0x2d0(%rsp), %rsi
movq 0x2d8(%rsp), %rdx
addq %rsi, %rdx
movb $0x1, %bpl
movq %r15, %rdi
callq 0x11358
movq %r15, %rax
addq $0x30, %rax
movq %rax, 0x20(%r15)
movq 0xf0(%rsp), %rcx
leaq 0x100(%rsp), %rdx
cmpq %rdx, %rcx
jne 0x92b6
leaq 0x100(%rsp), %rcx
movups (%rcx), %xmm0
movups %xmm0, (%rax)
jmp 0x92c6
movq %rcx, 0x20(%r15)
movq 0x100(%rsp), %rax
movq %rax, 0x30(%r15)
movq 0xf8(%rsp), %rax
movq %rax, 0x28(%r15)
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq $0x0, 0xf8(%rsp)
movb $0x0, 0x100(%rsp)
xorl %ebp, %ebp
leaq 0x13a01(%rip), %rsi     # 0x1cd00
leaq 0x84f0(%rip), %rdx      # 0x117f6
movq %r15, %rdi
callq 0x44d0
jmp 0x95e3
jmp 0x93ba
jmp 0x95e3
jmp 0x93ba
jmp 0x95e3
jmp 0x95e3
jmp 0x95e3
jmp 0x95e3
jmp 0x95e3
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9366
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x9382
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
jne 0x93f6
jmp 0x9669
movq %rdx, %r14
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x93f6
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x93f6
jmp 0x9691
jmp 0x9691
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x95e6
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x95e6
jmp 0x95e3
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
jmp 0x9669
jmp 0x95e3
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9433
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x944f
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
jne 0x95d6
jmp 0x9a09
movq %rdx, %r14
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x95c6
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x95c6
movq %rax, %rbx
jmp 0x9601
jmp 0x974d
movq %rdx, %r14
movq %rax, %rbx
jmp 0x94bb
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
leaq 0x68(%rsp), %rbp
jmp 0x99ea
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9500
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
jne 0x950d
jmp 0x9515
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
leaq 0x90(%rsp), %r12
jmp 0x9a50
jmp 0x9789
jmp 0x97e2
jmp 0x95ac
jmp 0x97e2
movq %rax, %rbx
cmpl $0x1, %edx
jne 0x97e5
movq %rbx, %rdi
callq 0x4130
movq 0x13a9a(%rip), %rdi     # 0x1cfe8
leaq 0xd4e4(%rip), %rsi      # 0x16a39
movl $0x57, %edx
callq 0x4330
callq 0x44b0
jmp 0x6491
jmp 0x97e2
movq %rax, %rbx
callq 0x44b0
jmp 0x97e5
movq %rdx, %r14
movq %rax, %rbx
jmp 0x9ab3
movq %rax, %rbx
movq 0x2f8(%rsp), %rdi
cmpq %r14, %rdi
je 0x9750
movq 0x308(%rsp), %rsi
jmp 0x9619
movq %rax, %rbx
jmp 0x975d
movq %rax, %rbx
leaq 0x100(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x979c
movq %rdx, %r14
movq %rax, %rbx
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
movq %r15, %rdi
callq 0x4240
jmp 0x9a09
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9601
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x9750
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x9750
movq %rdx, %r14
movq %rax, %rbx
jmp 0x9973
movq %rdx, %r14
movq %rax, %rbx
movq 0x318(%rsp), %rdi
cmpq %r15, %rdi
je 0x965c
movq 0x328(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x965c
movq %rdx, %r14
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x14276
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
leaq 0x90(%rsp), %r12
jne 0x9a40
jmp 0x9a50
jmp 0x9691
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9730
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x9730
movq %rdx, %r14
movq %rax, %rbx
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
jmp 0x99ea
movq %rdx, %r14
movq %rax, %rbx
leaq 0x90(%rsp), %r12
jmp 0x9a09
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x971b
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
jne 0x9728
jmp 0x9730
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x9a6d
movq 0x40(%rsp), %rsi
jmp 0x9a65
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0x11ebe
leaq 0x1c8(%rsp), %rdi
callq 0x102b0
movq 0x298(%rsp), %rdi
leaq 0x2a8(%rsp), %rax
cmpq %rax, %rdi
je 0x97e5
movq 0x2a8(%rsp), %rsi
jmp 0x97a9
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x97e5
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x97e5
jmp 0x97e2
jmp 0x9ba1
jmp 0x9ba1
jmp 0x97e2
jmp 0x9ba1
jmp 0x9ba1
jmp 0x97e2
jmp 0x9931
jmp 0x9950
movq %rdx, %r14
movq %rax, %rbx
jmp 0x9a6d
movq %rax, %rbx
leaq 0x54(%rsp), %rdi
callq 0x102b0
leaq 0x2b8(%rsp), %rdi
callq 0x14276
movq 0x278(%rsp), %rdi
leaq 0x288(%rsp), %rax
cmpq %rax, %rdi
je 0x9821
movq 0x288(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x9846
movq 0x1e8(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x200(%rsp), %rdi
callq 0xfc1e
movq %rbx, %rdi
callq 0x44f0
jmp 0x9ba1
jmp 0x9ba1
jmp 0x9931
jmp 0x9950
jmp 0x9931
jmp 0x9950
jmp 0x998e
jmp 0x998e
jmp 0x9931
jmp 0x9950
movq %rdx, %r14
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x98af
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
jne 0x98bc
jmp 0x990b
movq %rdx, %r14
movq %rax, %rbx
jmp 0x98fb
jmp 0x9931
jmp 0x9950
jmp 0x9931
jmp 0x9950
movq %rdx, %r14
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x98ee
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
testb %bpl, %bpl
je 0x990b
jmp 0x98fb
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
jmp 0x990b
movq %rdx, %r14
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x9a6d
movq 0x100(%rsp), %rsi
jmp 0x9a65
movq %rdx, %r14
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x9994
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x42f0
jmp 0x9994
movq %rdx, %r14
movq %rax, %rbx
movq %r15, %rdi
callq 0x4240
jmp 0x9994
jmp 0x9ba1
movq %rdx, %r14
movq %rax, %rbx
leaq 0x100(%rsp), %r15
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
leaq 0x68(%rsp), %rbp
jmp 0x99cd
jmp 0x998e
jmp 0x998e
movq %rdx, %r14
movq %rax, %rbx
leaq 0x40(%rsp), %rax
leaq 0x100(%rsp), %r15
leaq 0x90(%rsp), %r12
leaq 0xa0(%rsp), %r13
leaq 0x68(%rsp), %rbp
movq 0x30(%rsp), %rdi
cmpq %rax, %rdi
je 0x99cd
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0xf0(%rsp), %rdi
cmpq %r15, %rdi
je 0x99ea
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x68(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9a09
movq (%rdi), %r15
movl $0x18, %esi
callq 0x42f0
movq %r15, %rdi
cmpq %rbp, %r15
jne 0x99f4
movq 0xa0(%rsp), %rdi
cmpq %r13, %rdi
je 0x9a2b
movq (%rdi), %r15
movl $0x18, %esi
callq 0x42f0
movq %r15, %rdi
cmpq %r13, %r15
jne 0x9a16
movq 0x198(%rsp), %rdi
leaq 0x1a8(%rsp), %rax
cmpq %rax, %rdi
je 0x9a50
movq 0x1a8(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0x80(%rsp), %rdi
cmpq %r12, %rdi
je 0x9a6d
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x42f0
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0x9a92
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x42f0
leaq 0x2e0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9ab3
movq 0x2e0(%rsp), %rsi
incq %rsi
callq 0x42f0
cmpl $0x3, %r14d
jne 0x9ad0
movq %rbx, %rdi
callq 0x4130
movl $0x1, %ebp
callq 0x44b0
jmp 0x7fdc
cmpl $0x2, %r14d
jne 0x9750
movq %rbx, %rdi
callq 0x4130
movq 0x134ff(%rip), %rdi     # 0x1cfe8
leaq 0xd812(%rip), %rsi      # 0x17302
movl $0xa, %edx
callq 0x4330
movq 0x250(%rsp), %rax
cmpq 0x258(%rsp), %rax
jne 0x9b1d
movq 0x268(%rsp), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movq -0x28(%rax), %rsi
movq -0x20(%rax), %rdx
movq 0x134bc(%rip), %rdi     # 0x1cfe8
callq 0x4330
movq %rax, %rbx
leaq 0xcf8b(%rip), %rsi      # 0x16ac6
movl $0x2, %edx
movq %rax, %rdi
callq 0x4330
callq 0x4040
movl (%rax), %edi
callq 0x40f0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x42d0
leaq 0xcf9a(%rip), %rsi      # 0x16b00
movl $0x1, %edx
movq %rax, %rdi
callq 0x4330
movl $0x1, %ebp
callq 0x44b0
jmp 0x7fdc
jmp 0x974d
jmp 0x974d
movq %rax, %rbx
callq 0x44b0
jmp 0x9750
jmp 0x9ba1
jmp 0x9ba1
jmp 0x9ba1
jmp 0x9ba1
movq %rax, %rdi
callq 0xe590