// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x86c8, %rsp           # imm = 0x86C8
movq %rsi, 0x58(%rsp)
movl %edi, 0x30(%rsp)
pushq $0x50
popq %rax
leaq (%rsp,%rax), %rcx
addq $0x2720, %rcx           # imm = 0x2720
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
addq $0x60, %rax
cmpq $0x5ff0, %rax           # imm = 0x5FF0
jne 0x1b38b
andl $0x0, 0x8(%rsp)
andl $0x0, 0xc(%rsp)
cmpl $0x2, 0x30(%rsp)
jge 0x1b3c7
pushq $0x1
popq %rdi
callq 0x18ba7
movq $0x0, 0x108(%rsp)
pushq $0x1
popq %r13
leaq 0xc0(%rsp), %rbx
pushq $0xa
popq %rbp
movl %r13d, 0x100(%rsp)
cmpl 0x30(%rsp), %r13d
jge 0x1c1f6
movl %r13d, %r15d
movslq %r13d, %r14
movq 0x58(%rsp), %rax
movq (%rax,%r14,8), %r12
movb (%r12), %r13b
cmpb $0x2d, %r13b
jne 0x1b422
cmpb $0x68, 0x1(%r12)
jne 0x1b422
cmpb $0x0, 0x2(%r12)
je 0x1c1ef
movq %r12, %rdi
leaq 0xbef78(%rip), %rsi     # 0xda3a4
callq 0x15650
testl %eax, %eax
je 0x1c1ef
cmpb $0x2d, %r13b
jne 0x1b453
cmpb $0x73, 0x1(%r12)
jne 0x1b453
cmpb $0x0, 0x2(%r12)
je 0x1b63c
movq %r12, %rdi
leaq 0xbfb35(%rip), %rsi     # 0xdaf92
callq 0x15650
testl %eax, %eax
je 0x1b63c
cmpb $0x2d, %r13b
jne 0x1b484
cmpb $0x67, 0x1(%r12)
jne 0x1b484
cmpb $0x0, 0x2(%r12)
je 0x1b8ab
movq %r12, %rdi
leaq 0xbfbd4(%rip), %rsi     # 0xdb062
callq 0x15650
testl %eax, %eax
je 0x1b8ab
cmpb $0x2d, %r13b
jne 0x1b4b5
cmpb $0x74, 0x1(%r12)
jne 0x1b4b5
cmpb $0x0, 0x2(%r12)
je 0x1bcf1
movq %r12, %rdi
leaq 0xbfc67(%rip), %rsi     # 0xdb126
callq 0x15650
testl %eax, %eax
je 0x1bcf1
cmpb $0x2d, %r13b
jne 0x1b4e6
cmpb $0x70, 0x1(%r12)
jne 0x1b4e6
cmpb $0x0, 0x2(%r12)
je 0x1c143
movq %r12, %rdi
leaq 0xbfc40(%rip), %rsi     # 0xdb130
callq 0x15650
testl %eax, %eax
je 0x1c143
movq %r12, %rdi
leaq 0xbfc34(%rip), %rsi     # 0xdb13b
callq 0x15650
testl %eax, %eax
je 0x1c196
movq %r12, %rdi
leaq 0xbfc2e(%rip), %rsi     # 0xdb14c
callq 0x15650
testl %eax, %eax
je 0x1c19f
movq %r12, %rdi
leaq 0xbfc26(%rip), %rsi     # 0xdb15b
callq 0x15650
testl %eax, %eax
je 0x1c1a8
movq %r12, %rdi
leaq 0xbfc20(%rip), %rsi     # 0xdb16c
callq 0x15650
testl %eax, %eax
je 0x1c1b8
cmpb $0x2d, %r13b
jne 0x1b573
cmpb $0x64, 0x1(%r12)
jne 0x1b573
cmpb $0x0, 0x2(%r12)
je 0x1c1c8
movq %r12, %rdi
leaq 0xbfc00(%rip), %rsi     # 0xdb17d
callq 0x15650
testl %eax, %eax
je 0x1c1c8
movq %r12, %rdi
leaq 0xbfbf5(%rip), %rsi     # 0xdb189
callq 0x15650
testl %eax, %eax
je 0x1c1d1
movq %r12, %rdi
leaq 0xbfbe9(%rip), %rsi     # 0xdb194
callq 0x15650
testl %eax, %eax
je 0x1c1da
movq %r12, %rdi
leaq 0xbfbd9(%rip), %rsi     # 0xdb19b
callq 0x15650
testl %eax, %eax
je 0x1c1e3
cmpb $0x2d, %r13b
jne 0x1b5e5
cmpb $0x76, 0x1(%r12)
jne 0x1b5e5
cmpb $0x0, 0x2(%r12)
je 0x1b5fc
movq %r12, %rdi
leaq 0xbed01(%rip), %rsi     # 0xda2f0
callq 0x15650
testl %eax, %eax
jne 0x1cb9d
leaq 0x700(%rsp), %r14
movq %r14, %rdi
leaq 0xbfb96(%rip), %rsi     # 0xdb1a4
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %r14, %rsi
callq 0x1861f
movl %r15d, %r13d
movq %r14, %rdi
callq 0xa7730
movl $0x1, 0x107e59(%rip)    # 0x123490
jmp 0x1c18e
incl %r15d
cmpl 0x30(%rsp), %r15d
je 0x1c271
leaq 0x10(%rsp), %r12
movq %r12, %rdi
leaq 0xbf968(%rip), %rsi     # 0xdafc1
leaq 0x38(%rsp), %r13
movq %r13, %rdx
callq 0x1dcb8
movq %r13, %rdi
movq %r12, %rsi
pushq $0x10
popq %r12
movl %r12d, %edx
callq 0x1e24c
leaq 0x80(%rsp), %rdi
leaq 0xbf98f(%rip), %rsi     # 0xdb016
movl %r12d, %edx
callq 0x1dd56
movq %rbx, %rbp
movslq %r15d, %rax
movq 0x58(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0xa0(%rsp), %r12
movq %r12, %rdi
leaq 0x60(%rsp), %rbx
movq %rbx, %rdx
callq 0x1dcb8
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
movq %r13, %rdx
xorl %ecx, %ecx
callq 0x1e2ad
testb %al, %al
je 0x1c2d2
movl %r15d, 0x104(%rsp)
movq 0x60(%rsp), %r12
movq 0x68(%rsp), %rbx
movq %rbx, %r13
subq %r12, %r13
je 0x1b711
movq %r13, %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
addq $-0x5, %rax
cmpq $-0x3, %rax
ja 0x1b711
leaq 0x18(%r12), %rax
jmp 0x1b719
leaq (%r12,%r13), %rax
addq $-0x48, %rax
movq 0x8(%rax), %rdi
subq (%rax), %rdi
incq %rdi
cmpb $0x0, 0x10(%rax)
pushq $0x1
popq %rax
cmoveq %rax, %rdi
callq 0x2c690
movq %rax, %r14
cmpq %rbx, %r12
je 0x1b756
movq %r13, %rax
cqto
pushq $0x18
popq %rcx
idivq %rcx
addq $-0x5, %rax
cmpq $-0x3, %rax
ja 0x1b756
addq $0x18, %r12
jmp 0x1b75d
addq %r13, %r12
addq $-0x48, %r12
movl 0x104(%rsp), %r13d
movq %rbp, %rbx
movq %rbp, %rdi
movq %r12, %rsi
callq 0x2aafa
pushq $0xa
popq %rbp
movq 0xc0(%rsp), %rsi
movq %r14, %rdi
callq 0x15680
movq %rbx, %rdi
callq 0xa7730
movslq 0x8(%rsp), %rax
imulq $0x60, %rax, %rax
movq %r14, 0x2720(%rsp,%rax)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1b7c9
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x6, %rax
cmpq $-0x4, %rax
ja 0x1b7c9
addq $0x30, %rsi
jmp 0x1b7d0
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0x80(%rsp), %r14
movq %rbx, %rdi
callq 0x2aafa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movl %eax, 0x273c(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
xorps %xmm0, %xmm0
movaps %xmm0, 0xd0(%rsp)
movaps %xmm0, 0xc0(%rsp)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1b841
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x7, %rax
cmpq $-0x5, %rax
ja 0x1b841
addq $0x48, %rsi
jmp 0x1b848
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0x110(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x1e2ad
testb %al, %al
je 0x1b994
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rcx
subq %rsi, %rcx
je 0x1b9e3
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x5, %rax
cmpq $-0x3, %rax
ja 0x1b9e3
addq $0x18, %rsi
jmp 0x1b9ea
movl %r15d, %r13d
incl %r13d
cmpl 0x30(%rsp), %r13d
je 0x1c3ab
leaq 0x10(%rsp), %rdi
leaq 0xbf7a5(%rip), %rsi     # 0xdb06d
pushq $0x10
popq %r15
movl %r15d, %edx
callq 0x1dd56
leaq 0x38(%rsp), %rdi
leaq 0xbf7b5(%rip), %rsi     # 0xdb095
movl %r15d, %edx
callq 0x1dd56
movslq %r13d, %rax
movq 0x58(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0x80(%rsp), %r15
movq %r15, %rdi
leaq 0xa0(%rsp), %r12
movq %r12, %rdx
callq 0x1dcb8
xorps %xmm0, %xmm0
movaps %xmm0, 0xb0(%rsp)
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movq %r15, %rdi
movq %r12, %rsi
leaq 0x10(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e2ad
testb %al, %al
je 0x1bd38
movslq 0xc(%rsp), %rax
shlq $0x5, %rax
movw $0x2, 0x740(%rsp,%rax)
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rcx
subq %rsi, %rcx
je 0x1be31
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x7, %rax
cmpq $-0x5, %rax
ja 0x1be31
addq $0x48, %rsi
jmp 0x1be38
leaq 0x110(%rsp), %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movl %eax, 0x2740(%rsp,%rcx)
leaq 0x110(%rsp), %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rdx
movl %eax, 0x2744(%rsp,%rdx)
leaq 0xe0(%rsp), %r15
jmp 0x1ba8e
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movl %eax, 0x2740(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movq 0xc0(%rsp), %rsi
movq 0xc8(%rsp), %rcx
subq %rsi, %rcx
je 0x1ba4e
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x6, %rax
cmpq $-0x4, %rax
ja 0x1ba4e
addq $0x30, %rsi
jmp 0x1ba55
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movl %eax, 0x2744(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rax
movw $0x2, 0x2728(%rsp,%rax)
movq %r15, %rdi
leaq 0x60(%rsp), %rsi
pushq $0x6
popq %rdx
callq 0x1e31a
movq 0xe0(%rsp), %rdi
callq 0x158c0
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movl %eax, 0x272c(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bafe
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0xb, %rax
cmpq $-0x9, %rax
ja 0x1bafe
addq $0xa8, %rsi
jmp 0x1bb05
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
rolw $0x8, %ax
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movw %ax, 0x272a(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movslq 0x8(%rsp), %rax
imulq $0x60, %rax, %rax
movb $-0x1, 0x2738(%rsp,%rax)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bb79
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x8, %rax
cmpq $-0x6, %rax
ja 0x1bb79
addq $0x60, %rsi
jmp 0x1bb80
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
cltq
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movq %rax, 0x2748(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bbe1
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x9, %rax
cmpq $-0x7, %rax
ja 0x1bbe1
addq $0x78, %rsi
jmp 0x1bbe8
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
cltq
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movq %rax, 0x2750(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bc4c
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0xc, %rax
cmpq $-0xa, %rax
ja 0x1bc4c
addq $0xc0, %rsi
jmp 0x1bc53
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movslq 0x8(%rsp), %rax
imulq $0x60, %rax, %rax
leaq (%rsp,%rax), %rdi
addq $0x2760, %rdi           # imm = 0x2760
movq %r15, %rsi
callq 0xa7780
movq %r15, %rdi
callq 0xa7730
movl 0x8(%rsp), %ecx
movslq %ecx, %rax
imulq $0x60, %rax, %rsi
movl 0x273c(%rsp,%rsi), %edi
testq %rdi, %rdi
je 0x1bcbc
imulq $0xf4240, 0x2748(%rsp,%rsi), %rax # imm = 0xF4240
cqto
idivq %rdi
movq %rax, 0x2758(%rsp,%rsi)
jmp 0x1bde3
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bda1
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x8, %rax
cmpq $-0x6, %rax
ja 0x1bda1
addq $0x60, %rsi
jmp 0x1bda8
movl %r15d, %r13d
incl %r13d
cmpl 0x30(%rsp), %r13d
je 0x1c40c
movslq %r13d, %rax
movq 0x58(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0x10(%rsp), %r14
movq %r14, %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
movq %r14, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movl %eax, 0x100(%rsp)
jmp 0x1c186
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0x38(%rsp), %rdx
xorl %ecx, %ecx
callq 0x1e2ad
testb %al, %al
je 0x1ca39
movslq 0xc(%rsp), %rax
shlq $0x5, %rax
movw $0x2, 0x740(%rsp,%rax)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1bf2b
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x7, %rax
cmpq $-0x5, %rax
ja 0x1bf2b
addq $0x48, %rsi
jmp 0x1bf32
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x2aafa
movq %r15, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
cltq
movslq 0x8(%rsp), %rcx
imulq $0x60, %rcx, %rcx
movq %rax, 0x2758(%rsp,%rcx)
movq %r15, %rdi
callq 0xa7730
movl 0x8(%rsp), %ecx
incl %ecx
movl %ecx, 0x8(%rsp)
leaq 0x110(%rsp), %rdi
callq 0xa7730
movq %rbx, %rdi
callq 0x1e770
leaq 0x60(%rsp), %rdi
callq 0x1e770
leaq 0xa0(%rsp), %rdi
callq 0xa7730
movq %r14, %rdi
callq 0x1deb4
leaq 0x38(%rsp), %rdi
callq 0x1deb4
leaq 0x10(%rsp), %rdi
jmp 0x1c189
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0x80(%rsp), %r14
movq %rbx, %rdi
callq 0x2aafa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
rolw $0x8, %ax
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movw %ax, 0x742(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
movslq 0xc(%rsp), %rax
shlq $0x5, %rax
andl $0x0, 0x744(%rsp,%rax)
movq %rbx, %rdi
leaq 0xa0(%rsp), %r15
movq %r15, %rsi
pushq $0x2
popq %rdx
callq 0x1e31a
movq 0xc0(%rsp), %rdi
callq 0x158c0
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movl %eax, 0x750(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
movq %rbx, %rdi
movq %r15, %rsi
pushq $0x1
popq %rdx
callq 0x1e31a
movq 0xc0(%rsp), %rdi
callq 0x158c0
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movl %eax, 0x754(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
movq 0xa0(%rsp), %rsi
movq 0xa8(%rsp), %rcx
subq %rsi, %rcx
je 0x1bfdb
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x8, %rax
cmpq $-0x6, %rax
ja 0x1bfdb
addq $0x60, %rsi
jmp 0x1bfe2
addq %rcx, %rsi
addq $-0x48, %rsi
leaq 0x80(%rsp), %r14
movq %rbx, %rdi
callq 0x2aafa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
rolw $0x8, %ax
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movw %ax, 0x742(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
movslq 0xc(%rsp), %rax
shlq $0x5, %rax
andl $0x0, 0x744(%rsp,%rax)
movq %rbx, %rdi
leaq 0x60(%rsp), %rsi
pushq $0x2
popq %rdx
callq 0x1e31a
movq 0xc0(%rsp), %rdi
callq 0x158c0
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movl %eax, 0x750(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rcx
subq %rsi, %rcx
je 0x1c016
movq %rcx, %rax
cqto
pushq $0x18
popq %rdi
idivq %rdi
addq $-0x8, %rax
cmpq $-0x6, %rax
ja 0x1c016
addq $0x60, %rsi
jmp 0x1c01d
addq %rcx, %rsi
addq $-0x48, %rsi
movq %rbx, %rdi
callq 0x2aafa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
cltq
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movq %rax, 0x758(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
jmp 0x1c10a
addq %rcx, %rsi
addq $-0x48, %rsi
movq %rbx, %rdi
callq 0x2aafa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
cltq
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movq %rax, 0x758(%rsp,%rcx)
movq %rbx, %rdi
callq 0xa7730
leaq 0x110(%rsp), %r12
movq %r12, %rdi
callq 0x154d0
cmpl $-0x1, %eax
je 0x1caed
movq (%r12), %r12
testq %r12, %r12
je 0x1c0fd
movq 0x18(%r12), %rax
testq %rax, %rax
je 0x1c065
cmpw $0x2, (%rax)
jne 0x1c065
movq 0x8(%r12), %rsi
leaq 0x720(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
movq %r14, %rsi
callq 0x1861f
movq %r14, %rdi
callq 0xa7730
movq 0x8(%r12), %r14
movq %rbx, %rdi
leaq 0x60(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x1e31a
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1e38f
movl %eax, %r14d
movq %rbx, %rdi
callq 0xa7730
testb %r14b, %r14b
leaq 0x80(%rsp), %r14
je 0x1c065
movq 0x18(%r12), %rax
movl 0x4(%rax), %eax
movslq 0xc(%rsp), %rcx
shlq $0x5, %rcx
movl %eax, 0x754(%rsp,%rcx)
movq 0x110(%rsp), %rdi
callq 0x156a0
incl 0xc(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x1e770
leaq 0xa0(%rsp), %rdi
callq 0x1e770
movq %r14, %rdi
callq 0xa7730
leaq 0x38(%rsp), %rdi
callq 0x1deb4
leaq 0x10(%rsp), %rdi
callq 0x1deb4
jmp 0x1c18e
movl %r15d, %r13d
incl %r13d
cmpl 0x30(%rsp), %r13d
je 0x1cb23
movslq %r13d, %rax
movq 0x58(%rsp), %rcx
movq (%rcx,%rax,8), %rsi
leaq 0x10(%rsp), %r14
movq %r14, %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
movq %r14, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x1e2fd
movq %rax, 0x108(%rsp)
movq %r14, %rdi
callq 0xa7730
incl %r13d
jmp 0x1b3ea
movb $0x1, 0x1078f4(%rip)    # 0x123a91
jmp 0x1c1ea
movb $0x1, 0x1078f1(%rip)    # 0x123a97
jmp 0x1c1ea
movb $0x1, 0x1078e3(%rip)    # 0x123a92
movb $0x0, 0x1078dd(%rip)    # 0x123a93
jmp 0x1c1ea
movb $0x1, %al
movb %al, 0x1078d2(%rip)     # 0x123a92
movb %al, 0x1078cd(%rip)     # 0x123a93
jmp 0x1c1ea
movb $0x1, 0x1078c1(%rip)    # 0x123a90
jmp 0x1c1ea
movb $0x1, 0x1078bc(%rip)    # 0x123a94
jmp 0x1c1ea
movb $0x1, 0x1078b4(%rip)    # 0x123a95
jmp 0x1c1ea
movb $0x1, 0x1078ac(%rip)    # 0x123a96
movl %r15d, %r13d
jmp 0x1c18e
xorl %edi, %edi
callq 0x18ba7
callq 0xaa470
movl %eax, 0x30(%rsp)
cmpl $0x2, 0x10728a(%rip)    # 0x123490
jne 0x1c20f
andl $0x0, 0x107281(%rip)    # 0x123490
cmpb $0x1, 0x10787f(%rip)    # 0x123a95
jne 0x1c22e
movl $0x1, 0x10726e(%rip)    # 0x123490
callq 0x186e9
xorl %edi, %edi
callq 0x151a0
cmpb $0x1, 0x107861(%rip)    # 0x123a96
jne 0x1c35f
leaq 0xbef89(%rip), %rsi     # 0xdb1cb
leaq 0x330(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x330(%rsp), %rsi
callq 0x1861f
leaq 0x330(%rsp), %rdi
jmp 0x1cb93
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x1dcb8
leaq 0xbed0e(%rip), %rsi     # 0xdaf9b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1de90
leaq 0xbed16(%rip), %rdx     # 0xdafb9
leaq 0x460(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1ddbc
pushq $0x2
popq %rdi
leaq 0x460(%rsp), %rsi
callq 0x1861f
leaq 0x460(%rsp), %rdi
jmp 0x1cb7f
movq 0x58(%rsp), %rax
movq (%rax,%r14,8), %rsi
leaq 0xe0(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x1dcb8
leaq 0xbed2e(%rip), %rsi     # 0xdb022
leaq 0x110(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x1de90
leaq 0xc43de(%rip), %rdx     # 0xe06ee
leaq 0xc0(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x1ddbc
leaq 0x440(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x1e339
pushq $0x2
popq %rdi
leaq 0x440(%rsp), %rsi
callq 0x1861f
leaq 0x440(%rsp), %rdi
jmp 0x1cac1
movl 0xc(%rsp), %ecx
movl 0x8(%rsp), %eax
movl %eax, %edx
addl %ecx, %edx
movl %edx, 0x58(%rsp)
jne 0x1c46d
leaq 0xbee6f(%rip), %rsi     # 0xdb1eb
leaq 0x310(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x310(%rsp), %rsi
callq 0x1861f
leaq 0x310(%rsp), %rdi
jmp 0x1cb93
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x1dcb8
leaq 0xbebd4(%rip), %rsi     # 0xdaf9b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1de90
leaq 0xbebdc(%rip), %rdx     # 0xdafb9
leaq 0x408(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1ddbc
pushq $0x2
popq %rdi
leaq 0x408(%rsp), %rsi
callq 0x1861f
leaq 0x408(%rsp), %rdi
jmp 0x1cb7f
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x1dcb8
leaq 0xbeb73(%rip), %rsi     # 0xdaf9b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1de90
leaq 0xbeb7b(%rip), %rdx     # 0xdafb9
leaq 0x390(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1ddbc
pushq $0x2
popq %rdi
leaq 0x390(%rsp), %rsi
callq 0x1861f
leaq 0x390(%rsp), %rdi
jmp 0x1cb7f
testl %eax, %eax
jle 0x1cbff
leaq 0x2760(%rsp), %r14
xorl %r15d, %r15d
leaq 0x10(%rsp), %r12
leaq 0x38(%rsp), %rbx
cltq
cmpq %rax, %r15
jge 0x1cbfb
movq %r12, %rdi
movl %r15d, %esi
callq 0x1dcfc
leaq 0x6e0(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbed67(%rip), %rsi     # 0xdb219
movq %r12, %rdx
callq 0x1de90
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movq -0x40(%r14), %rsi
movq %r12, %rdi
movq %rbx, %rdx
callq 0x1dcb8
leaq 0x6c0(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbed38(%rip), %rsi     # 0xdb22d
movq %r12, %rdx
callq 0x1de90
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movl -0x34(%r14), %esi
leaq 0x80(%rsp), %rbp
movq %rbp, %rdi
callq 0x185bc
movq %rbx, %rdi
leaq 0xbed0f(%rip), %rsi     # 0xdb244
movq %rbp, %rdx
callq 0x1de90
movq %r12, %rdi
movq %rbx, %rsi
leaq 0xc4046(%rip), %rdx     # 0xe0590
callq 0x1ddbc
movzwl -0x36(%r14), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0xa0(%rsp), %r13
movq %r13, %rdi
callq 0x1dcfc
leaq 0x6a0(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x1df83
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
leaq 0xa0(%rsp), %r13
movq %r13, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movq %rbx, %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0xa7730
movl -0x24(%r14), %esi
testq %rsi, %rsi
je 0x1c758
leaq 0xc0(%rsp), %r13
movq %r13, %rdi
callq 0x19170
leaq 0x60(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbec6f(%rip), %rsi     # 0xdb25b
movq %r13, %rdx
callq 0x1de90
leaq 0xa0(%rsp), %rdi
movq %rbp, %rsi
leaq 0xbec6c(%rip), %rdx     # 0xdb272
callq 0x1ddbc
movl -0x20(%r14), %esi
leaq 0x110(%rsp), %r13
movq %r13, %rdi
callq 0x1e3a5
leaq 0x80(%rsp), %rbp
movq %rbp, %rdi
leaq 0xa0(%rsp), %rsi
movq %r13, %rdx
callq 0x1df83
movq %rbx, %rdi
movq %rbp, %rsi
leaq 0xbdb49(%rip), %rdx     # 0xda190
callq 0x1ddbc
movl -0x1c(%r14), %esi
leaq 0xe0(%rsp), %r13
movq %r13, %rdi
callq 0x1e3a5
movq %r12, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x1df83
leaq 0x680(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
leaq 0xbec03(%rip), %rdx     # 0xdb286
callq 0x1ddbc
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
movq %r13, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
leaq 0xe0(%rsp), %rdi
callq 0xa7730
movq %rbx, %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0xa7730
leaq 0x110(%rsp), %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
callq 0xa7730
leaq 0x60(%rsp), %rdi
callq 0xa7730
leaq 0xc0(%rsp), %rdi
callq 0xa7730
movq -0x18(%r14), %rsi
testq %rsi, %rsi
jle 0x1c844
movq %rbx, %rdi
callq 0x19170
movq %r12, %rdi
leaq 0xbeb79(%rip), %rsi     # 0xdb28d
movq %rbx, %rdx
callq 0x1de90
leaq 0x660(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
leaq 0xbeb73(%rip), %rdx     # 0xdb2a4
callq 0x1ddbc
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
movq %r13, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movq %rbx, %rdi
jmp 0x1c8e4
movl -0x20(%r14), %esi
movq %r13, %rdi
callq 0x1e3a5
leaq 0x80(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbebd3(%rip), %rsi     # 0xdb349
movq %r13, %rdx
callq 0x1de90
movq %rbx, %rdi
movq %rbp, %rsi
leaq 0xbda05(%rip), %rdx     # 0xda190
callq 0x1ddbc
movl -0x1c(%r14), %esi
leaq 0x60(%rsp), %rbp
movq %rbp, %rdi
callq 0x1e3a5
movq %r12, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x1df83
leaq 0x5c0(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
leaq 0xbeac2(%rip), %rdx     # 0xdb286
callq 0x1ddbc
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
leaq 0x60(%rsp), %rdi
callq 0xa7730
movq %rbx, %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
callq 0xa7730
cmpb $0x1, 0x107281(%rip)    # 0x123a97
jne 0x1c873
leaq 0x5a0(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbeada(%rip), %rsi     # 0xdb304
movq %r12, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
jmp 0x1c970
cmpb $0x1, 0x10724c(%rip)    # 0x123a97
jne 0x1c8bd
leaq 0x640(%rsp), %r13
movq %r13, %rdi
leaq 0xbea4e(%rip), %rsi     # 0xdb2ad
movq %r12, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
jmp 0x1c8e1
movq -0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x19170
movq %r12, %rdi
leaq 0xbea9b(%rip), %rsi     # 0xdb324
movq %rbx, %rdx
callq 0x1de90
leaq 0x580(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
leaq 0xbea95(%rip), %rdx     # 0xdb33b
callq 0x1ddbc
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
jmp 0x1c960
leaq 0x620(%rsp), %r13
movq %r13, %rdi
leaq 0xbea04(%rip), %rsi     # 0xdb2d3
movq %r12, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
movq %r13, %rdi
callq 0xa7730
cmpb $0x1, 0x1071a7(%rip)    # 0x123a97
jne 0x1c91b
leaq 0x600(%rsp), %r13
movq %r13, %rdi
leaq 0xbea00(%rip), %rsi     # 0xdb304
movq %r12, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
movq %r13, %rdi
jmp 0x1c970
movq -0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x19170
movq %r12, %rdi
leaq 0xbe9f3(%rip), %rsi     # 0xdb324
movq %rbx, %rdx
callq 0x1de90
leaq 0x5e0(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
leaq 0xbe9ed(%rip), %rdx     # 0xdb33b
callq 0x1ddbc
xorl %edi, %edi
movq %r13, %rsi
callq 0x1861f
movq %r13, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movq %rbx, %rdi
callq 0xa7730
movq -0x10(%r14), %rsi
testq %rsi, %rsi
jle 0x1c9d1
movq %rbx, %rdi
callq 0x19170
movq %r12, %rdi
leaq 0xbe9eb(%rip), %rsi     # 0xdb37b
movq %rbx, %rdx
callq 0x1de90
leaq 0x560(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
leaq 0xbe8f7(%rip), %rdx     # 0xdb2a4
callq 0x1ddbc
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
movq %r12, %rdi
callq 0xa7730
movq %rbx, %rdi
jmp 0x1c9f8
leaq 0x540(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbe9af(%rip), %rsi     # 0xdb392
movq %r12, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
leaq 0x520(%rsp), %rbp
movq %rbp, %rdi
leaq 0xbe9a3(%rip), %rsi     # 0xdb3b2
movq %r14, %rdx
callq 0x1dddb
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
incq %r15
movl 0x8(%rsp), %eax
addq $0x60, %r14
jmp 0x1c48a
movq 0x58(%rsp), %rax
movq (%rax,%r14,8), %rsi
leaq 0xe0(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x1dcb8
leaq 0xbe689(%rip), %rsi     # 0xdb0e4
leaq 0x110(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x1de90
leaq 0xc3c77(%rip), %rdx     # 0xe06ee
leaq 0xc0(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x1ddbc
leaq 0x3c8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0x1e339
pushq $0x2
popq %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x1861f
leaq 0x3c8(%rsp), %rdi
callq 0xa7730
leaq 0xc0(%rsp), %rdi
callq 0xa7730
leaq 0x110(%rsp), %rdi
callq 0xa7730
leaq 0xe0(%rsp), %rdi
jmp 0x1cb93
leaq 0xbe5cb(%rip), %rsi     # 0xdb0bf
leaq 0x3e8(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x3e8(%rsp), %rsi
callq 0x1861f
leaq 0x3e8(%rsp), %rdi
jmp 0x1cb93
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x1dcb8
leaq 0xbe45c(%rip), %rsi     # 0xdaf9b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1de90
leaq 0xbe464(%rip), %rdx     # 0xdafb9
leaq 0x370(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1ddbc
pushq $0x2
popq %rdi
leaq 0x370(%rsp), %rsi
callq 0x1861f
leaq 0x370(%rsp), %rdi
callq 0xa7730
leaq 0x10(%rsp), %rdi
callq 0xa7730
leaq 0x38(%rsp), %rdi
callq 0xa7730
jmp 0x1dbe1
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movq %r12, %rsi
callq 0x1dcb8
leaq 0xbe5fe(%rip), %rsi     # 0xdb1b7
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1de90
leaq 0xbe5f0(%rip), %rdx     # 0xdb1bf
leaq 0x350(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1ddbc
pushq $0x2
popq %rdi
leaq 0x350(%rsp), %rsi
callq 0x1861f
leaq 0x350(%rsp), %rdi
jmp 0x1cb7f
movl 0xc(%rsp), %ecx
testl %ecx, %ecx
jle 0x1cde2
leaq 0x758(%rsp), %r15
xorl %ebx, %ebx
leaq 0x10(%rsp), %r14
leaq 0x38(%rsp), %r13
leaq 0x4c0(%rsp), %rbp
movslq %ecx, %rax
cmpq %rax, %rbx
jge 0x1cde2
movq %r14, %rdi
movl %ebx, %esi
callq 0x1dcfc
leaq 0x500(%rsp), %r12
movq %r12, %rdi
leaq 0xbe77e(%rip), %rsi     # 0xdb3c9
movq %r14, %rdx
callq 0x1de90
xorl %edi, %edi
movq %r12, %rsi
callq 0x1861f
movq %r12, %rdi
callq 0xa7730
movq %r14, %rdi
callq 0xa7730
movl -0x4(%r15), %esi
movq %r14, %rdi
callq 0x185bc
leaq 0x4e0(%rsp), %r12
movq %r12, %rdi
leaq 0xbe754(%rip), %rsi     # 0xdb3df
movq %r14, %rdx
callq 0x1de90
xorl %edi, %edi
movq %r12, %rsi
callq 0x1861f
movq %r12, %rdi
callq 0xa7730
movq %r14, %rdi
callq 0xa7730
movl -0x8(%r15), %esi
leaq 0x80(%rsp), %r12
movq %r12, %rdi
callq 0x185bc
movq %r13, %rdi
leaq 0xbe579(%rip), %rsi     # 0xdb244
movq %r12, %rdx
callq 0x1de90
movq %r14, %rdi
movq %r13, %rsi
leaq 0xc38b0(%rip), %rdx     # 0xe0590
callq 0x1ddbc
movzwl -0x16(%r15), %eax
rolw $0x8, %ax
movzwl %ax, %esi
leaq 0xa0(%rsp), %r12
movq %r12, %rdi
callq 0x1dcfc
movq %rbp, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x1df83
xorl %edi, %edi
movq %rbp, %rsi
callq 0x1861f
movq %rbp, %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
callq 0xa7730
movq %r14, %rdi
callq 0xa7730
movq %r13, %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0xa7730
movq (%r15), %rsi
testq %rsi, %rsi
jle 0x1cda6
movq %r13, %rdi
callq 0x1df10
movq %r14, %rdi
leaq 0xbe528(%rip), %rsi     # 0xdb28d
movq %r13, %rdx
callq 0x1de90
leaq 0x4a0(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
leaq 0xbe522(%rip), %rdx     # 0xdb2a4
callq 0x1ddbc
xorl %edi, %edi
movq %r12, %rsi
callq 0x1861f
movq %r12, %rdi
callq 0xa7730
movq %r14, %rdi
callq 0xa7730
movq %r13, %rdi
jmp 0x1cdcd
leaq 0x480(%rsp), %r12
movq %r12, %rdi
leaq 0xbe63e(%rip), %rsi     # 0xdb3f6
movq %r14, %rdx
callq 0x1dcb8
xorl %edi, %edi
movq %r12, %rsi
callq 0x1861f
movq %r12, %rdi
callq 0xa7730
incq %rbx
movl 0xc(%rsp), %ecx
addq $0x20, %r15
jmp 0x1cc23
movl 0x58(%rsp), %eax
cmpl %eax, 0x30(%rsp)
jge 0x1ce22
leaq 0xbe627(%rip), %rsi     # 0xdb41a
leaq 0x2f0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x1
popq %rdi
leaq 0x2f0(%rsp), %rsi
callq 0x1861f
leaq 0x2f0(%rsp), %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
movl 0x100(%rsp), %esi
callq 0x1dcfc
leaq 0xbe636(%rip), %rsi     # 0xdb473
leaq 0x38(%rsp), %rdi
leaq 0x80(%rsp), %rdx
callq 0x1de90
leaq 0xbd33a(%rip), %rdx     # 0xda190
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1ddbc
leaq 0xa0(%rsp), %rdi
movl 0x30(%rsp), %esi
callq 0x1dcfc
leaq 0x2d0(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x1df83
leaq 0x2d0(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x2d0(%rsp), %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
callq 0xa7730
leaq 0x10(%rsp), %rdi
callq 0xa7730
leaq 0x38(%rsp), %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0xa7730
cmpl $0x0, 0x108(%rsp)
jne 0x1cff0
leaq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0x1dcfc
leaq 0xbe618(%rip), %rsi     # 0xdb513
leaq 0x1f0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1de90
leaq 0x1f0(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x1f0(%rsp), %rdi
callq 0xa7730
leaq 0x10(%rsp), %rdi
callq 0xa7730
leaq -0x3e82(%rip), %rbx     # 0x190b8
pushq $0x3
popq %rdi
movq %rbx, %rsi
callq 0x15580
pushq $0x2
popq %rdi
movq %rbx, %rsi
callq 0x15580
pushq $0xf
popq %rdi
movq %rbx, %rsi
callq 0x15580
pushq $0x1
popq %rdi
movq %rbx, %rsi
callq 0x15580
pushq $0xd
popq %rdi
movq %rbx, %rsi
callq 0x15580
pushq $0x9
popq %rdi
movq %rbx, %rsi
callq 0x15580
callq 0x18697
andq $0x0, 0x10(%rsp)
cmpb $0x0, 0x106b02(%rip)    # 0x123a90
jne 0x1d0b3
leaq -0x1ec0(%rip), %rsi     # 0x1b0db
leaq 0x38(%rsp), %rdi
leaq 0x2720(%rsp), %rdx
leaq 0x8(%rsp), %rcx
leaq 0x740(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0x1e3e4
cmpq $0x0, 0x10(%rsp)
jne 0x1d299
leaq 0x38(%rsp), %rdi
movq (%rdi), %rax
movq %rax, 0x10(%rsp)
andq $0x0, (%rdi)
callq 0x1e19a
leaq 0x10(%rsp), %rdi
callq 0xaa3e0
jmp 0x1c227
leaq 0x10(%rsp), %rdi
movq 0x108(%rsp), %rsi
callq 0x1dcfc
leaq 0xbe488(%rip), %rsi     # 0xdb491
leaq 0x2b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1de90
leaq 0x2b0(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x2b0(%rsp), %rdi
callq 0xa7730
leaq 0x10(%rsp), %rdi
callq 0xa7730
callq 0x15610
movq %rax, %rbx
andl $0x0, (%rax)
callq 0x152c0
xorl %edi, %edi
movl %eax, %esi
callq 0x15250
cmpl $-0x1, %eax
jne 0x1d068
cmpl $0x0, (%rbx)
jne 0x1d1a0
leaq 0x10(%rsp), %rdi
movl %eax, %esi
callq 0x1dcfc
leaq 0xbe458(%rip), %rsi     # 0xdb4d3
leaq 0x270(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1de90
leaq 0x270(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x270(%rsp), %rdi
callq 0xa7730
leaq 0x10(%rsp), %rdi
jmp 0x1d1d1
callq 0x15780
testl %eax, %eax
jne 0x1d25d
callq 0x15120
testl %eax, %eax
jns 0x1d0ff
leaq 0xbe480(%rip), %rsi     # 0xdb550
leaq 0x190(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x190(%rsp), %rsi
callq 0x1861f
leaq 0x190(%rsp), %rdi
callq 0xa7730
leaq 0xbd08a(%rip), %rdi     # 0xda190
callq 0x15070
testl %eax, %eax
je 0x1d145
leaq 0xbe466(%rip), %rsi     # 0xdb57c
leaq 0x170(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x170(%rsp), %rsi
callq 0x1861f
leaq 0x170(%rsp), %rdi
callq 0xa7730
xorl %edi, %edi
callq 0x15860
callq 0x15780
testl %eax, %eax
jne 0x1d345
xorl %edi, %edi
callq 0x15140
pushq $0x1
popq %rdi
callq 0x15140
pushq $0x2
popq %rdi
callq 0x15140
leaq -0x209c(%rip), %rsi     # 0x1b0db
leaq 0x38(%rsp), %rdi
leaq 0x2720(%rsp), %rdx
leaq 0x8(%rsp), %rcx
leaq 0x740(%rsp), %r8
leaq 0xc(%rsp), %r9
callq 0x1e3e4
jmp 0x1cfbf
leaq 0xbe30a(%rip), %rsi     # 0xdb4b1
leaq 0x290(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x290(%rsp), %rsi
callq 0x1861f
leaq 0x290(%rsp), %rdi
callq 0xa7730
andl $0x0, (%rbx)
callq 0x152c0
xorl %edi, %edi
movl %eax, %esi
movq 0x108(%rsp), %rdx
callq 0x15460
cmpl $-0x1, %eax
jne 0x1d1fd
cmpl $0x0, (%rbx)
jne 0x1d2d4
andl $0x0, (%rbx)
callq 0x152c0
xorl %edi, %edi
movl %eax, %esi
callq 0x15250
cmpl $-0x1, %eax
jne 0x1d21c
cmpl $0x0, (%rbx)
jne 0x1d30f
leaq 0x10(%rsp), %rdi
movl %eax, %esi
callq 0x1dcfc
leaq 0xbe2a4(%rip), %rsi     # 0xdb4d3
leaq 0x210(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1de90
leaq 0x210(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x210(%rsp), %rdi
jmp 0x1cf24
jle 0x1d29e
leaq 0xbe2cb(%rip), %rsi     # 0xdb531
leaq 0x1d0(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
leaq 0x1d0(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x1d0(%rsp), %rdi
callq 0xa7730
jmp 0x1c227
callq 0x2c1b0
leaq 0xbe29d(%rip), %rsi     # 0xdb542
leaq 0x1b0(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x1b0(%rsp), %rsi
callq 0x1861f
leaq 0x1b0(%rsp), %rdi
jmp 0x1cb93
leaq 0xbe216(%rip), %rsi     # 0xdb4f1
leaq 0x250(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x250(%rsp), %rsi
callq 0x1861f
leaq 0x250(%rsp), %rdi
callq 0xa7730
jmp 0x1d1fd
leaq 0xbe19b(%rip), %rsi     # 0xdb4b1
leaq 0x230(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x230(%rsp), %rsi
callq 0x1861f
leaq 0x230(%rsp), %rdi
jmp 0x1cf2e
jle 0x1d37c
leaq 0xbe255(%rip), %rsi     # 0xdb5a3
leaq 0x150(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
leaq 0x150(%rsp), %rsi
xorl %edi, %edi
callq 0x1861f
leaq 0x150(%rsp), %rdi
jmp 0x1d28f
leaq 0xbe245(%rip), %rsi     # 0xdb5c8
leaq 0x130(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1dcb8
pushq $0x2
popq %rdi
leaq 0x130(%rsp), %rsi
callq 0x1861f
leaq 0x130(%rsp), %rdi
jmp 0x1cb93
jmp 0x1d487
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
jmp 0x1d442
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
jmp 0x1d442
jmp 0x1d487
jmp 0x1d487
movq %rax, %rbx
leaq 0x230(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
leaq 0x250(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
jmp 0x1d442
movq %rax, %rbx
leaq 0x210(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1dc21
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
jmp 0x1d442
movq %rax, %rbx
leaq 0x1d0(%rsp), %rdi
jmp 0x1d442
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0xa7730
jmp 0x1d48a
jmp 0x1dc21
jmp 0x1d487
jmp 0x1d9f8
jmp 0x1d487
jmp 0x1d487
jmp 0x1d487
jmp 0x1dc21
jmp 0x1d487
movq %rax, %rbx
leaq 0x290(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
leaq 0x270(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1dc21
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x1e19a
jmp 0x1dc24
jmp 0x1d9f8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x2b0(%rsp), %rdi
jmp 0x1d7f2
movq %rax, %rbx
leaq 0x1f0(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1d9f8
jmp 0x1d9f8
jmp 0x1dc21
jmp 0x1dc21
movq %rax, %rbx
leaq 0x350(%rsp), %rdi
jmp 0x1d901
movq %rax, %rbx
leaq 0x620(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
movq %rax, %rbx
leaq 0x640(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
jmp 0x1d95c
movq %rax, %rbx
leaq 0x2d0(%rsp), %rdi
jmp 0x1d79c
movq %rax, %rbx
leaq 0x580(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x5a0(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
jmp 0x1d9a8
movq %rax, %rbx
leaq 0x5e0(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x600(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
jmp 0x1d7a3
movq %rax, %rbx
leaq 0x540(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
movq %rax, %rbx
leaq 0x5c0(%rsp), %rdi
callq 0xa7730
jmp 0x1d5c2
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa7730
jmp 0x1d5d1
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xa7730
jmp 0x1d5e0
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xa7730
jmp 0x1d5ef
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
jmp 0x1d5fc
jmp 0x1dc21
movq %rax, %rbx
leaq 0x480(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
movq %rax, %rbx
leaq 0x660(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
jmp 0x1dc21
jmp 0x1dc21
movq %rax, %rbx
leaq 0x560(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x680(%rsp), %rdi
callq 0xa7730
jmp 0x1d680
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa7730
jmp 0x1d68f
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0xa7730
jmp 0x1d6a1
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xa7730
jmp 0x1d6b0
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xa7730
leaq 0x110(%rsp), %rdi
callq 0xa7730
leaq 0xa0(%rsp), %rdi
callq 0xa7730
leaq 0x60(%rsp), %rdi
callq 0xa7730
leaq 0xc0(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
jmp 0x1d6bd
movq %rax, %rbx
jmp 0x1d6ca
movq %rax, %rbx
jmp 0x1d6d7
movq %rax, %rbx
jmp 0x1d6e1
jmp 0x1dc21
movq %rax, %rbx
leaq 0x4a0(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
jmp 0x1dc21
jmp 0x1d7b5
movq %rax, %rbx
leaq 0x520(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
movq %rax, %rbx
leaq 0x6a0(%rsp), %rdi
jmp 0x1d79c
jmp 0x1d7a3
jmp 0x1d7b5
jmp 0x1d81b
jmp 0x1d85f
jmp 0x1dc21
movq %rax, %rbx
leaq 0x6c0(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1d9f8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x6e0(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1d9f8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x4c0(%rsp), %rdi
callq 0xa7730
jmp 0x1d7a6
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xa7730
jmp 0x1d7b8
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa7730
jmp 0x1d81e
jmp 0x1d81b
jmp 0x1d85f
jmp 0x1dc21
movq %rax, %rbx
leaq 0x4e0(%rsp), %rdi
jmp 0x1d7f2
jmp 0x1d9f8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x500(%rsp), %rdi
callq 0xa7730
jmp 0x1d9fb
jmp 0x1d9f8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x700(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0xa7730
jmp 0x1d862
movq %rdx, %r14
movq %rax, %rbx
leaq 0x3c8(%rsp), %rdi
callq 0xa7730
jmp 0x1d875
movq %rax, %rbx
leaq 0x2f0(%rsp), %rdi
jmp 0x1da00
movq %rax, %rbx
leaq 0x370(%rsp), %rdi
jmp 0x1d901
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
jmp 0x1da00
movq %rdx, %r14
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xa7730
jmp 0x1d8bb
jmp 0x1dc21
movq %rax, %rbx
leaq 0x390(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1dc21
movq %rdx, %r14
movq %rax, %rbx
leaq 0x440(%rsp), %rdi
callq 0xa7730
jmp 0x1d8e7
movq %rdx, %r14
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0xa7730
jmp 0x1d921
movq %rax, %rbx
leaq 0x408(%rsp), %rdi
jmp 0x1d901
jmp 0x1d95c
jmp 0x1d9a8
movq %rdx, %r14
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xa7730
jmp 0x1d94d
movq %rax, %rbx
leaq 0x460(%rsp), %rdi
callq 0xa7730
jmp 0x1d95f
movq %rdx, %r14
movq %rax, %rbx
leaq 0x3e8(%rsp), %rdi
jmp 0x1db66
movq %rdx, %r14
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
jmp 0x1db66
jmp 0x1d95c
movq %rax, %rbx
leaq 0x310(%rsp), %rdi
jmp 0x1da00
jmp 0x1d9a8
jmp 0x1dc21
movq %rdx, %r14
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0xa7730
jmp 0x1d99b
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa7730
jmp 0x1d9ab
jmp 0x1db6d
jmp 0x1db6d
jmp 0x1d9a8
jmp 0x1dc21
movq %rax, %rbx
leaq 0x330(%rsp), %rdi
jmp 0x1da00
jmp 0x1dc21
jmp 0x1d9f8
jmp 0x1dc21
movq %rdx, %r14
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
jmp 0x1da8f
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x1da00
jmp 0x1d9d6
jmp 0x1db6d
jmp 0x1d9d6
jmp 0x1db6d
jmp 0x1db6d
jmp 0x1db6d
jmp 0x1d9d6
jmp 0x1db6d
jmp 0x1db6d
movq %rdx, %r14
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
jmp 0x1db66
jmp 0x1db6d
jmp 0x1dc21
jmp 0x1dc21
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa7730
jmp 0x1dc24
jmp 0x1dc21
jmp 0x1da60
jmp 0x1dac4
jmp 0x1da60
jmp 0x1dac4
jmp 0x1da60
jmp 0x1dac4
jmp 0x1da9c
jmp 0x1dc21
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1db97
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1dba1
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1dbab
jmp 0x1dc21
jmp 0x1db6d
jmp 0x1dac4
jmp 0x1da60
jmp 0x1dac4
jmp 0x1da60
jmp 0x1dac4
movq %rdx, %r14
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0xa7730
jmp 0x1daca
jmp 0x1dac4
jmp 0x1dac4
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1dad7
movq %rdx, %r14
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xa7730
jmp 0x1dae4
jmp 0x1da9c
jmp 0x1da9c
jmp 0x1da9c
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1dae4
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1dafb
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1db08
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1db12
movq %rdx, %r14
movq %rax, %rbx
jmp 0x1db1c
movq %rdx, %r14
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0xa7730
leaq 0xc0(%rsp), %rdi
callq 0x1e770
leaq 0x60(%rsp), %rdi
callq 0x1e770
leaq 0xa0(%rsp), %rdi
callq 0xa7730
leaq 0x80(%rsp), %rdi
callq 0x1deb4
leaq 0x38(%rsp), %rdi
callq 0x1deb4
leaq 0x10(%rsp), %rdi
callq 0xa7730
cmpl $0x1, %r14d
jne 0x1dc24
movq %rbx, %rdi
callq 0x2b3f0
leaq 0x428(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1e358
movq %rbx, %rdi
callq 0x1920c
leaq 0x428(%rsp), %rdi
jmp 0x1dbdc
jmp 0x1db6d
movq %rdx, %r14
movq %rax, %rbx
leaq 0x720(%rsp), %rdi
callq 0xa7730
jmp 0x1db73
movq %rdx, %r14
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x1e770
leaq 0xa0(%rsp), %rdi
callq 0x1e770
leaq 0x80(%rsp), %rdi
callq 0xa7730
leaq 0x38(%rsp), %rdi
callq 0x1deb4
leaq 0x10(%rsp), %rdi
callq 0x1deb4
cmpl $0x1, %r14d
jne 0x1dc24
movq %rbx, %rdi
callq 0x2b3f0
leaq 0x3b0(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1e358
movq %rbx, %rdi
callq 0x1920c
leaq 0x3b0(%rsp), %rdi
callq 0x9b710
pushq $0x1
popq %rdi
callq 0x151a0
jmp 0x1dc21
movq %rax, %rbx
leaq 0x3b0(%rsp), %rdi
callq 0x9b710
callq 0x2b460
jmp 0x1dc24
movq %rax, %rbx
leaq 0x428(%rsp), %rdi
callq 0x9b710
callq 0x2b460
jmp 0x1dc24
movq %rax, %rdi
callq 0x1e384
movq %rax, %rbx
movl $0x5f80, %r14d          # imm = 0x5F80
leaq (%rsp,%r14), %rdi
addq $0x2720, %rdi           # imm = 0x2720
callq 0xa7730
addq $-0x60, %r14
cmpq $-0x20, %r14
jne 0x1dc2a
movq %rbx, %rdi
callq 0xd6ab0