// File: /workspace/github_cpp_makefile_star2_O1/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 0x2bb0
movl $0x800, %edi            # imm = 0x800
callq 0x22d0
movq %rax, %r14
leaq 0x1b8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2993(%rip), %rsi      # 0x5023
leaq 0x29a1(%rip), %rdx      # 0x5038
leaq 0x1a8(%rsp), %rdi
callq 0x377a
movb $0x1, %r15b
leaq 0x1a8(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x380c
xorl %r15d, %r15d
movq %r14, %rdi
callq 0x396c
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x26d9
callq 0x2280
leaq 0x550(%rsp), %rdi
callq 0x21b0
leaq 0x560(%rsp), %rbx
leaq 0x2944(%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 0x29f0(%rip), %rsi      # 0x5128
movl $0xa2, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a74(%rip), %rsi      # 0x51cb
movl $0x15, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a6b(%rip), %rsi      # 0x51e1
movl $0x29, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a76(%rip), %rsi      # 0x520b
movl $0x2a, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a82(%rip), %rsi      # 0x5236
movl $0x34, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x2a98(%rip), %rsi      # 0x526b
movl $0x92, %edx
movq %rax, %rdi
callq 0x22e0
movq %rbx, %rdi
callq 0x2160
callq 0x3974
movq %rax, %rdi
movl $0x68, %esi
callq 0x3942
testl %eax, %eax
jne 0x2bd5
callq 0x3974
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 0x2ac9(%rip), %rsi      # 0x52fe
leaq 0x2ade(%rip), %rdx      # 0x531a
leaq 0x188(%rsp), %rdi
callq 0x377a
leaq 0x388(%rsp), %rcx
leaq 0x188(%rsp), %r8
movq %r14, %rdi
movl $0x72, %esi
movl $0x1, %edx
callq 0x3906
leaq 0x3a8(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x188(%rsp), %rdi
cmpq %r15, %rdi
je 0x2895
callq 0x2280
leaq 0x398(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x28ab
callq 0x2280
callq 0x3974
movq %rax, %r14
leaq 0x368(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x358(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2a44(%rip), %rsi      # 0x531b
leaq 0x2a64(%rip), %rdx      # 0x5342
leaq 0x348(%rsp), %r15
movq %r15, %rdi
callq 0x377a
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 0x38a2
movl %eax, %ebp
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x292b
callq 0x2280
leaq 0x378(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2941
callq 0x2280
callq 0x3974
movq %rax, %r14
leaq 0x308(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x178(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x29d7(%rip), %rsi      # 0x5343
leaq 0x29e5(%rip), %rdx      # 0x5358
leaq 0x168(%rsp), %rdi
callq 0x377a
leaq 0x308(%rsp), %rcx
leaq 0x168(%rsp), %r8
movq %r14, %rdi
movl $0x6c, %esi
movl $0x1, %edx
callq 0x3906
leaq 0x328(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x29cc
callq 0x2280
leaq 0x318(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x29e2
callq 0x2280
callq 0x3974
movq %rax, %r14
leaq 0x2e8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x158(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x294c(%rip), %rsi      # 0x5359
leaq 0x2966(%rip), %rdx      # 0x537a
leaq 0x148(%rsp), %rdi
callq 0x377a
leaq 0x2e8(%rsp), %rcx
leaq 0x148(%rsp), %r8
movq %r14, %rdi
movl $0x73, %esi
movl $0x1, %edx
callq 0x3906
leaq 0x38(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x148(%rsp), %rdi
cmpq %r15, %rdi
je 0x2a6a
callq 0x2280
leaq 0x2f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2a80
callq 0x2280
callq 0x3974
movq %rax, %r14
leaq 0x2c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x2b8(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x28cf(%rip), %rsi      # 0x537b
leaq 0x28f6(%rip), %rdx      # 0x53a9
leaq 0x2a8(%rsp), %r15
movq %r15, %rdi
callq 0x377a
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 0x38a2
movl %eax, %r14d
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x2afe
callq 0x2280
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2b14
callq 0x2280
movq 0x38(%rsp), %rdi
callq 0x23a0
testl %r14d, %r14d
jle 0x2d0c
testl %eax, %eax
jle 0x2d0c
leaq 0x2874(%rip), %rsi      # 0x53aa
leaq 0x38(%rsp), %rdi
movl $0xa, %ecx
xorl %edx, %edx
callq 0x23d0
cmpq $-0x1, %rax
jne 0x2d0c
movq 0x38(%rsp), %rdi
callq 0x23a0
movl %eax, %r15d
leal -0xea61(%r15), %eax
cmpl $0xffff199e, %eax       # imm = 0xFFFF199E
ja 0x2c22
leaq 0x3c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
movq 0x3c8(%rsp), %rsi
movq 0x3d0(%rsp), %rdx
movq 0x5459(%rip), %rdi      # 0x7ff0
callq 0x22e0
leaq 0x2812(%rip), %rsi      # 0x53b5
movq %rax, %rdi
callq 0x22c0
jmp 0x3011
movq 0x5439(%rip), %rdi      # 0x7ff0
leaq 0x2446(%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 0x53ef(%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 0x35ba
leaq 0x3d8(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x22e0
movq %rax, %r12
leaq 0x2afe(%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 0x35ba
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 0x2ca7
callq 0x2280
leaq 0x28(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x2cba
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 0x2ceb
callq 0x2280
movq 0x52be(%rip), %rsi      # 0x7fb0
leaq 0x3c8(%rsp), %rdi
callq 0x21d0
leaq 0x448(%rsp), %rdi
callq 0x2110
callq 0x3974
movq %rax, %r14
leaq 0x288(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x278(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x26ae(%rip), %rsi      # 0x53e6
leaq 0x26c7(%rip), %rdx      # 0x5406
leaq 0x268(%rsp), %r15
movq %r15, %rdi
callq 0x377a
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 0x38a2
movl %eax, %r14d
movq 0x268(%rsp), %rdi
cmpq %r12, %rdi
je 0x2d8a
callq 0x2280
leaq 0x298(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2da0
callq 0x2280
callq 0x3974
movq %rax, %r15
leaq 0x248(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x238(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x263c(%rip), %rsi      # 0x5407
leaq 0x2662(%rip), %rdx      # 0x5434
leaq 0x228(%rsp), %r12
movq %r12, %rdi
callq 0x377a
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 0x38a2
movl %eax, 0x14(%rsp)
movq 0x228(%rsp), %rdi
cmpq %r13, %rdi
je 0x2e21
callq 0x2280
leaq 0x258(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2e37
callq 0x2280
callq 0x3974
movq %rax, %r12
leaq 0x208(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x1f8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x25d3(%rip), %rsi      # 0x5435
leaq 0x25f5(%rip), %rdx      # 0x545e
leaq 0x1e8(%rsp), %r13
movq %r13, %rdi
callq 0x377a
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 0x38a2
movl %eax, 0x10(%rsp)
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x2eb8
callq 0x2280
leaq 0x218(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ece
callq 0x2280
callq 0x3974
movq %rax, %r13
leaq 0x1c8(%rsp), %rdi
movq %rbx, %rsi
callq 0x23b0
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x2566(%rip), %rsi      # 0x545f
leaq 0x2593(%rip), %rdx      # 0x5493
leaq 0x128(%rsp), %rdi
callq 0x377a
leaq 0x1c8(%rsp), %rcx
leaq 0x128(%rsp), %r8
movq %r13, %rdi
movl $0x61, %esi
movl $0x1, %edx
callq 0x3906
leaq 0x18(%rsp), %rdi
leaq 0x3c8(%rsp), %rdx
movq %rax, %rsi
callq 0x2130
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x2f56
callq 0x2280
leaq 0x1d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f6c
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 0x36ea
leaq 0x98(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x4914
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x2fb9
callq 0x2280
leaq 0x98(%rsp), %rdi
callq 0x4af0
testl %eax, %eax
jne 0x3023
movq 0x501f(%rip), %rdi      # 0x7ff0
leaq 0x24bc(%rip), %rsi      # 0x5494
movl $0x23, %edx
callq 0x22e0
movq 0x5007(%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 0x2bcb
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 0x36ea
leaq 0xf8(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
leaq 0xe8(%rsp), %rdi
callq 0x36ea
leaq 0xd8(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x3a8(%rsp), %rsi
movq 0x3b0(%rsp), %rdx
addq %rsi, %rdx
leaq 0xc8(%rsp), %rdi
callq 0x36ea
leaq 0xb8(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
addq %rsi, %rdx
leaq 0xa8(%rsp), %rdi
callq 0x36ea
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 0x40a2
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3128
callq 0x2280
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x313a
callq 0x2280
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x314c
callq 0x2280
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x3160
callq 0x2280
callq 0x2170
testl %eax, %eax
jne 0x31c4
leaq 0x2348(%rip), %rdi      # 0x54b8
callq 0x21f0
testq %rax, %rax
je 0x3183
movq %rax, %rbx
cmpl $0x0, 0x10(%rax)
jne 0x31ac
movq 0x4e66(%rip), %rdi      # 0x7ff0
leaq 0x23ba(%rip), %rsi      # 0x554b
movl $0x35, %edx
callq 0x22e0
movq 0x4e4e(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bcb
movl 0x14(%rbx), %edi
callq 0x2410
testl %eax, %eax
jne 0x3211
movl 0x10(%rbx), %edi
callq 0x2440
testl %eax, %eax
jne 0x323a
leaq 0x78(%rsp), %rdi
callq 0x397c
leaq 0x3c8(%rsp), %rdi
callq 0x4624
movq %rax, %rbx
movq %rax, %rdi
callq 0x47c8
testb %al, %al
je 0x31f2
movq %rbx, %rdi
callq 0x477e
movq %rbx, %rdi
callq 0x481c
movq %rbx, %rdi
callq 0x4818
leaq 0x78(%rsp), %rdi
movl %r14d, %esi
callq 0x39bf
jmp 0x31c4
movq 0x4dd8(%rip), %rdi      # 0x7ff0
leaq 0x22a0(%rip), %rsi      # 0x54bf
movl $0x45, %edx
callq 0x22e0
movq 0x4dc0(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bcb
movq 0x4daf(%rip), %rdi      # 0x7ff0
leaq 0x22bd(%rip), %rsi      # 0x5505
movl $0x45, %edx
callq 0x22e0
movq 0x4d97(%rip), %rdi      # 0x7ff0
callq 0x2160
jmp 0x2bcb
jmp 0x3267
jmp 0x3267
movq %rax, %rbx
leaq 0x3c8(%rsp), %rdi
callq 0x45a6
jmp 0x32ef
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r13, %rdi
je 0x3293
callq 0x2280
jmp 0x3293
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
cmpq %r12, %rdi
je 0x32aa
callq 0x2280
jmp 0x32aa
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
cmpq %r15, %rdi
je 0x32c1
callq 0x2280
jmp 0x32c1
movq %rax, %rbx
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
jmp 0x32de
jmp 0x32ec
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32ef
callq 0x2280
jmp 0x32ef
jmp 0x32ec
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x4aa8
jmp 0x3318
movq %rax, %rbx
movq 0x108(%rsp), %rdi
cmpq %r15, %rdi
je 0x3318
callq 0x2280
jmp 0x3318
movq %rax, %rbx
leaq 0x28(%rsp), %rax
jmp 0x345b
jmp 0x3324
movq %rax, %rbx
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x333e
callq 0x2280
jmp 0x333e
movq %rax, %rbx
leaq 0x1d8(%rsp), %rax
jmp 0x345b
jmp 0x346b
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
cmpq %r15, %rdi
je 0x336a
callq 0x2280
jmp 0x336a
movq %rax, %rbx
leaq 0x218(%rsp), %rax
jmp 0x345b
jmp 0x346b
movq %rax, %rbx
movq 0x228(%rsp), %rdi
cmpq %r13, %rdi
je 0x3396
callq 0x2280
jmp 0x3396
movq %rax, %rbx
leaq 0x258(%rsp), %rax
jmp 0x345b
jmp 0x33da
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x33c5
callq 0x2280
jmp 0x33c5
jmp 0x33c2
movq %rax, %rbx
leaq 0x28(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x33dd
callq 0x2280
jmp 0x33dd
movq %rax, %rbx
movq 0x4bcc(%rip), %rsi      # 0x7fb0
leaq 0x3c8(%rsp), %rdi
callq 0x21d0
leaq 0x448(%rsp), %rdi
callq 0x2110
jmp 0x346e
jmp 0x346b
movq %rax, %rbx
movq 0x268(%rsp), %rdi
cmpq %r12, %rdi
je 0x342d
callq 0x2280
jmp 0x342d
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
jmp 0x345b
jmp 0x346b
jmp 0x346b
movq %rax, %rbx
leaq 0x298(%rsp), %rax
jmp 0x345b
jmp 0x346b
movq %rax, %rbx
movq 0x2a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x3453
callq 0x2280
jmp 0x3453
movq %rax, %rbx
leaq 0x2d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x346e
callq 0x2280
jmp 0x346e
movq %rax, %rbx
leaq 0x48(%rsp), %rax
jmp 0x3499
jmp 0x3477
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r15, %rdi
je 0x3491
callq 0x2280
jmp 0x3491
movq %rax, %rbx
leaq 0x2f8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x34ac
callq 0x2280
jmp 0x34ac
movq %rax, %rbx
leaq 0x338(%rsp), %rax
jmp 0x3500
jmp 0x34b8
movq %rax, %rbx
movq 0x168(%rsp), %rdi
cmpq %r15, %rdi
je 0x34d2
callq 0x2280
jmp 0x34d2
movq %rax, %rbx
leaq 0x318(%rsp), %rax
jmp 0x3500
jmp 0x3510
movq %rax, %rbx
movq 0x348(%rsp), %rdi
cmpq %r12, %rdi
je 0x34f8
callq 0x2280
jmp 0x34f8
movq %rax, %rbx
leaq 0x378(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3513
callq 0x2280
jmp 0x3513
movq %rax, %rbx
leaq 0x3b8(%rsp), %rax
jmp 0x354e
jmp 0x351f
movq %rax, %rbx
movq 0x188(%rsp), %rdi
cmpq %r15, %rdi
je 0x3539
callq 0x2280
jmp 0x3539
movq %rax, %rbx
leaq 0x398(%rsp), %rax
jmp 0x354e
movq %rax, %rbx
leaq 0x3d8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3565
callq 0x2280
jmp 0x3565
jmp 0x3562
jmp 0x3562
movq %rax, %rbx
movq 0x4a44(%rip), %rsi      # 0x7fb0
leaq 0x550(%rsp), %rdi
callq 0x21d0
leaq 0x5d0(%rsp), %rdi
callq 0x2110
jmp 0x35b2
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
cmpq %r12, %rdi
je 0x35a5
callq 0x2280
jmp 0x35a5
movq %rax, %rbx
movb $0x1, %r15b
testb %r15b, %r15b
je 0x35b2
movq %r14, %rdi
callq 0x2280
movq %rbx, %rdi
callq 0x2400