// File: /workspace/github_cpp_makefile_star2_O3/yahoo[P]UDPing/src/client.cc
// Function: main
int main( int argc, char **argv ) {
    if (getuid()) {
        cerr << "udping_client must run as root" << endl;
        exit (-1);
    }
    struct timespec iter_start;
    double wall_elapsed = 0;
    setOptions(new Options(argc, argv, "l:r:p:d:i:s:n:m:a:vhq"));
    
    /* Parse command line options */
    stringstream usage;
    usage << "Usage:  udping_client -r <remote hostname> -p <remote port> -d <delay> -l <local IP> -s <starting port>|<source port descriptor> [-n <number of ports>] -i <measurement interval seconds> -m <max packet size> -a <next-hop MAC,...> [-v] [-q]" << endl <<
    "  Source port descriptor should be a set of ranges separated by commas.\n  Each range can either be a port, or a range of ports separated by a dash.\n  For example:" << endl <<
    "    5000 -> port 5000" << endl <<
    "    5000-5009 -> ports 5000,5001,...,5009" << endl <<
    "    5000,5005,5010 -> ports 5000,5005,5010" << endl <<
    "    5000-5001,5005-5006 -> ports 5000,5001,5005,5006" << endl <<
    "  If a single port is specified AND a number of ports is specified, then source traffic\n  from the count specified starting with the starting port" << endl;
    if (getOptions()->getFlagOption('h')) {
        cerr << usage.str() << endl;
        exit (0);
    }
    string dstHost = getOptions()->getStringOption ('r', 1, usage.str(), "No remote hostname provided\n");
    int dstPort = getOptions()->parseIntOption('p', 1, 1024, 65536, usage.str(), "Port number is out of range 1024-65532\n");
    string srcIp = getOptions()->getStringOption ('l', 1, usage.str(), "No local IP provided\n");
    string srcPorts = getOptions()->getStringOption('s', 1, usage.str(), "Please define a valid source port");
    int numPorts = getOptions()->parseIntOption('n', 0, 1, MAX_SOCKETS, usage.str(), "Number of ports is out of range 1-MAX_SOCKETS\n");
    if ((atoi(srcPorts.c_str()) > 0) && (numPorts > 0) && (string::npos == srcPorts.find_first_not_of("1234567890"))) {
        int startingPort = atoi(srcPorts.c_str());
        if ((startingPort > MAX_PORT) || (startingPort < MIN_PORT)) {
            cerr << usage.str() << "Starting port is out of range MIN_PORT-MAX_PORT\n";
            exit (-1);
        }
        int endingPort = startingPort + numPorts - 1;
        stringstream buffer;
        buffer << to_string((long long)startingPort) << "-" << to_string((long long)endingPort);
        srcPorts = buffer.str();
    }
    int delay = getOptions()->parseIntOption('d', 1, 0, 1000, usage.str(), "Delay is out of range 0-1000 ms\n");
    int interval = getOptions()->parseIntOption('i', 1, 1, 900, usage.str(), "Measurement interval is out of range 0-900 s\n");
    int maxPacketSize = getOptions()->parseIntOption('m', 1, 1, MAXBUF, usage.str(), "Max packet size is out of range 1-MAXBUF\n");
    string dstMac = getOptions()->getStringOption ('a', 1, usage.str(), "You must specify one or more next-hop MAC addresses\n");

    MacList dstml(dstMac);
    if (dstml.getNumMacs() == 0) {
        cerr << "Invalid next-hop MAC address string" << endl << usage.str();
        exit (-1);
    }

    srand (time(0) + getpid());

    ClientSessionList sessions( srcIp, srcPorts, dstHost, dstPort, dstMac, interval, maxPacketSize );

    if (!getuid()) {
        // I'm running as root.  Switch to nobody or die!!!
        struct passwd* pwd = getpwnam("nobody");
        if (pwd && pwd->pw_uid) {
            if (setgid(pwd->pw_gid)) {
                cerr << "Couldn't change userid to nobody (setgid failed).  Terminating client" << endl;
                exit(-1);
            }
            if (setuid(pwd->pw_uid)) {
                cerr << "Couldn't change userid to nobody (setuid failed).  Terminating client" << endl;
                exit(-1);
            }
        } else {
            cerr << "Couldn't change userid to nobody.  Terminating client" << endl;
            exit(-1);
        }
    }

    int ix;
    while (1) {
        startTimer(&iter_start);
        ClientSession* session = sessions.getNextSession();
        if (session->rollover()) {
            session->reset();
        }
        (void) session->sendPingPacket();
        session->increment();
        doRandomPause(&iter_start, delay);
    };
    return(0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x6d8, %rsp            # imm = 0x6D8
movq %rsi, %rbx
movl %edi, %ebp
callq 0x2170
testl %eax, %eax
jne 0x2baf
movl $0x800, %edi            # imm = 0x800
callq 0x22d0
movq %rax, %r14
leaq 0x1b8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2994(%rip), %rsi      # 0x5023
leaq 0x29a2(%rip), %rdx      # 0x5038
leaq 0x1a8(%rsp), %rdi
callq 0x377c
movb $0x1, %r12b
leaq 0x1a8(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x3814
xorl %r12d, %r12d
movq %r14, %rdi
callq 0x3974
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x26d8
callq 0x2280
leaq 0x550(%rsp), %rdi
callq 0x21b0
leaq 0x560(%rsp), %rbx
leaq 0x2945(%rip), %rsi      # 0x5039
movl $0xee, %edx
movq %rbx, %rdi
callq 0x22e0
movq 0x560(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x22a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x21a0
movq %rax, %rbx
leaq 0x29f1(%rip), %rsi      # 0x5128
movl $0xa2, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a75(%rip), %rsi      # 0x51cb
movl $0x15, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a6c(%rip), %rsi      # 0x51e1
movl $0x29, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a77(%rip), %rsi      # 0x520b
movl $0x2a, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a83(%rip), %rsi      # 0x5236
movl $0x34, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a99(%rip), %rsi      # 0x526b
movl $0x92, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
callq 0x397c
movq %rax, %rdi
movl $0x68, %esi
callq 0x394a
testl %eax, %eax
jne 0x2bd4
callq 0x397c
movq %rax, %r14
leaq 0x568(%rsp), %rbx
leaq 0x388(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x198(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2aca(%rip), %rsi      # 0x52fe
leaq 0x2adf(%rip), %rdx      # 0x531a
leaq 0x188(%rsp), %rdi
callq 0x377c
leaq 0x388(%rsp), %rcx
leaq 0x188(%rsp), %r8
movq %r14, %rdi
movl $0x72, %esi
movl $0x1, %edx
callq 0x390e
leaq 0x3a8(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x188(%rsp), %rdi
cmpq %r15, %rdi
je 0x2894
callq 0x2280
leaq 0x398(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x28aa
callq 0x2280
callq 0x397c
movq %rax, %r14
leaq 0x368(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x358(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2a45(%rip), %rsi      # 0x531b
leaq 0x2a65(%rip), %rdx      # 0x5342
leaq 0x348(%rsp), %r15
movq %r15, %rdi
callq 0x377c
movq %r15, (%rsp)
leaq 0x368(%rsp), %r9
movq %r14, %rdi
movl $0x70, %esi
movl $0x1, %edx
movl $0x400, %ecx            # imm = 0x400
movl $0x10000, %r8d          # imm = 0x10000
callq 0x38aa
movl %eax, %ebp
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x292a
callq 0x2280
leaq 0x378(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2940
callq 0x2280
callq 0x397c
movq %rax, %r14
leaq 0x308(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x178(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x29d8(%rip), %rsi      # 0x5343
leaq 0x29e6(%rip), %rdx      # 0x5358
leaq 0x168(%rsp), %rdi
callq 0x377c
leaq 0x308(%rsp), %rcx
leaq 0x168(%rsp), %r8
movq %r14, %rdi
movl $0x6c, %esi
movl $0x1, %edx
callq 0x390e
leaq 0x328(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x29cb
callq 0x2280
leaq 0x318(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x29e1
callq 0x2280
callq 0x397c
movq %rax, %r14
leaq 0x2e8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x158(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x294d(%rip), %rsi      # 0x5359
leaq 0x2967(%rip), %rdx      # 0x537a
leaq 0x148(%rsp), %rdi
callq 0x377c
leaq 0x2e8(%rsp), %rcx
leaq 0x148(%rsp), %r8
movq %r14, %rdi
movl $0x73, %esi
movl $0x1, %edx
callq 0x390e
leaq 0x38(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x148(%rsp), %rdi
cmpq %r15, %rdi
je 0x2a69
callq 0x2280
leaq 0x2f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a7f
callq 0x2280
callq 0x397c
movq %rax, %r14
leaq 0x2c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x2b8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x28d0(%rip), %rsi      # 0x537b
leaq 0x28f7(%rip), %rdx      # 0x53a9
leaq 0x2a8(%rsp), %r15
movq %r15, %rdi
callq 0x377c
movq %r15, (%rsp)
leaq 0x2c8(%rsp), %r9
movq %r14, %rdi
movl $0x6e, %esi
xorl %edx, %edx
movl $0x1, %ecx
movl $0x1388, %r8d           # imm = 0x1388
callq 0x38aa
movl %eax, %r14d
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2afd
callq 0x2280
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b13
callq 0x2280
movq 0x38(%rsp), %rdi
callq 0x23a0
testl %r14d, %r14d
jle 0x2d0b
testl %eax, %eax
jle 0x2d0b
leaq 0x2875(%rip), %rsi      # 0x53aa
leaq 0x38(%rsp), %rdi
movl $0xa, %ecx
xorl %edx, %edx
callq 0x23d0
cmpq $-0x1, %rax
jne 0x2d0b
movq 0x38(%rsp), %rdi
callq 0x23a0
movl %eax, %r15d
leal -0xea61(%r15), %eax
cmpl $0xffff199e, %eax       # imm = 0xFFFF199E
ja 0x2c21
leaq 0x3c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
movq 0x3c8(%rsp), %rsi
movq 0x3d0(%rsp), %rdx
movq 0x545a(%rip), %rdi      # 0x7ff0
callq 0x22e0
leaq 0x2813(%rip), %rsi      # 0x53b5
movq %rax, %rdi
callq 0x22c0
jmp 0x3010
movq 0x543a(%rip), %rdi      # 0x7ff0
leaq 0x2447(%rip), %rsi      # 0x5004
callq 0x22c0
movq %rax, %rdi
callq 0x2160
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2310
leaq 0x568(%rsp), %rsi
leaq 0x3c8(%rsp), %rdi
callq 0x23b0
movq 0x3c8(%rsp), %rsi
movq 0x3d0(%rsp), %rdx
movq 0x53f0(%rip), %rdi      # 0x7ff0
callq 0x22e0
movq %rax, %rdi
callq 0x2160
leaq 0x3c8(%rsp), %rdi
callq 0x2150
xorl %edi, %edi
callq 0x2310
leaq 0x3c8(%rsp), %rdi
callq 0x21b0
movl %r15d, %esi
leaq 0x18(%rsp), %rdi
callq 0x35b6
leaq 0x3d8(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x22e0
movq %rax, %r12
leaq 0x2aff(%rip), %rsi      # 0x575b
movl $0x1, %edx
movq %rax, %rdi
callq 0x22e0
leal (%r14,%r15), %eax
decl %eax
movl %eax, %esi
leaq 0x78(%rsp), %rdi
callq 0x35b6
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq %r12, %rdi
callq 0x22e0
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ca6
callq 0x2280
leaq 0x28(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x2cb9
callq 0x2280
leaq 0x3e0(%rsp), %rsi
leaq 0x18(%rsp), %rdi
callq 0x23b0
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %r14
movq %r14, %rsi
callq 0x2320
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x2cea
callq 0x2280
movq 0x52bf(%rip), %rsi      # 0x7fb0
leaq 0x3c8(%rsp), %rdi
callq 0x21d0
leaq 0x448(%rsp), %rdi
callq 0x2110
callq 0x397c
movq %rax, %r14
leaq 0x288(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x278(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26af(%rip), %rsi      # 0x53e6
leaq 0x26c8(%rip), %rdx      # 0x5406
leaq 0x268(%rsp), %r15
movq %r15, %rdi
callq 0x377c
movq %r15, (%rsp)
leaq 0x288(%rsp), %r9
movq %r14, %rdi
movl $0x64, %esi
movl $0x1, %edx
xorl %ecx, %ecx
movl $0x3e8, %r8d            # imm = 0x3E8
callq 0x38aa
movl %eax, %r14d
movq 0x268(%rsp), %rdi
cmpq %r12, %rdi
je 0x2d89
callq 0x2280
leaq 0x298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2d9f
callq 0x2280
callq 0x397c
movq %rax, %r15
leaq 0x248(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x238(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x263d(%rip), %rsi      # 0x5407
leaq 0x2663(%rip), %rdx      # 0x5434
leaq 0x228(%rsp), %r12
movq %r12, %rdi
callq 0x377c
movq %r12, (%rsp)
leaq 0x248(%rsp), %r9
movq %r15, %rdi
movl $0x69, %esi
movl $0x1, %edx
movl $0x1, %ecx
movl $0x384, %r8d            # imm = 0x384
callq 0x38aa
movl %eax, 0x14(%rsp)
movq 0x228(%rsp), %rdi
cmpq %r13, %rdi
je 0x2e20
callq 0x2280
leaq 0x258(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2e36
callq 0x2280
callq 0x397c
movq %rax, %r12
leaq 0x208(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x1f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25d4(%rip), %rsi      # 0x5435
leaq 0x25f6(%rip), %rdx      # 0x545e
leaq 0x1e8(%rsp), %r13
movq %r13, %rdi
callq 0x377c
movq %r13, (%rsp)
leaq 0x208(%rsp), %r9
movq %r12, %rdi
movl $0x6d, %esi
movl $0x1, %edx
movl $0x1, %ecx
movl $0x7d0, %r8d            # imm = 0x7D0
callq 0x38aa
movl %eax, 0x10(%rsp)
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2eb7
callq 0x2280
leaq 0x218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ecd
callq 0x2280
callq 0x397c
movq %rax, %r13
leaq 0x1c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2567(%rip), %rsi      # 0x545f
leaq 0x2594(%rip), %rdx      # 0x5493
leaq 0x128(%rsp), %rdi
callq 0x377c
leaq 0x1c8(%rsp), %rcx
leaq 0x128(%rsp), %r8
movq %r13, %rdi
movl $0x61, %esi
movl $0x1, %edx
callq 0x390e
leaq 0x18(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x2f55
callq 0x2280
leaq 0x1d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f6b
callq 0x2280
leaq 0x118(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
addq %rsi, %rdx
leaq 0x108(%rsp), %rdi
callq 0x36e6
leaq 0x98(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x4910
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x2fb8
callq 0x2280
leaq 0x98(%rsp), %rdi
callq 0x4ab4
testl %eax, %eax
jne 0x3022
movq 0x5020(%rip), %rdi      # 0x7ff0
leaq 0x24bd(%rip), %rsi      # 0x5494
movl $0x23, %edx
callq 0x22e0
movq 0x5008(%rip), %rdi      # 0x7ff0
callq 0x2160
movq %rax, %r14
leaq 0x3c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x3c8(%rsp), %rsi
movq %r14, %rdi
callq 0x2230
leaq 0x3c8(%rsp), %rdi
callq 0x2150
jmp 0x2bca
xorl %edi, %edi
callq 0x2260
movq %rax, %rbx
callq 0x2370
addl %eax, %ebx
movl %ebx, %edi
callq 0x2290
leaq 0x68(%rsp), %rax
movq %rax, -0x10(%rax)
movq 0x328(%rsp), %rsi
movq 0x330(%rsp), %rdx
addq %rsi, %rdx
leaq 0x58(%rsp), %rdi
callq 0x36e6
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0x36e6
leaq 0xd8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x3a8(%rsp), %rsi
movq 0x3b0(%rsp), %rdx
addq %rsi, %rdx
leaq 0xc8(%rsp), %rdi
callq 0x36e6
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa8(%rsp), %rdi
callq 0x36e6
movl 0x10(%rsp), %eax
movl %eax, 0x8(%rsp)
movl 0x14(%rsp), %eax
movl %eax, (%rsp)
leaq 0x3c8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
leaq 0xc8(%rsp), %rcx
leaq 0xa8(%rsp), %r9
movl %ebp, %r8d
callq 0x40a6
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3127
callq 0x2280
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x3139
callq 0x2280
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x314b
callq 0x2280
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x315f
callq 0x2280
callq 0x2170
testl %eax, %eax
jne 0x31c3
leaq 0x2349(%rip), %rdi      # 0x54b8
callq 0x21f0
testq %rax, %rax
je 0x3182
movq %rax, %rbx
cmpl $0x0, 0x10(%rax)
jne 0x31ab
movq 0x4e67(%rip), %rdi      # 0x7ff0
leaq 0x23bb(%rip), %rsi      # 0x554b
movl $0x35, %edx
callq 0x22e0
movq 0x4e4f(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bca
movl 0x14(%rbx), %edi
callq 0x2410
testl %eax, %eax
jne 0x3210
movl 0x10(%rbx), %edi
callq 0x2440
testl %eax, %eax
jne 0x3239
leaq 0x78(%rsp), %rdi
callq 0x3984
leaq 0x3c8(%rsp), %rdi
callq 0x461c
movq %rax, %rbx
movq %rax, %rdi
callq 0x47c0
testb %al, %al
je 0x31f1
movq %rbx, %rdi
callq 0x4776
movq %rbx, %rdi
callq 0x4818
movq %rbx, %rdi
callq 0x4814
leaq 0x78(%rsp), %rdi
movl %r14d, %esi
callq 0x39c7
jmp 0x31c3
movq 0x4dd9(%rip), %rdi      # 0x7ff0
leaq 0x22a1(%rip), %rsi      # 0x54bf
movl $0x45, %edx
callq 0x22e0
movq 0x4dc1(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bca
movq 0x4db0(%rip), %rdi      # 0x7ff0
leaq 0x22be(%rip), %rsi      # 0x5505
movl $0x45, %edx
callq 0x22e0
movq 0x4d98(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bca
jmp 0x3266
jmp 0x3266
movq %rax, %rbx
leaq 0x3c8(%rsp), %rdi
callq 0x45a8
jmp 0x32ee
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3292
callq 0x2280
jmp 0x3292
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x32a9
callq 0x2280
jmp 0x32a9
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x32c0
callq 0x2280
jmp 0x32c0
movq %rax, %rbx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
jmp 0x32dd
jmp 0x32eb
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32ee
callq 0x2280
jmp 0x32ee
jmp 0x32eb
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x4a72
jmp 0x3317
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x3317
callq 0x2280
jmp 0x3317
movq %rax, %rbx
leaq 0x28(%rsp), %rax
jmp 0x345a
jmp 0x3323
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x333d
callq 0x2280
jmp 0x333d
movq %rax, %rbx
leaq 0x1d8(%rsp), %rax
jmp 0x345a
jmp 0x346a
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x3369
callq 0x2280
jmp 0x3369
movq %rax, %rbx
leaq 0x218(%rsp), %rax
jmp 0x345a
jmp 0x346a
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r13, %rdi
je 0x3395
callq 0x2280
jmp 0x3395
movq %rax, %rbx
leaq 0x258(%rsp), %rax
jmp 0x345a
jmp 0x33d9
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x33c4
callq 0x2280
jmp 0x33c4
jmp 0x33c1
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x33dc
callq 0x2280
jmp 0x33dc
movq %rax, %rbx
movq 0x4bcd(%rip), %rsi      # 0x7fb0
leaq 0x3c8(%rsp), %rdi
callq 0x21d0
leaq 0x448(%rsp), %rdi
callq 0x2110
jmp 0x346d
jmp 0x346a
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %r12, %rdi
je 0x342c
callq 0x2280
jmp 0x342c
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
jmp 0x345a
jmp 0x346a
jmp 0x346a
movq %rax, %rbx
leaq 0x298(%rsp), %rax
jmp 0x345a
jmp 0x346a
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x3452
callq 0x2280
jmp 0x3452
movq %rax, %rbx
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x346d
callq 0x2280
jmp 0x346d
movq %rax, %rbx
leaq 0x48(%rsp), %rax
jmp 0x3498
jmp 0x3476
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r15, %rdi
je 0x3490
callq 0x2280
jmp 0x3490
movq %rax, %rbx
leaq 0x2f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34ab
callq 0x2280
jmp 0x34ab
movq %rax, %rbx
leaq 0x338(%rsp), %rax
jmp 0x34ff
jmp 0x34b7
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x34d1
callq 0x2280
jmp 0x34d1
movq %rax, %rbx
leaq 0x318(%rsp), %rax
jmp 0x34ff
jmp 0x350f
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x34f7
callq 0x2280
jmp 0x34f7
movq %rax, %rbx
leaq 0x378(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3512
callq 0x2280
jmp 0x3512
movq %rax, %rbx
leaq 0x3b8(%rsp), %rax
jmp 0x354d
jmp 0x351e
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r15, %rdi
je 0x3538
callq 0x2280
jmp 0x3538
movq %rax, %rbx
leaq 0x398(%rsp), %rax
jmp 0x354d
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3564
callq 0x2280
jmp 0x3564
jmp 0x3561
jmp 0x3561
movq %rax, %rbx
movq 0x4a45(%rip), %rsi      # 0x7fb0
leaq 0x550(%rsp), %rdi
callq 0x21d0
leaq 0x5d0(%rsp), %rdi
callq 0x2110
jmp 0x35ae
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r15, %rdi
je 0x359c
callq 0x2280
testb %r12b, %r12b
jne 0x35a6
jmp 0x35ae
movq %rax, %rbx
movq %r14, %rdi
callq 0x2280
movq %rbx, %rdi
callq 0x2400