// File: greenpau[P]mnpa/main.cpp
// Function: main
int main(int argc, char* argv[]) {

    int thc = 1;
    // define data structure for multicast source threads
    MulticastSender senders[MAX];
    // define counter to store the id of a latest multicast source thread
    int cnts = 0;
    // define data structure for multicast receiver threads
    MulticastReceiver receivers[MAX];
    // define counter to store the id of a latest receiver thread
    int cntr = 0;
    // program scheduling priority
    int thrp = 0;

    if (argc < 2) {
       help(1);
    }

    for(int i = 1; i < argc; ++i) {
        if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
            help(0);
        } else if (strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "--sender") == 0) {
            if (i+1 == argc) {
                logit(ERROR, "failed to supply a value for " + std::string(argv[i]) + " option");
                exit(1);
            }
            try {
                std::string rgx = "(\\S+)/(\\d+)/(\\d+-?\\d+?)/(\\d+)/(\\d+)/(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})/(\\d+)/(\\S+)";
                std::regex tp_rgx(rgx, std::regex_constants::ECMAScript);
                std::regex tp_rgx_range("(\\d+)-(\\d+)");
                std::string ia = argv[i+1];
                std::smatch m_rgx;
                if (std::regex_match(ia, m_rgx, tp_rgx)) {
                    char * ifname = new char [m_rgx[1].length()+1];
                    std::strcpy(ifname, std::string(m_rgx[1]).c_str());
                    senders[cnts].interface = ifname;
                    senders[cnts].count = stoi(m_rgx[2]);
                    std::smatch m_rgx_range;
                    std::string psr = m_rgx[3];
                    if (std::regex_match(psr, m_rgx_range, tp_rgx_range)) {
                        senders[cnts].low = stoi(m_rgx_range[1]);
                        senders[cnts].high = stoi(m_rgx_range[2]);
                    } else {
                        senders[cnts].low = stoi(psr);
                        senders[cnts].high = stoi(psr);
                    }
                    senders[cnts].group.sin_family = AF_INET;
                    senders[cnts].group.sin_addr.s_addr = inet_addr(m_rgx.str(6).c_str());
                    senders[cnts].group.sin_port = htons(stoi(m_rgx[7]));
                    senders[cnts].ttl = 255;
                    senders[cnts].duration = std::chrono::seconds(stoi(m_rgx[4]));
                    senders[cnts].offset = std::chrono::seconds(stoi(m_rgx[5]));
                    senders[cnts].tag = m_rgx[8];
                    if (senders[cnts].count == 0) {
                        senders[cnts].interval = std::chrono::microseconds(stoi(m_rgx[4]));
                    } else {
                        senders[cnts].interval = std::chrono::duration_cast<std::chrono::microseconds>(senders[cnts].duration) / senders[cnts].count;
                    }
                    cnts++;
                } else {
                    logit(ERROR, "failed to provide a valid multicast sender traffic pattern via " + \
                          std::string(argv[i]) + ": " + ia);
                    exit(1);
                }
            } catch (std::regex_error& e) {
                regex_error_handler(e);
                exit(1);
            }
            i++;
        } else if (strcmp(argv[i], "-g") == 0 || strcmp(argv[i], "--receiver") == 0) {
            if (i+1 == argc) {
                logit(ERROR, "failed to supply a value for " + std::string(argv[i]) + " option");
                exit(1);
            }
            try {
                std::regex tg_rgx_ip ("^([0-9.]+)/([0-9.]+)/([0-9]+)/([0-9]+)$");
                std::regex tg_rgx_host ("^([a-z0-9]+)/([0-9.]+)/([0-9]+)/([0-9]+)$");
                std::string ia = argv[i+1];
                std::smatch m_rgx_ip;
                std::smatch m_rgx_host;
                if (std::regex_match(ia, m_rgx_ip, tg_rgx_ip)) {
                    receivers[cntr].listener.sin_family = AF_INET;
                    receivers[cntr].listener.sin_port = htons(stoi(m_rgx_ip[3]));
                    receivers[cntr].listener.sin_addr.s_addr = INADDR_ANY;
                    receivers[cntr].group.imr_multiaddr.s_addr = inet_addr(m_rgx_ip.str(2).c_str());
                    receivers[cntr].group.imr_interface.s_addr = inet_addr(m_rgx_ip.str(1).c_str());
                    receivers[cntr].duration = std::chrono::seconds(stoi(m_rgx_ip[4]));
                    cntr++;
                } else if (std::regex_match(ia, m_rgx_host, tg_rgx_host)) {
                    receivers[cntr].listener.sin_family = AF_INET;
                    receivers[cntr].listener.sin_port = htons(stoi(m_rgx_host[3]));
                    receivers[cntr].listener.sin_addr.s_addr = INADDR_ANY;
                    receivers[cntr].group.imr_multiaddr.s_addr = inet_addr(m_rgx_host.str(2).c_str());
                    receivers[cntr].duration = std::chrono::seconds(stoi(m_rgx_host[4]));
                    struct ifaddrs *ifaddr, *ifa;
                    int addr_family, n;
                    if (getifaddrs(&ifaddr) == -1) {
                        logit(ERROR, "failed to call getifaddrs() function");
                        exit(1);
                    }
                    for (ifa = ifaddr, n = 0; ifa != NULL; ifa = ifa->ifa_next, n++) {
                        if (ifa->ifa_addr == NULL)
                            continue;
                        addr_family = ifa->ifa_addr->sa_family;
                        /* reserved for IPv6
                        if (addr_family == AF_INET || addr_family == AF_INET6) {
                        */
                        if (addr_family == AF_INET) {
                            logit(ERROR, ifa->ifa_name);
                            if (ifa->ifa_name == m_rgx_host.str(1)) {
                                receivers[cntr].group.imr_interface.s_addr = ((struct sockaddr_in *)(ifa->ifa_addr))->sin_addr.s_addr;
                                break;
                            }
                        }
                    }
                    freeifaddrs(ifaddr);
                    cntr++;
                } else {
                    logit(ERROR, "failed to provide a valid multicast listener traffic pattern via " + \
                          std::string(argv[i]) + ": " + ia);
                    exit(1);
                }
            } catch (std::regex_error& e) {
                regex_error_handler(e);
                exit(1);
            }
            i++;
        } else if (strcmp(argv[i], "-t") == 0 || strcmp(argv[i], "--threads") == 0) {
            if (i+1 == argc) {
                logit(ERROR, "failed to supply a value for " + std::string(argv[i]) + " option");
                exit(1);
            }
            thc = stoi(argv[i+1]);
            i++;
        } else if (strcmp(argv[i], "-p") == 0 || strcmp(argv[i], "--priority") == 0) {
            if (i+1 == argc) {
                logit(ERROR, "failed to supply a value for " + std::string(argv[i]) + " option");
                exit(1);
            }
            thrp = stoi(argv[i+1]);
            i++;
        } else if (strcmp(argv[i], "--random-payload") == 0) {
            RANDOMIZE = true;
        } else if (strcmp(argv[i], "--packet-storm") == 0) {
            PACKET_STORM = true;
        } else if (strcmp(argv[i], "--igmp-v2-report") == 0) {
            IGMP_REPORT_ONLY = true;
            USE_IGMP_V3 = false;
        } else if (strcmp(argv[i], "--igmp-v3-report") == 0) {
            IGMP_REPORT_ONLY = true;
            USE_IGMP_V3 = true;
        } else if (strcmp(argv[i], "-d") == 0 || strcmp(argv[i], "--daemonize") == 0) {
            DAEMONIZE = true;
        } else if (strcmp(argv[i], "--non-root") == 0) {
            NON_ROOT = true;
        } else if (strcmp(argv[i], "--stop") == 0) {
            REQUESTED_STOP = true;
        } else if (strcmp(argv[i], "--status") == 0) {
            REQUESTED_STATUS = true;
        } else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--verbose") == 0) {
            logit(INFO, "logging is enabled");
            VERBOSE = 1;
        } else {
            logit(ERROR, "option " + std::string(argv[i]) + " is invalid");
            exit(1);
        }
    }

    int thrn = std::thread::hardware_concurrency();
    int tptrs = cntr + cnts;

    if (VERBOSE == 2) {
        VERBOSE = 0;
    }

    if (REQUESTED_STOP == true) {
        VERBOSE = 1;
        stop();
        exit(0);
    }

    if (REQUESTED_STATUS == true) {
        logit(ERROR, "--status is not yet implemented");
        exit(1);
    }

    if (tptrs == 0) {
        logit(ERROR, "failed to provide a multicast traffic pattern");
        exit(1);
    }

    if (cnts > 0) {
        for( int i = 0; i < cnts; i++ ) {
            logit(INFO, " * sender pattern #" + std::to_string(i));
            logit(INFO, "   - interface name:  " + std::string(senders[i].interface));
            logit(INFO, "   - multicast group: " + ipv4_from_s_addr(senders[i].group.sin_addr.s_addr) + \
                        ":" + std::to_string(ntohs(senders[i].group.sin_port)));
            if (senders[i].count != 0) {
                logit(INFO, "   - packet count:    " + format_t(senders[i].count) + " / size (min/max): " + \
                        std::to_string(senders[i].low) + "/" + std::to_string(senders[i].high) + " bytes");
                if (senders[i].duration.count() > 0) {
                   logit(INFO, "   - duration:        " + format_t(senders[i].duration.count()) + " seconds");
                } else if (PACKET_STORM == true) {
                   logit(INFO, "   - duration:        until completed");
                } else {
                   logit(INFO, "   - duration:        until completed or aborted");
                }
                // if count != 0, then `duration` is used to calculate an interval together with count itself.
                // thus, the interval below is invalid.
                if (PACKET_STORM == true) {
                    logit(INFO, "   - w/out intervals, immediate");
                } else {
                    logit(INFO, "   - interval:        " + format_t(senders[i].interval.count()) + " microseconds");
                }
            } else {
                logit(INFO, "   - packet count:    unlimited, size (min/max): " + \
                        std::to_string(senders[i].low) + "/" + std::to_string(senders[i].high) + " bytes");
                // if count == 0, then `duration` becomes `interval`.
                if (PACKET_STORM == true) {
                    logit(INFO, "   - w/out intervals, immediate");
                } else {
                    logit(INFO, "   - interval:        " + format_t(senders[i].interval.count()) + " microseconds");
                }
            }
            if (senders[i].offset.count() > 0) {
                logit(INFO, "   - offset:          " + format_t(senders[i].offset.count()) + " seconds");
            } else {
                logit(INFO, "   - immediate start, no offset");
            }
            logit(INFO, "   - tag:             " + senders[i].tag);
        }
    }

    if (cntr > 0) {
        for( int i = 0; i < cntr; i++ ) {
            logit(INFO, " * receiver pattern #" + std::to_string(i));
            logit(INFO, "   - interface ip:    " + ipv4_from_s_addr(receivers[i].group.imr_interface.s_addr));
            logit(INFO, "   - multicast group: " + ipv4_from_s_addr(receivers[i].group.imr_multiaddr.s_addr) + \
                        ":" + std::to_string(ntohs(receivers[i].listener.sin_port)));
            if (receivers[i].duration.count() > 0) {
                logit(INFO, "   - duration:        " + std::to_string(receivers[i].duration.count()) + " seconds");
            } else {
                logit(INFO, "   - duration:        until aborted");
            }
        }
    }

    if (thrn < tptrs) {
        logit(WARN, "the number of system resources available, e.g. CPU, is less than the number of patterns.");
    }

    logit(INFO, "threads requested/supported: " + std::to_string(thc) + "/" + std::to_string(thrn));

    if (thrp != 0) {
        logit(INFO, "requested scheduling priority: " + std::to_string(thrp));
        int cthrp;
        errno = 0;
        cthrp = getpriority(PRIO_PROCESS, getpid());
        if (cthrp == -1 && errno) {
            logit(ERROR, "failed to get scheduling priority");
        } else {
            logit(INFO, "current scheduling priority: " + std::to_string(cthrp));
        }
        errno = 0;
        cthrp = setpriority(PRIO_PROCESS, getpid(), thrp);
        if (cthrp == -1 && errno) {
            logit(ERROR, "failed to set scheduling priority");
        }
        errno = 0;
        cthrp = getpriority(PRIO_PROCESS, getpid());
        if (cthrp == -1 && errno) {
            logit(ERROR, "failed to get scheduling priority");
        } else {
            logit(INFO, "current scheduling priority: " + std::to_string(cthrp));
        }
    } else {
        logit(INFO, "default scheduling priority: " + std::to_string(thrp));
    }

    signal(SIGQUIT, signal_handler);
    signal(SIGINT, signal_handler);
    signal(SIGTERM, signal_handler);
    signal(SIGHUP, signal_handler);
    signal(SIGPIPE, signal_handler);
    signal(SIGKILL, signal_handler);

    fill_pkt_payload();

    std::thread mgr_thr;
    if (DAEMONIZE == false) {
        mgr_thr = std::thread(mgr_thread, senders, cnts, receivers, cntr);
        mgr_thr.join();
    } else {
        if (pid_t pid = fork()) {
            if (pid > 0) {
                logit(INFO, "fork() succeeded");
                exit(0);
            } else {
                logit(ERROR, "fork() failed");
                exit(1);
            }
        }
        if (setsid() < 0) {
            logit(ERROR, "failed to the new leader of the new session");
        }
        if(chdir("/") != 0) {
            logit(ERROR, "failed to switch to / (root) directory");
        }

        umask(0);

        if (pid_t pid = fork()) {
            if (pid > 0) {
                logit(INFO, "detached from a controlling terminal");
                exit(0);
            } else {
                logit(ERROR, "failed to detach from a controlling terminal");
                exit(1);
            }
        }
        close(0);
        close(1);
        close(2);
        mgr_thr = std::thread(mgr_thread, senders, cnts, receivers, cntr);
        mgr_thr.join();
    }
    exit(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9690, %rsp           # imm = 0x9690
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
leaq -0x5fc0(%rbp), %rax
movq %rax, %rcx
addq $0x5fa0, %rcx           # imm = 0x5FA0
movq %rcx, -0x9320(%rbp)
movq %rax, -0x9318(%rbp)
movq -0x9318(%rbp), %rdi
movq %rdi, -0x9328(%rbp)
callq 0x249e0
movq -0x9328(%rbp), %rax
movq -0x9320(%rbp), %rcx
addq $0x60, %rax
cmpq %rcx, %rax
movq %rax, -0x9318(%rbp)
jne 0x1e97f
movl $0x0, -0x5fc4(%rbp)
movl $0x0, -0x7fb4(%rbp)
movl $0x0, -0x7fb8(%rbp)
cmpl $0x2, -0x8(%rbp)
jge 0x1e9f9
movl $0x1, %edi
callq 0x1a0c0
jmp 0x1e9e0
jmp 0x1e9f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x232f4
movl $0x1, -0x7fc8(%rbp)
movl -0x7fc8(%rbp), %eax
cmpl -0x8(%rbp), %eax
jge 0x20e85
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe45b6(%rip), %rsi     # 0x102fde
callq 0x16660
cmpl $0x0, %eax
je 0x1ea52
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe39a8(%rip), %rsi     # 0x1023f0
callq 0x16660
cmpl $0x0, %eax
jne 0x1ea60
xorl %edi, %edi
callq 0x1a0c0
jmp 0x1ea5b
jmp 0x20e6f
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe456b(%rip), %rsi     # 0x102fe1
callq 0x16660
cmpl $0x0, %eax
je 0x1eaa4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe454e(%rip), %rsi     # 0x102fe4
callq 0x16660
cmpl $0x0, %eax
jne 0x1f8bd
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jne 0x1ec03
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9338(%rbp)
leaq -0x8029(%rbp), %rdi
movq %rdi, -0x9330(%rbp)
callq 0x54db0
movq -0x9338(%rbp), %rsi
movq -0x9330(%rbp), %rdx
leaq -0x8028(%rbp), %rdi
callq 0x235f0
jmp 0x1eafb
leaq 0xe44eb(%rip), %rsi     # 0x102fed
leaq -0x8008(%rbp), %rdi
leaq -0x8028(%rbp), %rdx
callq 0x23c90
jmp 0x1eb17
leaq 0xe44ed(%rip), %rdx     # 0x10300b
leaq -0x7fe8(%rbp), %rdi
leaq -0x8008(%rbp), %rsi
callq 0x23940
jmp 0x1eb33
movl $0x2, %edi
leaq -0x7fe8(%rbp), %rsi
callq 0x196f0
jmp 0x1eb46
leaq -0x7fe8(%rbp), %rdi
callq 0xcf470
leaq -0x8008(%rbp), %rdi
callq 0xcf470
leaq -0x8028(%rbp), %rdi
callq 0xcf470
leaq -0x8029(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1ebf2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1ebe6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1ebda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x7fe8(%rbp), %rdi
callq 0xcf470
leaq -0x8008(%rbp), %rdi
callq 0xcf470
leaq -0x8028(%rbp), %rdi
callq 0xcf470
leaq -0x8029(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
leaq -0x8051(%rbp), %rdi
movq %rdi, -0x9340(%rbp)
callq 0x54db0
movq -0x9340(%rbp), %rdx
leaq 0xe43ef(%rip), %rsi     # 0x103013
leaq -0x8050(%rbp), %rdi
callq 0x235f0
jmp 0x1ec32
leaq -0x8051(%rbp), %rdi
callq 0x54dd0
leaq -0x8078(%rbp), %rdi
leaq -0x8050(%rbp), %rsi
movl $0x10, %edx
callq 0x24a00
jmp 0x1ec58
leaq 0xe4409(%rip), %rsi     # 0x103068
leaq -0x8098(%rbp), %rdi
movl $0x10, %edx
callq 0x238a0
jmp 0x1ec72
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x9350(%rbp)
leaq -0x80b9(%rbp), %rdi
movq %rdi, -0x9348(%rbp)
callq 0x54db0
movq -0x9350(%rbp), %rsi
movq -0x9348(%rbp), %rdx
leaq -0x80b8(%rbp), %rdi
callq 0x235f0
jmp 0x1ecb8
leaq -0x80b9(%rbp), %rdi
callq 0x54dd0
leaq -0x80e0(%rbp), %rdi
callq 0x24ab0
jmp 0x1ecd2
leaq -0x80b8(%rbp), %rdi
leaq -0x80e0(%rbp), %rsi
leaq -0x8078(%rbp), %rdx
xorl %ecx, %ecx
callq 0x24af0
movb %al, -0x9351(%rbp)
jmp 0x1ecf6
movb -0x9351(%rbp), %al
testb $0x1, %al
jne 0x1ed05
jmp 0x1f60c
leaq -0x80e0(%rbp), %rdi
movl $0x1, %esi
callq 0x24b50
movq %rax, -0x9360(%rbp)
jmp 0x1ed1f
movq -0x9360(%rbp), %rdi
callq 0x24bc0
movq %rax, %rdi
incq %rdi
callq 0x54910
movq %rax, -0x9368(%rbp)
jmp 0x1ed3f
movq -0x9368(%rbp), %rax
movq %rax, -0x80e8(%rbp)
movq -0x80e8(%rbp), %rax
movq %rax, -0x9378(%rbp)
leaq -0x80e0(%rbp), %rdi
movl $0x1, %esi
callq 0x24b50
movq %rax, -0x9370(%rbp)
jmp 0x1ed75
movq -0x9370(%rbp), %rsi
leaq -0x8108(%rbp), %rdi
callq 0x24c30
jmp 0x1ed8a
leaq -0x8108(%rbp), %rdi
movq %rdi, -0x9388(%rbp)
callq 0xd0eb0
movq -0x9378(%rbp), %rdi
movq %rax, %rsi
callq 0x16690
movq -0x9388(%rbp), %rdi
callq 0xcf470
movq -0x80e8(%rbp), %rcx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movq %rcx, -0x5fc0(%rbp,%rax)
leaq -0x80e0(%rbp), %rdi
movl $0x2, %esi
callq 0x24b50
movq %rax, -0x9380(%rbp)
jmp 0x1edf0
movq -0x9380(%rbp), %rsi
leaq -0x8128(%rbp), %rdi
callq 0x24c30
jmp 0x1ee05
xorl %eax, %eax
movl %eax, %esi
leaq -0x8128(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x938c(%rbp)
jmp 0x1ee22
movl -0x938c(%rbp), %ecx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl %ecx, -0x5fa4(%rbp,%rax)
leaq -0x8128(%rbp), %rdi
callq 0xcf470
leaq -0x8148(%rbp), %rdi
callq 0x24ab0
jmp 0x1ee58
leaq -0x80e0(%rbp), %rdi
movl $0x3, %esi
callq 0x24b50
movq %rax, -0x9398(%rbp)
jmp 0x1ee72
movq -0x9398(%rbp), %rsi
leaq -0x8168(%rbp), %rdi
callq 0x24c30
jmp 0x1ee87
leaq -0x8168(%rbp), %rdi
leaq -0x8148(%rbp), %rsi
leaq -0x8098(%rbp), %rdx
xorl %ecx, %ecx
callq 0x24af0
movb %al, -0x9399(%rbp)
jmp 0x1eeab
movb -0x9399(%rbp), %al
testb $0x1, %al
jne 0x1eeba
jmp 0x1f0e2
leaq -0x8148(%rbp), %rdi
movl $0x1, %esi
callq 0x24b50
movq %rax, -0x93a8(%rbp)
jmp 0x1eed4
movq -0x93a8(%rbp), %rsi
leaq -0x8188(%rbp), %rdi
callq 0x24c30
jmp 0x1eee9
xorl %eax, %eax
movl %eax, %esi
leaq -0x8188(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93ac(%rbp)
jmp 0x1ef06
movl -0x93ac(%rbp), %ecx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl %ecx, -0x5fa0(%rbp,%rax)
leaq -0x8188(%rbp), %rdi
callq 0xcf470
leaq -0x8148(%rbp), %rdi
movl $0x2, %esi
callq 0x24b50
movq %rax, -0x93b8(%rbp)
jmp 0x1ef48
movq -0x93b8(%rbp), %rsi
leaq -0x81a8(%rbp), %rdi
callq 0x24c30
jmp 0x1ef5d
xorl %eax, %eax
movl %eax, %esi
leaq -0x81a8(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93bc(%rbp)
jmp 0x1ef7a
movl -0x93bc(%rbp), %ecx
movslq -0x5fc4(%rbp), %rdx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x24(%rax)
leaq -0x81a8(%rbp), %rdi
callq 0xcf470
jmp 0x1f156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8051(%rbp), %rdi
callq 0x54dd0
jmp 0x1f81b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f80f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x80b9(%rbp), %rdi
callq 0x54dd0
jmp 0x1f7f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f7eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f7df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8128(%rbp), %rdi
callq 0xcf470
jmp 0x1f7df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f5fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8188(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x81a8(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
xorl %eax, %eax
movl %eax, %esi
leaq -0x8168(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93c0(%rbp)
jmp 0x1f0ff
movl -0x93c0(%rbp), %ecx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl %ecx, -0x5fa0(%rbp,%rax)
xorl %eax, %eax
movl %eax, %esi
leaq -0x8168(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93c4(%rbp)
jmp 0x1f138
movl -0x93c4(%rbp), %ecx
movslq -0x5fc4(%rbp), %rdx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x24(%rax)
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movw $0x2, -0x5fb8(%rbp,%rax)
leaq -0x81c8(%rbp), %rdi
leaq -0x80e0(%rbp), %rsi
movl $0x6, %edx
callq 0x24ca0
jmp 0x1f189
leaq -0x81c8(%rbp), %rdi
movq %rdi, -0x93d8(%rbp)
callq 0xd0eb0
movq %rax, %rdi
callq 0x168e0
movq -0x93d8(%rbp), %rdi
movl %eax, %ecx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl %ecx, -0x5fb4(%rbp,%rax)
callq 0xcf470
leaq -0x80e0(%rbp), %rdi
movl $0x7, %esi
callq 0x24b50
movq %rax, -0x93d0(%rbp)
jmp 0x1f1e2
movq -0x93d0(%rbp), %rsi
leaq -0x81e8(%rbp), %rdi
callq 0x24c30
jmp 0x1f1f7
xorl %eax, %eax
movl %eax, %esi
leaq -0x81e8(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93dc(%rbp)
jmp 0x1f214
movl -0x93dc(%rbp), %eax
movzwl %ax, %edi
callq 0x161a0
movw %ax, %cx
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movw %cx, -0x5fb6(%rbp,%rax)
leaq -0x81e8(%rbp), %rdi
callq 0xcf470
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movb $-0x1, -0x5fa8(%rbp,%rax)
leaq -0x80e0(%rbp), %rdi
movl $0x4, %esi
callq 0x24b50
movq %rax, -0x93e8(%rbp)
jmp 0x1f279
movq -0x93e8(%rbp), %rsi
leaq -0x8218(%rbp), %rdi
callq 0x24c30
jmp 0x1f28e
xorl %eax, %eax
movl %eax, %esi
leaq -0x8218(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93ec(%rbp)
jmp 0x1f2ab
movl -0x93ec(%rbp), %eax
movl %eax, -0x81f4(%rbp)
leaq -0x81f0(%rbp), %rdi
leaq -0x81f4(%rbp), %rsi
callq 0x243b0
jmp 0x1f2cc
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movq -0x81f0(%rbp), %rcx
movq %rcx, -0x5f98(%rbp,%rax)
leaq -0x8218(%rbp), %rdi
callq 0xcf470
leaq -0x80e0(%rbp), %rdi
movl $0x5, %esi
callq 0x24b50
movq %rax, -0x93f8(%rbp)
jmp 0x1f310
movq -0x93f8(%rbp), %rsi
leaq -0x8248(%rbp), %rdi
callq 0x24c30
jmp 0x1f325
xorl %eax, %eax
movl %eax, %esi
leaq -0x8248(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x93fc(%rbp)
jmp 0x1f342
movl -0x93fc(%rbp), %eax
movl %eax, -0x8224(%rbp)
leaq -0x8220(%rbp), %rdi
leaq -0x8224(%rbp), %rsi
callq 0x243b0
jmp 0x1f363
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movq -0x8220(%rbp), %rcx
movq %rcx, -0x5f90(%rbp,%rax)
leaq -0x8248(%rbp), %rdi
callq 0xcf470
leaq -0x80e0(%rbp), %rdi
movl $0x8, %esi
callq 0x24b50
movq %rax, -0x9408(%rbp)
jmp 0x1f3a7
movq -0x9408(%rbp), %rsi
leaq -0x8268(%rbp), %rdi
callq 0x24c30
jmp 0x1f3bc
movslq -0x5fc4(%rbp), %rax
leaq -0x5fc0(%rbp), %rdi
imulq $0x60, %rax, %rax
addq %rax, %rdi
addq $0x40, %rdi
leaq -0x8268(%rbp), %rsi
callq 0xcf4c0
leaq -0x8268(%rbp), %rdi
callq 0xcf470
movslq -0x5fc4(%rbp), %rcx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
jne 0x1f536
leaq -0x80e0(%rbp), %rdi
movl $0x4, %esi
callq 0x24b50
movq %rax, -0x9410(%rbp)
jmp 0x1f426
movq -0x9410(%rbp), %rsi
leaq -0x8298(%rbp), %rdi
callq 0x24c30
jmp 0x1f43b
xorl %eax, %eax
movl %eax, %esi
leaq -0x8298(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x9414(%rbp)
jmp 0x1f458
movl -0x9414(%rbp), %eax
movl %eax, -0x8274(%rbp)
leaq -0x8270(%rbp), %rdi
leaq -0x8274(%rbp), %rsi
callq 0x24cf0
jmp 0x1f479
movslq -0x5fc4(%rbp), %rcx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq -0x8270(%rbp), %rcx
movq %rcx, 0x38(%rax)
leaq -0x8298(%rbp), %rdi
callq 0xcf470
jmp 0x1f5c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x81e8(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8218(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8248(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8298(%rbp), %rdi
callq 0xcf470
jmp 0x1f5ef
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f98(%rbp,%rax), %rdi
callq 0x24d60
movq %rax, -0x9420(%rbp)
jmp 0x1f55b
movq -0x9420(%rbp), %rax
movq %rax, -0x82a8(%rbp)
movslq -0x5fc4(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5fa4(%rbp,%rax), %rsi
leaq -0x82a8(%rbp), %rdi
callq 0x24d10
movq %rax, -0x9428(%rbp)
jmp 0x1f595
movq -0x9428(%rbp), %rax
movq %rax, -0x82a0(%rbp)
movslq -0x5fc4(%rbp), %rcx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
movq -0x82a0(%rbp), %rcx
movq %rcx, 0x38(%rax)
movl -0x5fc4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5fc4(%rbp)
leaq -0x8168(%rbp), %rdi
callq 0xcf470
leaq -0x8148(%rbp), %rdi
callq 0x24d90
jmp 0x1f79e
leaq -0x8168(%rbp), %rdi
callq 0xcf470
leaq -0x8148(%rbp), %rdi
callq 0x24d90
jmp 0x1f7df
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9438(%rbp)
leaq -0x8329(%rbp), %rdi
movq %rdi, -0x9430(%rbp)
callq 0x54db0
movq -0x9438(%rbp), %rsi
movq -0x9430(%rbp), %rdx
leaq -0x8328(%rbp), %rdi
callq 0x235f0
jmp 0x1f651
leaq 0xe3a1c(%rip), %rsi     # 0x103074
leaq -0x8308(%rbp), %rdi
leaq -0x8328(%rbp), %rdx
callq 0x23c90
jmp 0x1f66d
leaq 0xe8fda(%rip), %rdx     # 0x10864e
leaq -0x82e8(%rbp), %rdi
leaq -0x8308(%rbp), %rsi
callq 0x23940
jmp 0x1f689
leaq -0x82c8(%rbp), %rdi
leaq -0x82e8(%rbp), %rsi
leaq -0x80b8(%rbp), %rdx
callq 0x24db0
jmp 0x1f6a5
movl $0x2, %edi
leaq -0x82c8(%rbp), %rsi
callq 0x196f0
jmp 0x1f6b8
leaq -0x82c8(%rbp), %rdi
callq 0xcf470
leaq -0x82e8(%rbp), %rdi
callq 0xcf470
leaq -0x8308(%rbp), %rdi
callq 0xcf470
leaq -0x8328(%rbp), %rdi
callq 0xcf470
leaq -0x8329(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f790
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f784
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f778
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1f76c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x82c8(%rbp), %rdi
callq 0xcf470
leaq -0x82e8(%rbp), %rdi
callq 0xcf470
leaq -0x8308(%rbp), %rdi
callq 0xcf470
leaq -0x8328(%rbp), %rdi
callq 0xcf470
leaq -0x8329(%rbp), %rdi
callq 0x54dd0
jmp 0x1f7df
leaq -0x80e0(%rbp), %rdi
callq 0x24d90
leaq -0x80b8(%rbp), %rdi
callq 0xcf470
leaq -0x8098(%rbp), %rdi
callq 0x23ce0
leaq -0x8078(%rbp), %rdi
callq 0x23ce0
leaq -0x8050(%rbp), %rdi
callq 0xcf470
jmp 0x1f8a9
leaq -0x80e0(%rbp), %rdi
callq 0x24d90
leaq -0x80b8(%rbp), %rdi
callq 0xcf470
leaq -0x8098(%rbp), %rdi
callq 0x23ce0
leaq -0x8078(%rbp), %rdi
callq 0x23ce0
leaq -0x8050(%rbp), %rdi
callq 0xcf470
movl -0x7fc4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x232f4
movq -0x7fc0(%rbp), %rdi
callq 0x53670
movq %rax, -0x8338(%rbp)
movq -0x8338(%rbp), %rsi
leaq -0x8350(%rbp), %rdi
movq %rdi, -0x9440(%rbp)
callq 0x24e00
movq -0x9440(%rbp), %rdi
callq 0x1aaa0
jmp 0x1f869
leaq -0x8350(%rbp), %rdi
callq 0xc3450
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8350(%rbp), %rdi
callq 0xc3450
callq 0x536e0
jmp 0x1f8a4
jmp 0x232f4
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fc8(%rbp)
jmp 0x20e6d
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe37e1(%rip), %rsi     # 0x1030b4
callq 0x16660
cmpl $0x0, %eax
je 0x1f901
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe37c4(%rip), %rsi     # 0x1030b7
callq 0x16660
cmpl $0x0, %eax
jne 0x2058e
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jne 0x1fa60
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9450(%rbp)
leaq -0x83b1(%rbp), %rdi
movq %rdi, -0x9448(%rbp)
callq 0x54db0
movq -0x9450(%rbp), %rsi
movq -0x9448(%rbp), %rdx
leaq -0x83b0(%rbp), %rdi
callq 0x235f0
jmp 0x1f958
leaq 0xe368e(%rip), %rsi     # 0x102fed
leaq -0x8390(%rbp), %rdi
leaq -0x83b0(%rbp), %rdx
callq 0x23c90
jmp 0x1f974
leaq 0xe3690(%rip), %rdx     # 0x10300b
leaq -0x8370(%rbp), %rdi
leaq -0x8390(%rbp), %rsi
callq 0x23940
jmp 0x1f990
movl $0x2, %edi
leaq -0x8370(%rbp), %rsi
callq 0x196f0
jmp 0x1f9a3
leaq -0x8370(%rbp), %rdi
callq 0xcf470
leaq -0x8390(%rbp), %rdi
callq 0xcf470
leaq -0x83b0(%rbp), %rdi
callq 0xcf470
leaq -0x83b1(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1fa4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1fa43
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x1fa37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8370(%rbp), %rdi
callq 0xcf470
leaq -0x8390(%rbp), %rdi
callq 0xcf470
leaq -0x83b0(%rbp), %rdi
callq 0xcf470
leaq -0x83b1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
leaq 0xe365b(%rip), %rsi     # 0x1030c2
leaq -0x83d8(%rbp), %rdi
movl $0x10, %edx
callq 0x238a0
jmp 0x1fa7a
leaq 0xe3669(%rip), %rsi     # 0x1030ea
leaq -0x83f8(%rbp), %rdi
movl $0x10, %edx
callq 0x238a0
jmp 0x1fa94
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x9460(%rbp)
leaq -0x8419(%rbp), %rdi
movq %rdi, -0x9458(%rbp)
callq 0x54db0
movq -0x9460(%rbp), %rsi
movq -0x9458(%rbp), %rdx
leaq -0x8418(%rbp), %rdi
callq 0x235f0
jmp 0x1fada
leaq -0x8419(%rbp), %rdi
callq 0x54dd0
leaq -0x8440(%rbp), %rdi
callq 0x24ab0
jmp 0x1faf4
leaq -0x8460(%rbp), %rdi
callq 0x24ab0
jmp 0x1fb02
leaq -0x8418(%rbp), %rdi
leaq -0x8440(%rbp), %rsi
leaq -0x83d8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x24af0
movb %al, -0x9461(%rbp)
jmp 0x1fb26
movb -0x9461(%rbp), %al
testb $0x1, %al
jne 0x1fb35
jmp 0x1fe0f
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movw $0x2, -0x7fb0(%rbp,%rax)
leaq -0x8440(%rbp), %rdi
movl $0x3, %esi
callq 0x24b50
movq %rax, -0x9470(%rbp)
jmp 0x1fb64
movq -0x9470(%rbp), %rsi
leaq -0x8480(%rbp), %rdi
callq 0x24c30
jmp 0x1fb79
xorl %eax, %eax
movl %eax, %esi
leaq -0x8480(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x9474(%rbp)
jmp 0x1fb96
movl -0x9474(%rbp), %eax
movzwl %ax, %edi
callq 0x161a0
movw %ax, %cx
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movw %cx, -0x7fae(%rbp,%rax)
leaq -0x8480(%rbp), %rdi
callq 0xcf470
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movl $0x0, -0x7fac(%rbp,%rax)
leaq -0x84a0(%rbp), %rdi
leaq -0x8440(%rbp), %rsi
movl $0x2, %edx
callq 0x24ca0
jmp 0x1fbf6
leaq -0x84a0(%rbp), %rdi
movq %rdi, -0x9480(%rbp)
callq 0xd0eb0
movq %rax, %rdi
callq 0x168e0
movq -0x9480(%rbp), %rdi
movl %eax, %ecx
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movl %ecx, -0x7fa0(%rbp,%rax)
callq 0xcf470
leaq -0x84c0(%rbp), %rdi
leaq -0x8440(%rbp), %rsi
movl $0x1, %edx
callq 0x24ca0
jmp 0x1fc4b
leaq -0x84c0(%rbp), %rdi
movq %rdi, -0x9490(%rbp)
callq 0xd0eb0
movq %rax, %rdi
callq 0x168e0
movq -0x9490(%rbp), %rdi
movl %eax, %ecx
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movl %ecx, -0x7f9c(%rbp,%rax)
callq 0xcf470
leaq -0x8440(%rbp), %rdi
movl $0x4, %esi
callq 0x24b50
movq %rax, -0x9488(%rbp)
jmp 0x1fca0
movq -0x9488(%rbp), %rsi
leaq -0x84f0(%rbp), %rdi
callq 0x24c30
jmp 0x1fcb5
xorl %eax, %eax
movl %eax, %esi
leaq -0x84f0(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x9494(%rbp)
jmp 0x1fcd2
movl -0x9494(%rbp), %eax
movl %eax, -0x84cc(%rbp)
leaq -0x84c8(%rbp), %rdi
leaq -0x84cc(%rbp), %rsi
callq 0x243b0
jmp 0x1fcf3
movslq -0x7fb4(%rbp), %rcx
leaq -0x7fb0(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
movq -0x84c8(%rbp), %rcx
movq %rcx, 0x18(%rax)
leaq -0x84f0(%rbp), %rdi
callq 0xcf470
movl -0x7fb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fb4(%rbp)
jmp 0x2046f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x204ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x204e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8419(%rbp), %rdi
callq 0x54dd0
jmp 0x204d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x204c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x204bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x204b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8480(%rbp), %rdi
callq 0xcf470
jmp 0x204b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x84f0(%rbp), %rdi
callq 0xcf470
jmp 0x204b0
leaq -0x8418(%rbp), %rdi
leaq -0x8460(%rbp), %rsi
leaq -0x83f8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x24af0
movb %al, -0x9495(%rbp)
jmp 0x1fe33
movb -0x9495(%rbp), %al
testb $0x1, %al
jne 0x1fe42
jmp 0x202db
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movw $0x2, -0x7fb0(%rbp,%rax)
leaq -0x8460(%rbp), %rdi
movl $0x3, %esi
callq 0x24b50
movq %rax, -0x94a0(%rbp)
jmp 0x1fe71
movq -0x94a0(%rbp), %rsi
leaq -0x8510(%rbp), %rdi
callq 0x24c30
jmp 0x1fe86
xorl %eax, %eax
movl %eax, %esi
leaq -0x8510(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x94a4(%rbp)
jmp 0x1fea3
movl -0x94a4(%rbp), %eax
movzwl %ax, %edi
callq 0x161a0
movw %ax, %cx
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movw %cx, -0x7fae(%rbp,%rax)
leaq -0x8510(%rbp), %rdi
callq 0xcf470
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movl $0x0, -0x7fac(%rbp,%rax)
leaq -0x8530(%rbp), %rdi
leaq -0x8460(%rbp), %rsi
movl $0x2, %edx
callq 0x24ca0
jmp 0x1ff03
leaq -0x8530(%rbp), %rdi
movq %rdi, -0x94b8(%rbp)
callq 0xd0eb0
movq %rax, %rdi
callq 0x168e0
movq -0x94b8(%rbp), %rdi
movl %eax, %ecx
movslq -0x7fb4(%rbp), %rax
shlq $0x5, %rax
movl %ecx, -0x7fa0(%rbp,%rax)
callq 0xcf470
leaq -0x8460(%rbp), %rdi
movl $0x4, %esi
callq 0x24b50
movq %rax, -0x94b0(%rbp)
jmp 0x1ff58
movq -0x94b0(%rbp), %rsi
leaq -0x8560(%rbp), %rdi
callq 0x24c30
jmp 0x1ff6d
xorl %eax, %eax
movl %eax, %esi
leaq -0x8560(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x94bc(%rbp)
jmp 0x1ff8a
movl -0x94bc(%rbp), %eax
movl %eax, -0x853c(%rbp)
leaq -0x8538(%rbp), %rdi
leaq -0x853c(%rbp), %rsi
callq 0x243b0
jmp 0x1ffab
movslq -0x7fb4(%rbp), %rcx
leaq -0x7fb0(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
movq -0x8538(%rbp), %rcx
movq %rcx, 0x18(%rax)
leaq -0x8560(%rbp), %rdi
callq 0xcf470
leaq -0x8568(%rbp), %rdi
callq 0x164f0
cmpl $-0x1, %eax
jne 0x200d9
leaq -0x8599(%rbp), %rdi
movq %rdi, -0x94c8(%rbp)
callq 0x54db0
movq -0x94c8(%rbp), %rdx
leaq 0xe3107(%rip), %rsi     # 0x103114
leaq -0x8598(%rbp), %rdi
callq 0x235f0
jmp 0x2001b
movl $0x2, %edi
leaq -0x8598(%rbp), %rsi
callq 0x196f0
jmp 0x2002e
leaq -0x8598(%rbp), %rdi
callq 0xcf470
leaq -0x8599(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8510(%rbp), %rdi
callq 0xcf470
jmp 0x204b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8560(%rbp), %rdi
callq 0xcf470
jmp 0x204b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x200c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8598(%rbp), %rdi
callq 0xcf470
leaq -0x8599(%rbp), %rdi
callq 0x54dd0
jmp 0x204b0
movq -0x8568(%rbp), %rax
movq %rax, -0x8570(%rbp)
movl $0x0, -0x8578(%rbp)
cmpq $0x0, -0x8570(%rbp)
je 0x202bb
movq -0x8570(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x20112
jmp 0x20296
movq -0x8570(%rbp), %rax
movq 0x18(%rax), %rax
movzwl (%rax), %eax
movl %eax, -0x8574(%rbp)
cmpl $0x2, -0x8574(%rbp)
jne 0x20294
movq -0x8570(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x94d8(%rbp)
leaq -0x85c1(%rbp), %rdi
movq %rdi, -0x94d0(%rbp)
callq 0x54db0
movq -0x94d8(%rbp), %rsi
movq -0x94d0(%rbp), %rdx
leaq -0x85c0(%rbp), %rdi
callq 0x235f0
jmp 0x20174
movl $0x2, %edi
leaq -0x85c0(%rbp), %rsi
callq 0x196f0
jmp 0x20187
leaq -0x85c0(%rbp), %rdi
callq 0xcf470
leaq -0x85c1(%rbp), %rdi
callq 0x54dd0
movq -0x8570(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x94e0(%rbp)
leaq -0x85e8(%rbp), %rdi
leaq -0x8460(%rbp), %rsi
movl $0x1, %edx
callq 0x24ca0
jmp 0x201cb
movq -0x94e0(%rbp), %rdi
leaq -0x85e8(%rbp), %rsi
callq 0x24e60
movb %al, -0x94e1(%rbp)
jmp 0x201e6
leaq -0x85e8(%rbp), %rdi
callq 0xcf470
movb -0x94e1(%rbp), %al
testb $0x1, %al
jne 0x20201
jmp 0x20292
movq -0x8570(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %ecx
movslq -0x7fb4(%rbp), %rdx
leaq -0x7fb0(%rbp), %rax
shlq $0x5, %rdx
addq %rdx, %rax
movl %ecx, 0x14(%rax)
jmp 0x202bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2025e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x85c0(%rbp), %rdi
callq 0xcf470
leaq -0x85c1(%rbp), %rdi
callq 0x54dd0
jmp 0x204b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x85e8(%rbp), %rdi
callq 0xcf470
jmp 0x204b0
jmp 0x20294
jmp 0x20296
movq -0x8570(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8570(%rbp)
movl -0x8578(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8578(%rbp)
jmp 0x200f1
movq -0x8568(%rbp), %rdi
callq 0x166b0
movl -0x7fb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fb4(%rbp)
jmp 0x2046d
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x94f8(%rbp)
leaq -0x8669(%rbp), %rdi
movq %rdi, -0x94f0(%rbp)
callq 0x54db0
movq -0x94f8(%rbp), %rsi
movq -0x94f0(%rbp), %rdx
leaq -0x8668(%rbp), %rdi
callq 0x235f0
jmp 0x20320
leaq 0xe2e12(%rip), %rsi     # 0x103139
leaq -0x8648(%rbp), %rdi
leaq -0x8668(%rbp), %rdx
callq 0x23c90
jmp 0x2033c
leaq 0xe830b(%rip), %rdx     # 0x10864e
leaq -0x8628(%rbp), %rdi
leaq -0x8648(%rbp), %rsi
callq 0x23940
jmp 0x20358
leaq -0x8608(%rbp), %rdi
leaq -0x8628(%rbp), %rsi
leaq -0x8418(%rbp), %rdx
callq 0x24db0
jmp 0x20374
movl $0x2, %edi
leaq -0x8608(%rbp), %rsi
callq 0x196f0
jmp 0x20387
leaq -0x8608(%rbp), %rdi
callq 0xcf470
leaq -0x8628(%rbp), %rdi
callq 0xcf470
leaq -0x8648(%rbp), %rdi
callq 0xcf470
leaq -0x8668(%rbp), %rdi
callq 0xcf470
leaq -0x8669(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2045f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20453
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20447
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2043b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8608(%rbp), %rdi
callq 0xcf470
leaq -0x8628(%rbp), %rdi
callq 0xcf470
leaq -0x8648(%rbp), %rdi
callq 0xcf470
leaq -0x8668(%rbp), %rdi
callq 0xcf470
leaq -0x8669(%rbp), %rdi
callq 0x54dd0
jmp 0x204b0
jmp 0x2046f
leaq -0x8460(%rbp), %rdi
callq 0x24d90
leaq -0x8440(%rbp), %rdi
callq 0x24d90
leaq -0x8418(%rbp), %rdi
callq 0xcf470
leaq -0x83f8(%rbp), %rdi
callq 0x23ce0
leaq -0x83d8(%rbp), %rdi
callq 0x23ce0
jmp 0x2057a
leaq -0x8460(%rbp), %rdi
callq 0x24d90
leaq -0x8440(%rbp), %rdi
callq 0x24d90
leaq -0x8418(%rbp), %rdi
callq 0xcf470
leaq -0x83f8(%rbp), %rdi
callq 0x23ce0
leaq -0x83d8(%rbp), %rdi
callq 0x23ce0
movl -0x7fc4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x232f4
movq -0x7fc0(%rbp), %rdi
callq 0x53670
movq %rax, -0x8678(%rbp)
movq -0x8678(%rbp), %rsi
leaq -0x8690(%rbp), %rdi
movq %rdi, -0x9500(%rbp)
callq 0x24e00
movq -0x9500(%rbp), %rdi
callq 0x1aaa0
jmp 0x2053a
leaq -0x8690(%rbp), %rdi
callq 0xc3450
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8690(%rbp), %rdi
callq 0xc3450
callq 0x536e0
jmp 0x20575
jmp 0x232f4
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fc8(%rbp)
jmp 0x20e6b
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2bd7(%rip), %rsi     # 0x10317b
callq 0x16660
cmpl $0x0, %eax
je 0x205d2
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2bba(%rip), %rsi     # 0x10317e
callq 0x16660
cmpl $0x0, %eax
jne 0x2080c
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jne 0x20731
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9510(%rbp)
leaq -0x86f1(%rbp), %rdi
movq %rdi, -0x9508(%rbp)
callq 0x54db0
movq -0x9510(%rbp), %rsi
movq -0x9508(%rbp), %rdx
leaq -0x86f0(%rbp), %rdi
callq 0x235f0
jmp 0x20629
leaq 0xe29bd(%rip), %rsi     # 0x102fed
leaq -0x86d0(%rbp), %rdi
leaq -0x86f0(%rbp), %rdx
callq 0x23c90
jmp 0x20645
leaq 0xe29bf(%rip), %rdx     # 0x10300b
leaq -0x86b0(%rbp), %rdi
leaq -0x86d0(%rbp), %rsi
callq 0x23940
jmp 0x20661
movl $0x2, %edi
leaq -0x86b0(%rbp), %rsi
callq 0x196f0
jmp 0x20674
leaq -0x86b0(%rbp), %rdi
callq 0xcf470
leaq -0x86d0(%rbp), %rdi
callq 0xcf470
leaq -0x86f0(%rbp), %rdi
callq 0xcf470
leaq -0x86f1(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20720
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20714
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20708
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x86b0(%rbp), %rdi
callq 0xcf470
leaq -0x86d0(%rbp), %rdi
callq 0xcf470
leaq -0x86f0(%rbp), %rdi
callq 0xcf470
leaq -0x86f1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x9520(%rbp)
leaq -0x8719(%rbp), %rdi
movq %rdi, -0x9518(%rbp)
callq 0x54db0
movq -0x9520(%rbp), %rsi
movq -0x9518(%rbp), %rdx
leaq -0x8718(%rbp), %rdi
callq 0x235f0
jmp 0x20777
xorl %eax, %eax
movl %eax, %esi
leaq -0x8718(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x9524(%rbp)
jmp 0x20794
movl -0x9524(%rbp), %eax
movl %eax, -0x14(%rbp)
leaq -0x8718(%rbp), %rdi
callq 0xcf470
leaq -0x8719(%rbp), %rdi
callq 0x54dd0
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fc8(%rbp)
jmp 0x20e69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x207fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8718(%rbp), %rdi
callq 0xcf470
leaq -0x8719(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2966(%rip), %rsi     # 0x103188
callq 0x16660
cmpl $0x0, %eax
je 0x20850
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2949(%rip), %rsi     # 0x10318b
callq 0x16660
cmpl $0x0, %eax
jne 0x20a8d
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jne 0x209af
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9538(%rbp)
leaq -0x8781(%rbp), %rdi
movq %rdi, -0x9530(%rbp)
callq 0x54db0
movq -0x9538(%rbp), %rsi
movq -0x9530(%rbp), %rdx
leaq -0x8780(%rbp), %rdi
callq 0x235f0
jmp 0x208a7
leaq 0xe273f(%rip), %rsi     # 0x102fed
leaq -0x8760(%rbp), %rdi
leaq -0x8780(%rbp), %rdx
callq 0x23c90
jmp 0x208c3
leaq 0xe2741(%rip), %rdx     # 0x10300b
leaq -0x8740(%rbp), %rdi
leaq -0x8760(%rbp), %rsi
callq 0x23940
jmp 0x208df
movl $0x2, %edi
leaq -0x8740(%rbp), %rsi
callq 0x196f0
jmp 0x208f2
leaq -0x8740(%rbp), %rdi
callq 0xcf470
leaq -0x8760(%rbp), %rdi
callq 0xcf470
leaq -0x8780(%rbp), %rdi
callq 0xcf470
leaq -0x8781(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2099e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20992
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20986
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8740(%rbp), %rdi
callq 0xcf470
leaq -0x8760(%rbp), %rdi
callq 0xcf470
leaq -0x8780(%rbp), %rdi
callq 0xcf470
leaq -0x8781(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, -0x9548(%rbp)
leaq -0x87a9(%rbp), %rdi
movq %rdi, -0x9540(%rbp)
callq 0x54db0
movq -0x9548(%rbp), %rsi
movq -0x9540(%rbp), %rdx
leaq -0x87a8(%rbp), %rdi
callq 0x235f0
jmp 0x209f5
xorl %eax, %eax
movl %eax, %esi
leaq -0x87a8(%rbp), %rdi
movl $0xa, %edx
callq 0x24c60
movl %eax, -0x954c(%rbp)
jmp 0x20a12
movl -0x954c(%rbp), %eax
movl %eax, -0x7fb8(%rbp)
leaq -0x87a8(%rbp), %rdi
callq 0xcf470
leaq -0x87a9(%rbp), %rdi
callq 0x54dd0
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fc8(%rbp)
jmp 0x20e67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20a7c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x87a8(%rbp), %rdi
callq 0xcf470
leaq -0x87a9(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe26f3(%rip), %rsi     # 0x103196
callq 0x16660
cmpl $0x0, %eax
jne 0x20ab9
movb $0x1, 0x13bfdd(%rip)    # 0x15ca91
jmp 0x20e65
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe26d8(%rip), %rsi     # 0x1031a7
callq 0x16660
cmpl $0x0, %eax
jne 0x20ae5
movb $0x1, 0x13bfb7(%rip)    # 0x15ca97
jmp 0x20e63
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe26bb(%rip), %rsi     # 0x1031b6
callq 0x16660
cmpl $0x0, %eax
jne 0x20b18
movb $0x1, 0x13bf86(%rip)    # 0x15ca92
movb $0x0, 0x13bf80(%rip)    # 0x15ca93
jmp 0x20e61
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2699(%rip), %rsi     # 0x1031c7
callq 0x16660
cmpl $0x0, %eax
jne 0x20b4b
movb $0x1, 0x13bf53(%rip)    # 0x15ca92
movb $0x1, 0x13bf4d(%rip)    # 0x15ca93
jmp 0x20e5f
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2677(%rip), %rsi     # 0x1031d8
callq 0x16660
cmpl $0x0, %eax
je 0x20b8b
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe265a(%rip), %rsi     # 0x1031db
callq 0x16660
cmpl $0x0, %eax
jne 0x20b97
movb $0x1, 0x13befe(%rip)    # 0x15ca90
jmp 0x20e5d
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe263a(%rip), %rsi     # 0x1031e7
callq 0x16660
cmpl $0x0, %eax
jne 0x20bc3
movb $0x1, 0x13bed6(%rip)    # 0x15ca94
jmp 0x20e5b
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe2619(%rip), %rsi     # 0x1031f2
callq 0x16660
cmpl $0x0, %eax
jne 0x20bef
movb $0x1, 0x13beab(%rip)    # 0x15ca95
jmp 0x20e59
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe25f4(%rip), %rsi     # 0x1031f9
callq 0x16660
cmpl $0x0, %eax
jne 0x20c1b
movb $0x1, 0x13be80(%rip)    # 0x15ca96
jmp 0x20e57
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe25d1(%rip), %rsi     # 0x103202
callq 0x16660
cmpl $0x0, %eax
je 0x20c5f
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xe16eb(%rip), %rsi     # 0x10233c
callq 0x16660
cmpl $0x0, %eax
jne 0x20d08
leaq -0x87d1(%rbp), %rdi
movq %rdi, -0x9558(%rbp)
callq 0x54db0
movq -0x9558(%rbp), %rdx
leaq 0xe2585(%rip), %rsi     # 0x103205
leaq -0x87d0(%rbp), %rdi
callq 0x235f0
jmp 0x20c8e
xorl %edi, %edi
leaq -0x87d0(%rbp), %rsi
callq 0x196f0
jmp 0x20c9e
leaq -0x87d0(%rbp), %rdi
callq 0xcf470
leaq -0x87d1(%rbp), %rdi
callq 0x54dd0
movl $0x1, 0x13b7d0(%rip)    # 0x15c490
jmp 0x20e55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20cf7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x87d0(%rbp), %rdi
callq 0xcf470
leaq -0x87d1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq -0x10(%rbp), %rax
movslq -0x7fc8(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x9568(%rbp)
leaq -0x8839(%rbp), %rdi
movq %rdi, -0x9560(%rbp)
callq 0x54db0
movq -0x9568(%rbp), %rsi
movq -0x9560(%rbp), %rdx
leaq -0x8838(%rbp), %rdi
callq 0x235f0
jmp 0x20d4d
leaq 0xe24c4(%rip), %rsi     # 0x103218
leaq -0x8818(%rbp), %rdi
leaq -0x8838(%rbp), %rdx
callq 0x23c90
jmp 0x20d69
leaq 0xe24b0(%rip), %rdx     # 0x103220
leaq -0x87f8(%rbp), %rdi
leaq -0x8818(%rbp), %rsi
callq 0x23940
jmp 0x20d85
movl $0x2, %edi
leaq -0x87f8(%rbp), %rsi
callq 0x196f0
jmp 0x20d98
leaq -0x87f8(%rbp), %rdi
callq 0xcf470
leaq -0x8818(%rbp), %rdi
callq 0xcf470
leaq -0x8838(%rbp), %rdi
callq 0xcf470
leaq -0x8839(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20e44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20e38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20e2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x87f8(%rbp), %rdi
callq 0xcf470
leaq -0x8818(%rbp), %rdi
callq 0xcf470
leaq -0x8838(%rbp), %rdi
callq 0xcf470
leaq -0x8839(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
jmp 0x20e57
jmp 0x20e59
jmp 0x20e5b
jmp 0x20e5d
jmp 0x20e5f
jmp 0x20e61
jmp 0x20e63
jmp 0x20e65
jmp 0x20e67
jmp 0x20e69
jmp 0x20e6b
jmp 0x20e6d
jmp 0x20e6f
jmp 0x20e71
movl -0x7fc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7fc8(%rbp)
jmp 0x1ea03
callq 0xd2190
movl %eax, -0x8840(%rbp)
movl -0x7fb4(%rbp), %eax
addl -0x5fc4(%rbp), %eax
movl %eax, -0x8844(%rbp)
cmpl $0x2, 0x13b5e7(%rip)    # 0x15c490
jne 0x20eb5
movl $0x0, 0x13b5db(%rip)    # 0x15c490
movb 0x13bbda(%rip), %al     # 0x15ca95
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x20edd
movl $0x1, 0x13b5c1(%rip)    # 0x15c490
callq 0x19840
jmp 0x20ed6
xorl %edi, %edi
callq 0x161b0
movb 0x13bbb3(%rip), %al     # 0x15ca96
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x20f98
leaq -0x8869(%rbp), %rdi
movq %rdi, -0x9570(%rbp)
callq 0x54db0
movq -0x9570(%rbp), %rdx
leaq 0xe231a(%rip), %rsi     # 0x10322c
leaq -0x8868(%rbp), %rdi
callq 0x235f0
jmp 0x20f20
movl $0x2, %edi
leaq -0x8868(%rbp), %rsi
callq 0x196f0
jmp 0x20f33
leaq -0x8868(%rbp), %rdi
callq 0xcf470
leaq -0x8869(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x20f87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8868(%rbp), %rdi
callq 0xcf470
leaq -0x8869(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
cmpl $0x0, -0x8844(%rbp)
jne 0x2104c
leaq -0x8891(%rbp), %rdi
movq %rdi, -0x9578(%rbp)
callq 0x54db0
movq -0x9578(%rbp), %rdx
leaq 0xe2286(%rip), %rsi     # 0x10324c
leaq -0x8890(%rbp), %rdi
callq 0x235f0
jmp 0x20fd4
movl $0x2, %edi
leaq -0x8890(%rbp), %rsi
callq 0x196f0
jmp 0x20fe7
leaq -0x8890(%rbp), %rdi
callq 0xcf470
leaq -0x8891(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2103b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8890(%rbp), %rdi
callq 0xcf470
leaq -0x8891(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
cmpl $0x0, -0x5fc4(%rbp)
jle 0x220d5
movl $0x0, -0x8898(%rbp)
movl -0x8898(%rbp), %eax
cmpl -0x5fc4(%rbp), %eax
jge 0x220d3
movl -0x8898(%rbp), %esi
leaq -0x88d8(%rbp), %rdi
callq 0x23760
jmp 0x21089
leaq 0xe21ea(%rip), %rsi     # 0x10327a
leaq -0x88b8(%rbp), %rdi
leaq -0x88d8(%rbp), %rdx
callq 0x23c90
jmp 0x210a5
xorl %edi, %edi
leaq -0x88b8(%rbp), %rsi
callq 0x196f0
jmp 0x210b5
leaq -0x88b8(%rbp), %rdi
callq 0xcf470
leaq -0x88d8(%rbp), %rdi
callq 0xcf470
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movq -0x5fc0(%rbp,%rax), %rax
movq %rax, -0x9588(%rbp)
leaq -0x8919(%rbp), %rdi
movq %rdi, -0x9580(%rbp)
callq 0x54db0
movq -0x9588(%rbp), %rsi
movq -0x9580(%rbp), %rdx
leaq -0x8918(%rbp), %rdi
callq 0x235f0
jmp 0x2111a
leaq 0xe216d(%rip), %rsi     # 0x10328e
leaq -0x88f8(%rbp), %rdi
leaq -0x8918(%rbp), %rdx
callq 0x23c90
jmp 0x21136
xorl %edi, %edi
leaq -0x88f8(%rbp), %rsi
callq 0x196f0
jmp 0x21146
leaq -0x88f8(%rbp), %rdi
callq 0xcf470
leaq -0x8918(%rbp), %rdi
callq 0xcf470
leaq -0x8919(%rbp), %rdi
callq 0x54dd0
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5fb4(%rbp,%rax), %eax
movl %eax, %esi
leaq -0x89a0(%rbp), %rdi
callq 0x19600
jmp 0x21190
leaq 0xe210e(%rip), %rsi     # 0x1032a5
leaq -0x8980(%rbp), %rdi
leaq -0x89a0(%rbp), %rdx
callq 0x23c90
jmp 0x211ac
leaq 0xe733d(%rip), %rdx     # 0x1084f0
leaq -0x8960(%rbp), %rdi
leaq -0x8980(%rbp), %rsi
callq 0x23940
jmp 0x211c8
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movzwl -0x5fb6(%rbp,%rax), %edi
callq 0x16430
movzwl %ax, %esi
leaq -0x89c0(%rbp), %rdi
callq 0x23760
jmp 0x211f5
leaq -0x8940(%rbp), %rdi
leaq -0x8960(%rbp), %rsi
leaq -0x89c0(%rbp), %rdx
callq 0x24080
jmp 0x21211
xorl %edi, %edi
leaq -0x8940(%rbp), %rsi
callq 0x196f0
jmp 0x21221
leaq -0x8940(%rbp), %rdi
callq 0xcf470
leaq -0x89c0(%rbp), %rdi
callq 0xcf470
leaq -0x8960(%rbp), %rdi
callq 0xcf470
leaq -0x8980(%rbp), %rdi
callq 0xcf470
leaq -0x89a0(%rbp), %rdi
callq 0xcf470
movslq -0x8898(%rbp), %rcx
leaq -0x5fc0(%rbp), %rax
imulq $0x60, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x1c(%rax)
je 0x21ade
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5fa4(%rbp,%rax), %eax
movl %eax, %esi
leaq -0x8aa0(%rbp), %rdi
callq 0x1a9a0
jmp 0x212a2
leaq 0xe2013(%rip), %rsi     # 0x1032bc
leaq -0x8a80(%rbp), %rdi
leaq -0x8aa0(%rbp), %rdx
callq 0x23c90
jmp 0x212be
leaq 0xe200e(%rip), %rdx     # 0x1032d3
leaq -0x8a60(%rbp), %rdi
leaq -0x8a80(%rbp), %rsi
callq 0x23940
jmp 0x212da
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5fa0(%rbp,%rax), %esi
leaq -0x8ac0(%rbp), %rdi
callq 0x24e90
jmp 0x212fe
leaq -0x8a40(%rbp), %rdi
leaq -0x8a60(%rbp), %rsi
leaq -0x8ac0(%rbp), %rdx
callq 0x24080
jmp 0x2131a
leaq 0xe0ebb(%rip), %rdx     # 0x1021dc
leaq -0x8a20(%rbp), %rdi
leaq -0x8a40(%rbp), %rsi
callq 0x23940
jmp 0x21336
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5f9c(%rbp,%rax), %esi
leaq -0x8ae0(%rbp), %rdi
callq 0x24e90
jmp 0x2135a
leaq -0x8a00(%rbp), %rdi
leaq -0x8a20(%rbp), %rsi
leaq -0x8ae0(%rbp), %rdx
callq 0x24080
jmp 0x21376
leaq 0xe1f6a(%rip), %rdx     # 0x1032e7
leaq -0x89e0(%rbp), %rdi
leaq -0x8a00(%rbp), %rsi
callq 0x23940
jmp 0x21392
xorl %edi, %edi
leaq -0x89e0(%rbp), %rsi
callq 0x196f0
jmp 0x213a2
leaq -0x89e0(%rbp), %rdi
callq 0xcf470
leaq -0x8a00(%rbp), %rdi
callq 0xcf470
leaq -0x8ae0(%rbp), %rdi
callq 0xcf470
leaq -0x8a20(%rbp), %rdi
callq 0xcf470
leaq -0x8a40(%rbp), %rdi
callq 0xcf470
leaq -0x8ac0(%rbp), %rdi
callq 0xcf470
leaq -0x8a60(%rbp), %rdi
callq 0xcf470
leaq -0x8a80(%rbp), %rdi
callq 0xcf470
leaq -0x8aa0(%rbp), %rdi
callq 0xcf470
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f98(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x9590(%rbp)
jmp 0x21433
movq -0x9590(%rbp), %rax
cmpq $0x0, %rax
jle 0x217ca
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f98(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x9598(%rbp)
jmp 0x21469
movq -0x9598(%rbp), %rsi
leaq -0x8b40(%rbp), %rdi
callq 0x1a9a0
jmp 0x2147e
leaq 0xe1e69(%rip), %rsi     # 0x1032ee
leaq -0x8b20(%rbp), %rdi
leaq -0x8b40(%rbp), %rdx
callq 0x23c90
jmp 0x2149a
leaq 0xe1e64(%rip), %rdx     # 0x103305
leaq -0x8b00(%rbp), %rdi
leaq -0x8b20(%rbp), %rsi
callq 0x23940
jmp 0x214b6
xorl %edi, %edi
leaq -0x8b00(%rbp), %rsi
callq 0x196f0
jmp 0x214c6
leaq -0x8b00(%rbp), %rdi
callq 0xcf470
leaq -0x8b20(%rbp), %rdi
callq 0xcf470
leaq -0x8b40(%rbp), %rdi
callq 0xcf470
jmp 0x2191b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21521
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x88b8(%rbp), %rdi
callq 0xcf470
leaq -0x88d8(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21584
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21578
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x88f8(%rbp), %rdi
callq 0xcf470
leaq -0x8918(%rbp), %rdi
callq 0xcf470
leaq -0x8919(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21627
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2161b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2160f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21603
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8940(%rbp), %rdi
callq 0xcf470
leaq -0x89c0(%rbp), %rdi
callq 0xcf470
leaq -0x8960(%rbp), %rdi
callq 0xcf470
leaq -0x8980(%rbp), %rdi
callq 0xcf470
leaq -0x89a0(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21756
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2174a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2173e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21732
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21726
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2171a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2170e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21702
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x89e0(%rbp), %rdi
callq 0xcf470
leaq -0x8a00(%rbp), %rdi
callq 0xcf470
leaq -0x8ae0(%rbp), %rdi
callq 0xcf470
leaq -0x8a20(%rbp), %rdi
callq 0xcf470
leaq -0x8a40(%rbp), %rdi
callq 0xcf470
leaq -0x8ac0(%rbp), %rdi
callq 0xcf470
leaq -0x8a60(%rbp), %rdi
callq 0xcf470
leaq -0x8a80(%rbp), %rdi
callq 0xcf470
leaq -0x8aa0(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x217b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x217ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8b00(%rbp), %rdi
callq 0xcf470
leaq -0x8b20(%rbp), %rdi
callq 0xcf470
leaq -0x8b40(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movb 0x13b2c7(%rip), %al     # 0x15ca97
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x2187d
leaq -0x8b61(%rbp), %rdi
movq %rdi, -0x95a0(%rbp)
callq 0x54db0
movq -0x95a0(%rbp), %rdx
leaq 0xe1b0f(%rip), %rsi     # 0x10330e
leaq -0x8b60(%rbp), %rdi
callq 0x235f0
jmp 0x2180d
xorl %edi, %edi
leaq -0x8b60(%rbp), %rsi
callq 0x196f0
jmp 0x2181d
leaq -0x8b60(%rbp), %rdi
callq 0xcf470
leaq -0x8b61(%rbp), %rdi
callq 0x54dd0
jmp 0x21919
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2186c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8b60(%rbp), %rdi
callq 0xcf470
leaq -0x8b61(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
leaq -0x8b89(%rbp), %rdi
movq %rdi, -0x95a8(%rbp)
callq 0x54db0
movq -0x95a8(%rbp), %rdx
leaq 0xe1a96(%rip), %rsi     # 0x103334
leaq -0x8b88(%rbp), %rdi
callq 0x235f0
jmp 0x218ac
xorl %edi, %edi
leaq -0x8b88(%rbp), %rsi
callq 0x196f0
jmp 0x218bc
leaq -0x8b88(%rbp), %rdi
callq 0xcf470
leaq -0x8b89(%rbp), %rdi
callq 0x54dd0
jmp 0x21919
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8b88(%rbp), %rdi
callq 0xcf470
leaq -0x8b89(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
jmp 0x2191b
movb 0x13b176(%rip), %al     # 0x15ca97
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x219ce
leaq -0x8bb1(%rbp), %rdi
movq %rdi, -0x95b0(%rbp)
callq 0x54db0
movq -0x95b0(%rbp), %rdx
leaq 0xe1a15(%rip), %rsi     # 0x103365
leaq -0x8bb0(%rbp), %rdi
callq 0x235f0
jmp 0x2195e
xorl %edi, %edi
leaq -0x8bb0(%rbp), %rsi
callq 0x196f0
jmp 0x2196e
leaq -0x8bb0(%rbp), %rdi
callq 0xcf470
leaq -0x8bb1(%rbp), %rdi
callq 0x54dd0
jmp 0x21ad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x219bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8bb0(%rbp), %rdi
callq 0xcf470
leaq -0x8bb1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f88(%rbp,%rax), %rdi
callq 0x24f90
movq %rax, -0x95b8(%rbp)
jmp 0x219f3
movq -0x95b8(%rbp), %rsi
leaq -0x8c18(%rbp), %rdi
callq 0x1a9a0
jmp 0x21a08
leaq 0xe1976(%rip), %rsi     # 0x103385
leaq -0x8bf8(%rbp), %rdi
leaq -0x8c18(%rbp), %rdx
callq 0x23c90
jmp 0x21a24
leaq 0xe1971(%rip), %rdx     # 0x10339c
leaq -0x8bd8(%rbp), %rdi
leaq -0x8bf8(%rbp), %rsi
callq 0x23940
jmp 0x21a40
xorl %edi, %edi
leaq -0x8bd8(%rbp), %rsi
callq 0x196f0
jmp 0x21a50
leaq -0x8bd8(%rbp), %rdi
callq 0xcf470
leaq -0x8bf8(%rbp), %rdi
callq 0xcf470
leaq -0x8c18(%rbp), %rdi
callq 0xcf470
jmp 0x21ad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21abc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8bd8(%rbp), %rdi
callq 0xcf470
leaq -0x8bf8(%rbp), %rdi
callq 0xcf470
leaq -0x8c18(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
jmp 0x21e74
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5fa0(%rbp,%rax), %esi
leaq -0x8cb8(%rbp), %rdi
callq 0x24e90
jmp 0x21b02
leaq 0xe18a1(%rip), %rsi     # 0x1033aa
leaq -0x8c98(%rbp), %rdi
leaq -0x8cb8(%rbp), %rdx
callq 0x23c90
jmp 0x21b1e
leaq 0xe06b7(%rip), %rdx     # 0x1021dc
leaq -0x8c78(%rbp), %rdi
leaq -0x8c98(%rbp), %rsi
callq 0x23940
jmp 0x21b3a
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
movl -0x5f9c(%rbp,%rax), %esi
leaq -0x8cd8(%rbp), %rdi
callq 0x24e90
jmp 0x21b5e
leaq -0x8c58(%rbp), %rdi
leaq -0x8c78(%rbp), %rsi
leaq -0x8cd8(%rbp), %rdx
callq 0x24080
jmp 0x21b7a
leaq 0xe1766(%rip), %rdx     # 0x1032e7
leaq -0x8c38(%rbp), %rdi
leaq -0x8c58(%rbp), %rsi
callq 0x23940
jmp 0x21b96
xorl %edi, %edi
leaq -0x8c38(%rbp), %rsi
callq 0x196f0
jmp 0x21ba6
leaq -0x8c38(%rbp), %rdi
callq 0xcf470
leaq -0x8c58(%rbp), %rdi
callq 0xcf470
leaq -0x8cd8(%rbp), %rdi
callq 0xcf470
leaq -0x8c78(%rbp), %rdi
callq 0xcf470
leaq -0x8c98(%rbp), %rdi
callq 0xcf470
leaq -0x8cb8(%rbp), %rdi
callq 0xcf470
movb 0x13aea3(%rip), %al     # 0x15ca97
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x21d67
leaq -0x8cf9(%rbp), %rdi
movq %rdi, -0x95c0(%rbp)
callq 0x54db0
movq -0x95c0(%rbp), %rdx
leaq 0xe1742(%rip), %rsi     # 0x103365
leaq -0x8cf8(%rbp), %rdi
callq 0x235f0
jmp 0x21c31
xorl %edi, %edi
leaq -0x8cf8(%rbp), %rsi
callq 0x196f0
jmp 0x21c41
leaq -0x8cf8(%rbp), %rdi
callq 0xcf470
leaq -0x8cf9(%rbp), %rdi
callq 0x54dd0
jmp 0x21e72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21d13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21d07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21cfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21cef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21ce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8c38(%rbp), %rdi
callq 0xcf470
leaq -0x8c58(%rbp), %rdi
callq 0xcf470
leaq -0x8cd8(%rbp), %rdi
callq 0xcf470
leaq -0x8c78(%rbp), %rdi
callq 0xcf470
leaq -0x8c98(%rbp), %rdi
callq 0xcf470
leaq -0x8cb8(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21d56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8cf8(%rbp), %rdi
callq 0xcf470
leaq -0x8cf9(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f88(%rbp,%rax), %rdi
callq 0x24f90
movq %rax, -0x95c8(%rbp)
jmp 0x21d8c
movq -0x95c8(%rbp), %rsi
leaq -0x8d60(%rbp), %rdi
callq 0x1a9a0
jmp 0x21da1
leaq 0xe15dd(%rip), %rsi     # 0x103385
leaq -0x8d40(%rbp), %rdi
leaq -0x8d60(%rbp), %rdx
callq 0x23c90
jmp 0x21dbd
leaq 0xe15d8(%rip), %rdx     # 0x10339c
leaq -0x8d20(%rbp), %rdi
leaq -0x8d40(%rbp), %rsi
callq 0x23940
jmp 0x21dd9
xorl %edi, %edi
leaq -0x8d20(%rbp), %rsi
callq 0x196f0
jmp 0x21de9
leaq -0x8d20(%rbp), %rdi
callq 0xcf470
leaq -0x8d40(%rbp), %rdi
callq 0xcf470
leaq -0x8d60(%rbp), %rdi
callq 0xcf470
jmp 0x21e72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21e61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21e55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8d20(%rbp), %rdi
callq 0xcf470
leaq -0x8d40(%rbp), %rdi
callq 0xcf470
leaq -0x8d60(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
jmp 0x21e74
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f90(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x95d0(%rbp)
jmp 0x21e99
movq -0x95d0(%rbp), %rax
cmpq $0x0, %rax
jle 0x21fb8
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f90(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x95d8(%rbp)
jmp 0x21ecf
movq -0x95d8(%rbp), %rsi
leaq -0x8dc0(%rbp), %rdi
callq 0x1a9a0
jmp 0x21ee4
leaq 0xe14f1(%rip), %rsi     # 0x1033dc
leaq -0x8da0(%rbp), %rdi
leaq -0x8dc0(%rbp), %rdx
callq 0x23c90
jmp 0x21f00
leaq 0xe13fe(%rip), %rdx     # 0x103305
leaq -0x8d80(%rbp), %rdi
leaq -0x8da0(%rbp), %rsi
callq 0x23940
jmp 0x21f1c
xorl %edi, %edi
leaq -0x8d80(%rbp), %rsi
callq 0x196f0
jmp 0x21f2c
leaq -0x8d80(%rbp), %rdi
callq 0xcf470
leaq -0x8da0(%rbp), %rdi
callq 0xcf470
leaq -0x8dc0(%rbp), %rdi
callq 0xcf470
jmp 0x22054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21fa7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x21f9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8d80(%rbp), %rdi
callq 0xcf470
leaq -0x8da0(%rbp), %rdi
callq 0xcf470
leaq -0x8dc0(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
leaq -0x8de1(%rbp), %rdi
movq %rdi, -0x95e0(%rbp)
callq 0x54db0
movq -0x95e0(%rbp), %rdx
leaq 0xe141a(%rip), %rsi     # 0x1033f3
leaq -0x8de0(%rbp), %rdi
callq 0x235f0
jmp 0x21fe7
xorl %edi, %edi
leaq -0x8de0(%rbp), %rsi
callq 0x196f0
jmp 0x21ff7
leaq -0x8de0(%rbp), %rdi
callq 0xcf470
leaq -0x8de1(%rbp), %rdi
callq 0x54dd0
jmp 0x22054
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22043
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8de0(%rbp), %rdi
callq 0xcf470
leaq -0x8de1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movslq -0x8898(%rbp), %rax
leaq (%rax,%rax,2), %rax
shlq $0x5, %rax
leaq -0x5f80(%rbp,%rax), %rdx
leaq 0xe13a1(%rip), %rsi     # 0x103413
leaq -0x8e08(%rbp), %rdi
callq 0x23990
jmp 0x22080
xorl %edi, %edi
leaq -0x8e08(%rbp), %rsi
callq 0x196f0
jmp 0x22090
leaq -0x8e08(%rbp), %rdi
callq 0xcf470
movl -0x8898(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8898(%rbp)
jmp 0x21063
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8e08(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
jmp 0x220d5
cmpl $0x0, -0x7fb4(%rbp)
jle 0x225c0
movl $0x0, -0x8e0c(%rbp)
movl -0x8e0c(%rbp), %eax
cmpl -0x7fb4(%rbp), %eax
jge 0x225be
movl -0x8e0c(%rbp), %esi
leaq -0x8e50(%rbp), %rdi
callq 0x23760
jmp 0x22112
leaq 0xe1311(%rip), %rsi     # 0x10342a
leaq -0x8e30(%rbp), %rdi
leaq -0x8e50(%rbp), %rdx
callq 0x23c90
jmp 0x2212e
xorl %edi, %edi
leaq -0x8e30(%rbp), %rsi
callq 0x196f0
jmp 0x2213e
leaq -0x8e30(%rbp), %rdi
callq 0xcf470
leaq -0x8e50(%rbp), %rdi
callq 0xcf470
movslq -0x8e0c(%rbp), %rax
shlq $0x5, %rax
movl -0x7f9c(%rbp,%rax), %eax
movl %eax, %esi
leaq -0x8e90(%rbp), %rdi
callq 0x19600
jmp 0x22178
leaq 0xe12c1(%rip), %rsi     # 0x103440
leaq -0x8e70(%rbp), %rdi
leaq -0x8e90(%rbp), %rdx
callq 0x23c90
jmp 0x22194
xorl %edi, %edi
leaq -0x8e70(%rbp), %rsi
callq 0x196f0
jmp 0x221a4
leaq -0x8e70(%rbp), %rdi
callq 0xcf470
leaq -0x8e90(%rbp), %rdi
callq 0xcf470
movslq -0x8e0c(%rbp), %rax
shlq $0x5, %rax
movl -0x7fa0(%rbp,%rax), %eax
movl %eax, %esi
leaq -0x8f10(%rbp), %rdi
callq 0x19600
jmp 0x221de
leaq 0xe10c0(%rip), %rsi     # 0x1032a5
leaq -0x8ef0(%rbp), %rdi
leaq -0x8f10(%rbp), %rdx
callq 0x23c90
jmp 0x221fa
leaq 0xe62ef(%rip), %rdx     # 0x1084f0
leaq -0x8ed0(%rbp), %rdi
leaq -0x8ef0(%rbp), %rsi
callq 0x23940
jmp 0x22216
movslq -0x8e0c(%rbp), %rax
shlq $0x5, %rax
movzwl -0x7fae(%rbp,%rax), %edi
callq 0x16430
movzwl %ax, %esi
leaq -0x8f30(%rbp), %rdi
callq 0x23760
jmp 0x2223f
leaq -0x8eb0(%rbp), %rdi
leaq -0x8ed0(%rbp), %rsi
leaq -0x8f30(%rbp), %rdx
callq 0x24080
jmp 0x2225b
xorl %edi, %edi
leaq -0x8eb0(%rbp), %rsi
callq 0x196f0
jmp 0x2226b
leaq -0x8eb0(%rbp), %rdi
callq 0xcf470
leaq -0x8f30(%rbp), %rdi
callq 0xcf470
leaq -0x8ed0(%rbp), %rdi
callq 0xcf470
leaq -0x8ef0(%rbp), %rdi
callq 0xcf470
leaq -0x8f10(%rbp), %rdi
callq 0xcf470
movslq -0x8e0c(%rbp), %rax
shlq $0x5, %rax
leaq -0x7f98(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x95e8(%rbp)
jmp 0x222c8
movq -0x95e8(%rbp), %rax
cmpq $0x0, %rax
jle 0x2250c
movslq -0x8e0c(%rbp), %rax
shlq $0x5, %rax
leaq -0x7f98(%rbp,%rax), %rdi
callq 0x24f70
movq %rax, -0x95f0(%rbp)
jmp 0x222fa
movq -0x95f0(%rbp), %rsi
leaq -0x8f90(%rbp), %rdi
callq 0x23e70
jmp 0x2230f
leaq 0xe0fd8(%rip), %rsi     # 0x1032ee
leaq -0x8f70(%rbp), %rdi
leaq -0x8f90(%rbp), %rdx
callq 0x23c90
jmp 0x2232b
leaq 0xe0fd3(%rip), %rdx     # 0x103305
leaq -0x8f50(%rbp), %rdi
leaq -0x8f70(%rbp), %rsi
callq 0x23940
jmp 0x22347
xorl %edi, %edi
leaq -0x8f50(%rbp), %rsi
callq 0x196f0
jmp 0x22357
leaq -0x8f50(%rbp), %rdi
callq 0xcf470
leaq -0x8f70(%rbp), %rdi
callq 0xcf470
leaq -0x8f90(%rbp), %rdi
callq 0xcf470
jmp 0x225a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x223b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8e30(%rbp), %rdi
callq 0xcf470
leaq -0x8e50(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x223f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8e70(%rbp), %rdi
callq 0xcf470
leaq -0x8e90(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2248c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22480
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22474
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8eb0(%rbp), %rdi
callq 0xcf470
leaq -0x8f30(%rbp), %rdi
callq 0xcf470
leaq -0x8ed0(%rbp), %rdi
callq 0xcf470
leaq -0x8ef0(%rbp), %rdi
callq 0xcf470
leaq -0x8f10(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x224fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x224ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8f50(%rbp), %rdi
callq 0xcf470
leaq -0x8f70(%rbp), %rdi
callq 0xcf470
leaq -0x8f90(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
leaq -0x8fb1(%rbp), %rdi
movq %rdi, -0x95f8(%rbp)
callq 0x54db0
movq -0x95f8(%rbp), %rdx
leaq 0xe0f2a(%rip), %rsi     # 0x103457
leaq -0x8fb0(%rbp), %rdi
callq 0x235f0
jmp 0x2253b
xorl %edi, %edi
leaq -0x8fb0(%rbp), %rsi
callq 0x196f0
jmp 0x2254b
leaq -0x8fb0(%rbp), %rdi
callq 0xcf470
leaq -0x8fb1(%rbp), %rdi
callq 0x54dd0
jmp 0x225a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22597
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8fb0(%rbp), %rdi
callq 0xcf470
leaq -0x8fb1(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
jmp 0x225aa
movl -0x8e0c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8e0c(%rbp)
jmp 0x220ec
jmp 0x225c0
movl -0x8840(%rbp), %eax
cmpl -0x8844(%rbp), %eax
jge 0x22671
leaq -0x8fd9(%rbp), %rdi
movq %rdi, -0x9600(%rbp)
callq 0x54db0
movq -0x9600(%rbp), %rdx
leaq 0xe0e88(%rip), %rsi     # 0x10347b
leaq -0x8fd8(%rbp), %rdi
callq 0x235f0
jmp 0x22601
movl $0x1, %edi
leaq -0x8fd8(%rbp), %rsi
callq 0x196f0
jmp 0x22614
leaq -0x8fd8(%rbp), %rdi
callq 0xcf470
leaq -0x8fd9(%rbp), %rdi
callq 0x54dd0
jmp 0x22671
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22660
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x8fd8(%rbp), %rdi
callq 0xcf470
leaq -0x8fd9(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movl -0x14(%rbp), %esi
leaq -0x9060(%rbp), %rdi
callq 0x23760
jmp 0x22682
leaq 0xe0e4b(%rip), %rsi     # 0x1034d4
leaq -0x9040(%rbp), %rdi
leaq -0x9060(%rbp), %rdx
callq 0x23c90
jmp 0x2269e
leaq 0xdfb37(%rip), %rdx     # 0x1021dc
leaq -0x9020(%rbp), %rdi
leaq -0x9040(%rbp), %rsi
callq 0x23940
jmp 0x226ba
movl -0x8840(%rbp), %esi
leaq -0x9080(%rbp), %rdi
callq 0x23760
jmp 0x226ce
leaq -0x9000(%rbp), %rdi
leaq -0x9020(%rbp), %rsi
leaq -0x9080(%rbp), %rdx
callq 0x24080
jmp 0x226ea
xorl %edi, %edi
leaq -0x9000(%rbp), %rsi
callq 0x196f0
jmp 0x226fa
leaq -0x9000(%rbp), %rdi
callq 0xcf470
leaq -0x9080(%rbp), %rdi
callq 0xcf470
leaq -0x9020(%rbp), %rdi
callq 0xcf470
leaq -0x9040(%rbp), %rdi
callq 0xcf470
leaq -0x9060(%rbp), %rdi
callq 0xcf470
cmpl $0x0, -0x7fb8(%rbp)
je 0x22c57
movl -0x7fb8(%rbp), %esi
leaq -0x90c0(%rbp), %rdi
callq 0x23760
jmp 0x22757
leaq 0xe0d94(%rip), %rsi     # 0x1034f2
leaq -0x90a0(%rbp), %rdi
leaq -0x90c0(%rbp), %rdx
callq 0x23c90
jmp 0x22773
xorl %edi, %edi
leaq -0x90a0(%rbp), %rsi
callq 0x196f0
jmp 0x22783
leaq -0x90a0(%rbp), %rdi
callq 0xcf470
leaq -0x90c0(%rbp), %rdi
callq 0xcf470
callq 0x16620
movl $0x0, (%rax)
callq 0x162d0
movl %eax, %esi
xorl %edi, %edi
callq 0x16260
movl %eax, -0x90c4(%rbp)
cmpl $-0x1, -0x90c4(%rbp)
jne 0x2295d
callq 0x16620
cmpl $0x0, (%rax)
je 0x2295d
leaq -0x90e9(%rbp), %rdi
movq %rdi, -0x9608(%rbp)
callq 0x54db0
movq -0x9608(%rbp), %rdx
leaq 0xe0d1c(%rip), %rsi     # 0x103512
leaq -0x90e8(%rbp), %rdi
callq 0x235f0
jmp 0x22804
movl $0x2, %edi
leaq -0x90e8(%rbp), %rsi
callq 0x196f0
jmp 0x22817
leaq -0x90e8(%rbp), %rdi
callq 0xcf470
leaq -0x90e9(%rbp), %rdi
callq 0x54dd0
jmp 0x229fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x228c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x228ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x228ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x228a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9000(%rbp), %rdi
callq 0xcf470
leaq -0x9080(%rbp), %rdi
callq 0xcf470
leaq -0x9020(%rbp), %rdi
callq 0xcf470
leaq -0x9040(%rbp), %rdi
callq 0xcf470
leaq -0x9060(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22909
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x90a0(%rbp), %rdi
callq 0xcf470
leaq -0x90c0(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2294c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x90e8(%rbp), %rdi
callq 0xcf470
leaq -0x90e9(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movl -0x90c4(%rbp), %esi
leaq -0x9130(%rbp), %rdi
callq 0x23760
jmp 0x22971
leaq 0xe0bbc(%rip), %rsi     # 0x103534
leaq -0x9110(%rbp), %rdi
leaq -0x9130(%rbp), %rdx
callq 0x23c90
jmp 0x2298d
xorl %edi, %edi
leaq -0x9110(%rbp), %rsi
callq 0x196f0
jmp 0x2299d
leaq -0x9110(%rbp), %rdi
callq 0xcf470
leaq -0x9130(%rbp), %rdi
callq 0xcf470
jmp 0x229fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x229e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9110(%rbp), %rdi
callq 0xcf470
leaq -0x9130(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
callq 0x16620
movl $0x0, (%rax)
callq 0x162d0
movl %eax, %esi
movl -0x7fb8(%rbp), %edx
xorl %edi, %edi
callq 0x16480
movl %eax, -0x90c4(%rbp)
cmpl $-0x1, -0x90c4(%rbp)
jne 0x22ad9
callq 0x16620
cmpl $0x0, (%rax)
je 0x22ad9
leaq -0x9151(%rbp), %rdi
movq %rdi, -0x9610(%rbp)
callq 0x54db0
movq -0x9610(%rbp), %rdx
leaq 0xe0af7(%rip), %rsi     # 0x103552
leaq -0x9150(%rbp), %rdi
callq 0x235f0
jmp 0x22a69
movl $0x2, %edi
leaq -0x9150(%rbp), %rsi
callq 0x196f0
jmp 0x22a7c
leaq -0x9150(%rbp), %rdi
callq 0xcf470
leaq -0x9151(%rbp), %rdi
callq 0x54dd0
jmp 0x22ad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22ac8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9150(%rbp), %rdi
callq 0xcf470
leaq -0x9151(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
callq 0x16620
movl $0x0, (%rax)
callq 0x162d0
movl %eax, %esi
xorl %edi, %edi
callq 0x16260
movl %eax, -0x90c4(%rbp)
cmpl $-0x1, -0x90c4(%rbp)
jne 0x22bb5
callq 0x16620
cmpl $0x0, (%rax)
je 0x22bb5
leaq -0x9179(%rbp), %rdi
movq %rdi, -0x9618(%rbp)
callq 0x54db0
movq -0x9618(%rbp), %rdx
leaq 0xe09de(%rip), %rsi     # 0x103512
leaq -0x9178(%rbp), %rdi
callq 0x235f0
jmp 0x22b42
movl $0x2, %edi
leaq -0x9178(%rbp), %rsi
callq 0x196f0
jmp 0x22b55
leaq -0x9178(%rbp), %rdi
callq 0xcf470
leaq -0x9179(%rbp), %rdi
callq 0x54dd0
jmp 0x22c52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22ba4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9178(%rbp), %rdi
callq 0xcf470
leaq -0x9179(%rbp), %rdi
callq 0x54dd0
jmp 0x232f4
movl -0x90c4(%rbp), %esi
leaq -0x91c0(%rbp), %rdi
callq 0x23760
jmp 0x22bc9
leaq 0xe0964(%rip), %rsi     # 0x103534
leaq -0x91a0(%rbp), %rdi
leaq -0x91c0(%rbp), %rdx
callq 0x23c90
jmp 0x22be5
xorl %edi, %edi
leaq -0x91a0(%rbp), %rsi
callq 0x196f0
jmp 0x22bf5
leaq -0x91a0(%rbp), %rdi
callq 0xcf470
leaq -0x91c0(%rbp), %rdi
callq 0xcf470
jmp 0x22c52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22c41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x91a0(%rbp), %rdi
callq 0xcf470
leaq -0x91c0(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
jmp 0x22cf4
movl -0x7fb8(%rbp), %esi
leaq -0x9200(%rbp), %rdi
callq 0x23760
jmp 0x22c6b
leaq 0xe0902(%rip), %rsi     # 0x103574
leaq -0x91e0(%rbp), %rdi
leaq -0x9200(%rbp), %rdx
callq 0x23c90
jmp 0x22c87
xorl %edi, %edi
leaq -0x91e0(%rbp), %rsi
callq 0x196f0
jmp 0x22c97
leaq -0x91e0(%rbp), %rdi
callq 0xcf470
leaq -0x9200(%rbp), %rdi
callq 0xcf470
jmp 0x22cf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22ce3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x91e0(%rbp), %rdi
callq 0xcf470
leaq -0x9200(%rbp), %rdi
callq 0xcf470
jmp 0x232f4
leaq -0x848b(%rip), %rsi     # 0x1a870
movq %rsi, -0x9620(%rbp)
movl $0x3, %edi
callq 0x16590
movq -0x9620(%rbp), %rsi
movl $0x2, %edi
callq 0x16590
movq -0x9620(%rbp), %rsi
movl $0xf, %edi
callq 0x16590
movq -0x9620(%rbp), %rsi
movl $0x1, %edi
callq 0x16590
movq -0x9620(%rbp), %rsi
movl $0xd, %edi
callq 0x16590
movq -0x9620(%rbp), %rsi
movl $0x9, %edi
callq 0x16590
callq 0x197e0
jmp 0x22d68
leaq -0x9208(%rbp), %rdi
callq 0x24fb0
movb 0x139d16(%rip), %al     # 0x15ca90
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x22e10
leaq -0x47ff(%rip), %rsi     # 0x1e590
leaq -0x9210(%rbp), %rdi
leaq -0x5fc0(%rbp), %rdx
leaq -0x5fc4(%rbp), %rcx
leaq -0x7fb0(%rbp), %r8
leaq -0x7fb4(%rbp), %r9
callq 0x24fd0
jmp 0x22db9
leaq -0x9208(%rbp), %rdi
movq %rdi, -0x9628(%rbp)
leaq -0x9210(%rbp), %rsi
movq %rsi, -0x9630(%rbp)
callq 0x250b0
movq -0x9630(%rbp), %rdi
callq 0x24830
movq -0x9628(%rbp), %rdi
callq 0xd2100
jmp 0x22df4
jmp 0x232e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x232e8
callq 0x16790
movl %eax, -0x9214(%rbp)
cmpl $0x0, -0x9214(%rbp)
je 0x22f7d
cmpl $0x0, -0x9214(%rbp)
jle 0x22ed6
leaq -0x9239(%rbp), %rdi
movq %rdi, -0x9638(%rbp)
callq 0x54db0
movq -0x9638(%rbp), %rdx
leaq 0xe073c(%rip), %rsi     # 0x103592
leaq -0x9238(%rbp), %rdi
callq 0x235f0
jmp 0x22e64
xorl %edi, %edi
leaq -0x9238(%rbp), %rsi
callq 0x196f0
jmp 0x22e74
leaq -0x9238(%rbp), %rdi
callq 0xcf470
leaq -0x9239(%rbp), %rdi
callq 0x54dd0
xorl %edi, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22ec5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9238(%rbp), %rdi
callq 0xcf470
leaq -0x9239(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
leaq -0x9261(%rbp), %rdi
movq %rdi, -0x9640(%rbp)
callq 0x54db0
movq -0x9640(%rbp), %rdx
leaq 0xe06ac(%rip), %rsi     # 0x1035a3
leaq -0x9260(%rbp), %rdi
callq 0x235f0
jmp 0x22f05
movl $0x2, %edi
leaq -0x9260(%rbp), %rsi
callq 0x196f0
jmp 0x22f18
leaq -0x9260(%rbp), %rdi
callq 0xcf470
leaq -0x9261(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x22f6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9260(%rbp), %rdi
callq 0xcf470
leaq -0x9261(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
callq 0x16120
cmpl $0x0, %eax
jge 0x2302a
leaq -0x9289(%rbp), %rdi
movq %rdi, -0x9648(%rbp)
callq 0x54db0
movq -0x9648(%rbp), %rdx
leaq 0xe0605(%rip), %rsi     # 0x1035b1
leaq -0x9288(%rbp), %rdi
callq 0x235f0
jmp 0x22fba
movl $0x2, %edi
leaq -0x9288(%rbp), %rsi
callq 0x196f0
jmp 0x22fcd
leaq -0x9288(%rbp), %rdi
callq 0xcf470
leaq -0x9289(%rbp), %rdi
callq 0x54dd0
jmp 0x2302a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x23019
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9288(%rbp), %rdi
callq 0xcf470
leaq -0x9289(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
leaq 0xdf1ab(%rip), %rdi     # 0x1021dc
callq 0x16070
cmpl $0x0, %eax
je 0x230de
leaq -0x92b1(%rbp), %rdi
movq %rdi, -0x9650(%rbp)
callq 0x54db0
movq -0x9650(%rbp), %rdx
leaq 0xe057d(%rip), %rsi     # 0x1035dd
leaq -0x92b0(%rbp), %rdi
callq 0x235f0
jmp 0x2306e
movl $0x2, %edi
leaq -0x92b0(%rbp), %rsi
callq 0x196f0
jmp 0x23081
leaq -0x92b0(%rbp), %rdi
callq 0xcf470
leaq -0x92b1(%rbp), %rdi
callq 0x54dd0
jmp 0x230de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x230cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x92b0(%rbp), %rdi
callq 0xcf470
leaq -0x92b1(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
xorl %edi, %edi
callq 0x16880
callq 0x16790
movl %eax, -0x92b8(%rbp)
cmpl $0x0, -0x92b8(%rbp)
je 0x23252
cmpl $0x0, -0x92b8(%rbp)
jle 0x231ab
leaq -0x92d9(%rbp), %rdi
movq %rdi, -0x9658(%rbp)
callq 0x54db0
movq -0x9658(%rbp), %rdx
leaq 0xe04d9(%rip), %rsi     # 0x103604
leaq -0x92d8(%rbp), %rdi
callq 0x235f0
jmp 0x23139
xorl %edi, %edi
leaq -0x92d8(%rbp), %rsi
callq 0x196f0
jmp 0x23149
leaq -0x92d8(%rbp), %rdi
callq 0xcf470
leaq -0x92d9(%rbp), %rdi
callq 0x54dd0
xorl %edi, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x2319a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x92d8(%rbp), %rdi
callq 0xcf470
leaq -0x92d9(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
leaq -0x9301(%rbp), %rdi
movq %rdi, -0x9660(%rbp)
callq 0x54db0
movq -0x9660(%rbp), %rdx
leaq 0xe045d(%rip), %rsi     # 0x103629
leaq -0x9300(%rbp), %rdi
callq 0x235f0
jmp 0x231da
movl $0x2, %edi
leaq -0x9300(%rbp), %rsi
callq 0x196f0
jmp 0x231ed
leaq -0x9300(%rbp), %rdi
callq 0xcf470
leaq -0x9301(%rbp), %rdi
callq 0x54dd0
movl $0x1, %edi
callq 0x161b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
jmp 0x23241
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x7fc0(%rbp)
movl %eax, -0x7fc4(%rbp)
leaq -0x9300(%rbp), %rdi
callq 0xcf470
leaq -0x9301(%rbp), %rdi
callq 0x54dd0
jmp 0x232e8
xorl %edi, %edi
callq 0x16140
jmp 0x2325b
movl $0x1, %edi
callq 0x16140
jmp 0x23267
movl $0x2, %edi
callq 0x16140
jmp 0x23273
leaq -0x4cea(%rip), %rsi     # 0x1e590
leaq -0x9310(%rbp), %rdi
leaq -0x5fc0(%rbp), %rdx
leaq -0x5fc4(%rbp), %rcx
leaq -0x7fb0(%rbp), %r8
leaq -0x7fb4(%rbp), %r9
callq 0x24fd0
jmp 0x232a4
leaq -0x9208(%rbp), %rdi
movq %rdi, -0x9668(%rbp)
leaq -0x9310(%rbp), %rsi
movq %rsi, -0x9670(%rbp)
callq 0x250b0
movq -0x9670(%rbp), %rdi
callq 0x24830
movq -0x9668(%rbp), %rdi
callq 0xd2100
jmp 0x232df
jmp 0x232e1
xorl %edi, %edi
callq 0x161b0
leaq -0x9208(%rbp), %rdi
callq 0x24830
leaq -0x5fc0(%rbp), %rax
movq %rax, -0x9680(%rbp)
addq $0x5fa0, %rax           # imm = 0x5FA0
movq %rax, -0x9678(%rbp)
movq -0x9678(%rbp), %rdi
addq $-0x60, %rdi
movq %rdi, -0x9688(%rbp)
callq 0x250f0
movq -0x9680(%rbp), %rcx
movq -0x9688(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x9678(%rbp)
jne 0x2330f
jmp 0x23342
movq -0x7fc0(%rbp), %rdi
callq 0xfeff0
movq %rax, %rdi
callq 0x24e50
nopw %cs:(%rax,%rax)