// File: /workspace/github_cpp_makefile_star2_O2/ctSkennerton[P]fxtract/util/sock_t.c
// Function: main
int main(int argc, char **argv)
{
    plan_tests(36);
    char    usock[] = "sock_t.u";

    int         port = argc > 1 ? atoi(argv[1]) : 9999;
    // This cannot be "localhost", which can map to IPv6 or IPv4
    // (order of returned results by getaddrinfo not deterministic).
    char const  *host = argc > 2 ? argv[2] : "127.0.0.1";
    setvbuf(stdout, NULL, _IOLBF, 0);

    IPSTR   ip = "", srvip;
    ok(host_ip("nobody.home", 80, ip), "unknown hostname");
    if (ok(!host_ip("google.ca", 80, ip), "google.ca"))
        fprintf(stderr, "# ip = %s\n", ip);

    int     rc, x, c, s = sock_bind(0, port);
    if (!ok(s >= 0, "sock_bind(%d)", port)) die("bind:");

    diag("rcvsize=%d, sndsize=%d", sock_getopt(s, SOCK_RCVSIZE), sock_getopt(s, SOCK_SNDSIZE));

    int         u = sock_create(usock);
    if (!ok(u >= 0, "sock_create(%s)", usock)) die("create:");

    rc = sock_getopt(s, SOCK_KEEPALIVE);
    ok(rc == 0, "getopt SOCK_KEEPALIVE: %d %s", rc, errname[errno]);

    rc = sock_setopt(s, SOCK_KEEPALIVE, 1);
    ok(rc == 0, "setopt SOCK_KEEPALIVE=1: %d %s", rc, errname[errno]);

    int      opt = sock_getopt(s, SOCK_LINGER);
    ok(opt == 0, "getopt SOCK_LINGER: %d %s", opt, errname[errno]);

    rc = sock_setopt(s, SOCK_LINGER, 8);
    ok(rc == 0, "setopt SOCK_LINGER=8 (secs): %d %s", rc, errname[errno]);

    rc = sock_getopt(s, SOCK_LINGER);
    ok(rc == 8, "getopt SOCK_LINGER: %d", rc);

    rc = sock_setopt(s, SOCK_LINGER, opt);
    ok(rc == 0, "setopt SOCK_LINGER=%d: %d %s", opt, rc, errname[errno]);

    rc = sock_setopt(s, SOCK_NOWAIT, 1);
    ok(!rc, "setopt SOCK_NOWAIT=1: %d", rc);

    rc = sock_getopt(s, SOCK_NOWAIT);
    ok(rc != 0, "getopt SOCK_NOWAIT: %d", rc);

    rc = sock_setopt(u, SOCK_NOWAIT, 1);
    ok(rc == 0, "setopt(unix, SOCK_NOWAIT=1): %d", rc);

    alarm(secs);

    x = sock_accept(s);
    ok(x == -1 && errno == EAGAIN, "accept(inet) did not block: %d (%s)", x, errname[errno]);

    x = sock_accept(u);
    ok(x == -1 && errno == EAGAIN, "accept(unix) did not block: %d (%s)", x, errname[errno]);

    alarm(0);

    sock_setopt(s, SOCK_NOWAIT, 0);
    sock_setopt(u, SOCK_NOWAIT, 0);

    rc = sock_getopt(s, SOCK_NOWAIT);
    ok(rc == 0, "getopt SOCK_NOWAIT: %d", rc);

    rc = sock_getopt(s, 666);
    ok(rc < 0, "getopt(bad_option) rejected: %s", errname[errno]);

    struct stat st;

    stat("/dev/null", &st);
    unsigned    devnull = st.st_ino;
    diag("inode(/dev/null) is %d", (int)devnull);

    stat("/dev/zero", &st);
    unsigned    devzero = st.st_ino;
    diag("inode(/dev/zero) is %d", (int)devzero);

    // Ensure that the test terminates even if a child goes bad.
    signal(SIGALRM, (sig_t)on_alarm);

    //--------------|-------|-------------------------------------
    if (!(pid = fork())) {
        close(s);
        close(u);

        int     fd1 = open("/dev/null", O_WRONLY);
        int     fd2 = open("/dev/zero", O_RDONLY);
        if (0 > (c = sock_connect(host, port, 0)))      die("[client]sock_connect(%s,%d):", host, port);
        if (0 > sock_peer(c, srvip, NULL, NULL, 0))     die("[client]sock_peer:");
        fprintf(stderr, "# [client] server ip=%s\n", srvip);
        if (0 > write(c, "hello", 5))                   die("[client]write(inet):");
        if (0 > (u = sock_open(usock)))                 die("[client]sock_open:");
        if (0 > sock_sendfd(u, fd1, "howdy,", 6))       die("[client]sendfd(1):");
        if (0 > sock_sendfd(u, fd2, "doody", 5))        die("[client]sendfd(2):");

        pause();    // Waiting for SIGTERM.
        _exit(0);   //NOTREACHED?
    }

    x = sock_accept(s);
    ok(x >= 0, "accept(inet): %d %s", x, errname[errno]);
    ok(fcntl(x, F_GETFD, 0) & FD_CLOEXEC, "accepted socket has CLOEXEC set");

    char    buf[99] = {};
    rc = sock_peer(x, ip, NULL, buf, sizeof(buf));
    ok(!rc, "peer addr=%s:%u, hostname=%s %s", ip, port, buf, errname[errno]);

    memset(buf, 0, sizeof(buf));
    rc = sock_recv(x, buf, sizeof(buf));
    ok(rc == 5 && !memcmp(buf, "hello", 5), "received: (%d) '%.6s'", rc, buf);

    close(x);
    close(s);

    kill(pid, SIGTERM);
    pid = wait(&rc);
    ok(WEXITSTATUS(rc) == 0,  "client exit status: %x", WEXITSTATUS(rc));

    //--------------|-------|-------------------------------------
    s = sock_bind("::", 0);
    if (s < 0 && errno == EAFNOSUPPORT) {
        skip(4, "Skipping tests requiring IPv6");
    } else {
        char    name[999] = "";
        rc = sock_addr(s, ip, &port, name, sizeof(name));
        ok(!rc, "sock_addr for ipv6 returns %d %s: ip=%s port=%d name=%s",
           rc, rc < -1 ? eainame[-rc] : errname[errno], ip, port, name);
        if (!(pid = fork())) {
            close(s);
            if (0 > (s = sock_connect(host, port, 0)))      die("[client6]sock_connect:");
            if (0 > sock_peer(s, srvip, NULL, NULL, 0))     die("[client6]sock_peer:");
            pause();
            _exit(0);
        }

        x = sock_accept(s);
        ok(x >= 0, "accept(inet6): %d %s", x, errname[errno]);
        memset(ip, 0, sizeof(ip));
        memset(buf, 0, sizeof(buf));
        rc = sock_peer(x, ip, NULL, buf, sizeof(buf));
        ok(!rc, "peer addr=%s:%u, hostname=%s %s", ip, port, buf, errname[errno]);

        kill(pid, SIGTERM);
        pid = wait(&rc);
        ok(WEXITSTATUS(rc) == 0,  "client exit status: %x", WEXITSTATUS(rc));
        close(x);
        close(s);
    }

    //--------------|-------|-------------------------------------
    x = sock_accept(u);
    ok(x >= 0, "accept(unix): %d %s", x, errname[errno]);

    memset(buf, 0, sizeof(buf));

    int     fd = -9;
    rc = sock_recvfd(x, &fd, buf, sizeof(buf));
    ok(rc == 6 && fd > 0, "recvfd returned %d, fd=%d", rc, fd);
    if (rc > 0) diag("data is '%.*s'", rc, buf);

    rc = fstat(fd, &st);
    ok(rc == 0 && st.st_ino == devnull, "fstat(%d): %d inode=%d", fd, rc, rc ? 0 : (int)st.st_ino);

    fd = -8;
    rc = sock_recvfd(x, &fd, buf+6, sizeof(buf));
    ok(rc == 5 && fd > 0, "recvfd returned %d, fd=%d", rc, fd);
    if (rc > 0) diag("data is '%.*s'", rc, buf+6);
    ok(!strcmp(buf, "howdy,doody"), "data is correct");

    rc = fstat(fd, &st);
    ok(rc == 0 && st.st_ino == devzero, "fstat(%d): %d inode=%d", fd, rc, rc ? 0 : (int)st.st_ino);

    alarm(secs);
    char    remhost[] = "aa.com";
    x = sock_connect(remhost, 80, SOCK_NOWAIT);
    ok(x >= 0 && errno == EINPROGRESS, "connect(%s,80,SOCK_NOWAIT) did not block: (%s)", remhost, errname[errno]);

    char    req[] = "GET / HTTP/1.0\r\n\r\n";
    rc = sock_send(x, req, strlen(req));
    ok(rc < 0, "send while connect is EINPROGRESS fails: %d (%s)", rc, errname[errno]);
    ok(sock_ready(x, /*WRITE|CONNECT*/1, /*SECS*/1), "connect ready in 1 sec");
    rc = sock_send(x, req, strlen(req));
    ok(rc > 0, "send now succeeds");

    unlink(usock);
#   undef  _
#   define _ "---------"
    x = sock_create(_"1"_"2"_"3"_"4"_"5"_"6"_"7"_"8"_"9"_"0"_"1");
    alarm(0);
    return exit_status();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x588, %rsp            # imm = 0x588
movq %rsi, %rbx
movl %edi, %ebp
pushq $0x24
popq %rdi
callq 0x75a3
movabsq $0x752e745f6b636f73, %rax # imm = 0x752E745F6B636F73
movq %rax, 0x18(%rsp)
movb $0x0, 0x20(%rsp)
cmpl $0x1, %ebp
jle 0x36bb
movq 0x8(%rbx), %rdi
callq 0x3490
movl %eax, 0x10(%rsp)
cmpl $0x2, %ebp
je 0x36c3
movq 0x10(%rbx), %r12
jmp 0x36ca
movl $0x270f, 0x10(%rsp)     # imm = 0x270F
leaq 0x4943(%rip), %r12      # 0x800d
movq 0x88e7(%rip), %rax      # 0xbfb8
movq (%rax), %rdi
pushq $0x1
popq %rdx
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x3030
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %r14
movups %xmm0, 0x1e(%r14)
movaps %xmm0, 0x10(%r14)
movaps %xmm0, (%r14)
leaq 0x491a(%rip), %rdi      # 0x8017
pushq $0x50
popq %rbp
movl %ebp, %esi
movq %r14, %rdx
callq 0x5c24
xorl %esi, %esi
testl %eax, %eax
setne %sil
subq $0x8, %rsp
leaq 0x4914(%rip), %r10      # 0x8031
leaq 0x4904(%rip), %r15      # 0x8028
leaq 0x48f8(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq $0x45
pushq %r15
callq 0x6c94
addq $0x20, %rsp
leaq 0x48f6(%rip), %rbx      # 0x8042
movq %rbx, %rdi
movl %ebp, %esi
movq %r14, %rdx
callq 0x5c24
subq $0x8, %rsp
testl %eax, %eax
je 0x376e
leaq 0x48bb(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
jmp 0x377a
leaq 0x48ae(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %rbx
pushq $0x46
pushq %r15
callq 0x6c94
addq $0x20, %rsp
testl %eax, %eax
jne 0x4a8e
movl 0x10(%rsp), %esi
xorl %edi, %edi
callq 0x5dd3
movl %eax, %r13d
movl 0x10(%rsp), %r11d
leaq 0x48a4(%rip), %r10      # 0x8057
leaq 0x4869(%rip), %r9       # 0x8023
testl %eax, %eax
js 0x37c5
pushq $0x1
popq %rsi
xorl %edi, %edi
jmp 0x37c9
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %r10
pushq $0x4a
pushq %r15
callq 0x6c94
addq $0x20, %rsp
testl %eax, %eax
je 0x4bc4
pushq $0x3
popq %rsi
movl %r13d, %edi
callq 0x68b6
movl %eax, %ebx
pushq $0x4
popq %rsi
movl %r13d, %edi
callq 0x68b6
leaq 0x4861(%rip), %rdi      # 0x806b
movl %ebx, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0x75ac
leaq 0x18(%rsp), %rbx
movq %rbx, %rdi
callq 0x5fcc
movl %eax, %ebp
testl %eax, %eax
movq %r12, 0x28(%rsp)
leaq 0x4850(%rip), %r10      # 0x8082
leaq 0x47ea(%rip), %r9       # 0x8023
js 0x3842
pushq $0x1
popq %rsi
xorl %edi, %edi
jmp 0x3846
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %rbx
pushq %r10
pushq $0x4f
pushq %r15
callq 0x6c94
addq $0x20, %rsp
testl %eax, %eax
je 0x4bcd
movl %r13d, %edi
xorl %esi, %esi
callq 0x68b6
movl %eax, %ebx
movl %eax, 0x8(%rsp)
callq 0x3040
movslq (%rax), %rax
leaq 0x8a5a(%rip), %r12      # 0xc2e0
movq (%r12,%rax,8), %r11
leaq 0x4809(%rip), %r10      # 0x809a
testl %ebx, %ebx
je 0x38b8
subq $0x8, %rsp
leaq 0x4783(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %rbx
pushq %r10
pushq $0x52
pushq %r15
jmp 0x38ec
subq $0x30, %rsp
movq %r11, 0x20(%rsp)
andl $0x0, 0x18(%rsp)
movq %r10, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x52, 0x8(%rsp)
leaq 0x4745(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x30, %rsp
pushq $0x1
popq %rdx
movl %r13d, %edi
xorl %esi, %esi
callq 0x62d7
movl %eax, %ebx
movl %eax, 0x8(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%r12,%rax,8), %r11
leaq 0x479c(%rip), %r10      # 0x80b7
testl %ebx, %ebx
je 0x3942
subq $0x8, %rsp
leaq 0x46f9(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %rbx
pushq %r10
pushq $0x55
pushq %r15
jmp 0x3976
subq $0x30, %rsp
movq %r11, 0x20(%rsp)
andl $0x0, 0x18(%rsp)
movq %r10, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x55, 0x8(%rsp)
leaq 0x46bb(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x30, %rsp
pushq $0x6
popq %rsi
movl %r13d, 0xc(%rsp)
movl %r13d, %edi
callq 0x68b6
movl %eax, %ebx
callq 0x3040
movslq (%rax), %rax
movq (%r12,%rax,8), %r11
leaq 0x4732(%rip), %r10      # 0x80d6
testl %ebx, %ebx
je 0x39cb
subq $0x8, %rsp
leaq 0x4670(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %rbx
pushq %r10
pushq $0x58
pushq %r15
jmp 0x39ff
subq $0x30, %rsp
movq %r11, 0x20(%rsp)
andl $0x0, 0x18(%rsp)
movq %r10, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x58, 0x8(%rsp)
leaq 0x4632(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x30, %rsp
pushq $0x6
popq %rsi
pushq $0x8
popq %rdx
movl 0xc(%rsp), %edi
callq 0x62d7
movl %eax, %r14d
movl %eax, 0x8(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%r12,%rax,8), %r11
leaq 0x46bf(%rip), %r10      # 0x80f0
testl %r14d, %r14d
je 0x3a5a
subq $0x8, %rsp
leaq 0x45e2(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %r14
pushq %r10
pushq $0x5b
pushq %r15
jmp 0x3a8e
subq $0x30, %rsp
movq %r11, 0x20(%rsp)
andl $0x0, 0x18(%rsp)
movq %r10, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x5b, 0x8(%rsp)
leaq 0x45a3(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x30, %rsp
pushq $0x6
popq %rsi
movl 0xc(%rsp), %edi
callq 0x68b6
movl %eax, 0x8(%rsp)
leaq 0x4665(%rip), %r11      # 0x8113
cmpl $0x8, %eax
jne 0x3acc
leaq 0x4569(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x8
jmp 0x3ae5
movl %eax, %r10d
leaq 0x454d(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r11
pushq $0x5e
pushq %r15
callq 0x6c94
addq $0x20, %rsp
pushq $0x6
popq %rsi
movl 0xc(%rsp), %edi
movl %ebx, %edx
callq 0x62d7
movl %eax, %r14d
movl %eax, 0x8(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%r12,%rax,8), %r10
testl %r14d, %r14d
je 0x3b42
leaq 0x4609(%rip), %r11      # 0x812a
leaq 0x44fb(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r14
pushq %rbx
pushq %r11
pushq $0x61
pushq %r15
jmp 0x3b81
subq $0x30, %rsp
movq %r10, 0x28(%rsp)
movl %ebx, 0x18(%rsp)
leaq 0x45d4(%rip), %rax      # 0x812a
andl $0x0, 0x20(%rsp)
movq %rax, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x61, 0x8(%rsp)
leaq 0x44b0(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x30, %rsp
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
movl 0xc(%rsp), %edi
callq 0x62d7
movl %eax, 0x8(%rsp)
leaq 0x45a3(%rip), %r11      # 0x8147
testl %eax, %eax
je 0x3bc9
movl %eax, %r10d
leaq 0x4471(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r11
pushq $0x64
pushq %r15
jmp 0x3bf8
subq $0x20, %rsp
andl $0x0, 0x18(%rsp)
movq %r11, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x64, 0x8(%rsp)
leaq 0x4439(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
pushq $0x2
popq %rsi
movl 0xc(%rsp), %edi
callq 0x68b6
movl %eax, 0x8(%rsp)
leaq 0x4548(%rip), %r14      # 0x8160
testl %eax, %eax
je 0x3c3e
movl %eax, %r10d
leaq 0x43fd(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r14
pushq $0x67
pushq %r15
jmp 0x3c6c
subq $0x20, %rsp
movq %r14, 0x10(%rsp)
movq %r15, (%rsp)
andl $0x0, 0x18(%rsp)
movl $0x67, 0x8(%rsp)
leaq 0x43c4(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
movl %ebp, %edi
callq 0x62d7
movl %eax, 0x8(%rsp)
leaq 0x44ea(%rip), %r11      # 0x8177
testl %eax, %eax
je 0x3cb2
movl %eax, %r10d
leaq 0x4388(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r11
pushq $0x6a
pushq %r15
jmp 0x3ce1
subq $0x20, %rsp
andl $0x0, 0x18(%rsp)
movq %r11, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x6a, 0x8(%rsp)
leaq 0x4350(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
movl 0x85e0(%rip), %edi      # 0xc2d0
callq 0x3520
movl 0xc(%rsp), %edi
callq 0x5f76
movl %eax, %ebx
callq 0x3040
cmpl $-0x1, %ebx
jne 0x3d51
cmpl $0xb, (%rax)
jne 0x3d51
movq 0x58(%r12), %rax
subq $0x30, %rsp
movq %rax, 0x20(%rsp)
leaq 0x4473(%rip), %rax      # 0x8197
orl $-0x1, 0x18(%rsp)
movq %rax, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x6f, 0x8(%rsp)
leaq 0x42e2(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
jmp 0x3d7e
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x4438(%rip), %r11      # 0x8197
leaq 0x42bd(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%r12,%r10,8)
pushq %rbx
pushq %r11
pushq $0x6f
pushq %r15
callq 0x6c94
addq $0x30, %rsp
movl %ebp, %edi
callq 0x5f76
movl %eax, %ebx
callq 0x3040
cmpl $-0x1, %ebx
jne 0x3de1
cmpl $0xb, (%rax)
jne 0x3de1
movq 0x58(%r12), %rax
subq $0x30, %rsp
movq %rax, 0x20(%rsp)
leaq 0x4407(%rip), %rax      # 0x81bb
orl $-0x1, 0x18(%rsp)
movq %rax, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x72, 0x8(%rsp)
leaq 0x4252(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
jmp 0x3e0e
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x43cc(%rip), %r11      # 0x81bb
leaq 0x422d(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%r12,%r10,8)
pushq %rbx
pushq %r11
pushq $0x72
pushq %r15
callq 0x6c94
addq $0x30, %rsp
xorl %edi, %edi
callq 0x3520
pushq $0x2
popq %rbx
movl 0xc(%rsp), %r13d
movl %r13d, %edi
movl %ebx, %esi
xorl %edx, %edx
callq 0x62d7
movl %ebp, %edi
movl %ebx, %esi
xorl %edx, %edx
callq 0x62d7
movl %r13d, %edi
movl %ebx, %esi
callq 0x68b6
movl %eax, 0x8(%rsp)
testl %eax, %eax
je 0x3e70
movl %eax, %r10d
leaq 0x41ca(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r14
pushq $0x7a
pushq %r15
jmp 0x3e9f
subq $0x20, %rsp
andl $0x0, 0x18(%rsp)
movq %r14, 0x10(%rsp)
movq %r15, (%rsp)
movl $0x7a, 0x8(%rsp)
leaq 0x4192(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
movl 0xc(%rsp), %r14d
movl %r14d, %edi
movl $0x29a, %esi            # imm = 0x29A
callq 0x68b6
movl %eax, %ebx
movl %eax, 0x8(%rsp)
callq 0x3040
movslq (%rax), %r10
shrl $0x1f, %ebx
leaq 0x430d(%rip), %r11      # 0x81df
leaq 0x414a(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%r12,%r10,8)
pushq %r11
pushq $0x7d
pushq %r15
callq 0x6c94
addq $0x20, %rsp
leaq 0x42fe(%rip), %rdi      # 0x81ff
leaq 0x110(%rsp), %rbx
movq %rbx, %rsi
callq 0x32b0
movq 0x8(%rbx), %r13
leaq 0x42ed(%rip), %rdi      # 0x8209
movl %r13d, %esi
xorl %eax, %eax
callq 0x75ac
leaq 0x42f3(%rip), %rdi      # 0x8220
movq %rbx, %rsi
callq 0x32b0
movq 0x8(%rbx), %rbx
leaq 0x42ea(%rip), %rdi      # 0x822a
movl %ebx, %esi
xorl %eax, %eax
callq 0x75ac
leaq 0xcf8(%rip), %rsi       # 0x4c48
pushq $0xe
popq %rdi
callq 0x33a0
callq 0x30b0
movl %eax, 0x8931(%rip)      # 0xc894
testl %eax, %eax
je 0x4ab0
movq %r13, 0x30(%rsp)
movq %rbx, 0x38(%rsp)
movl %ebp, 0x24(%rsp)
movl %r14d, %edi
callq 0x5f76
movl %eax, %r14d
xorl %ebx, %ebx
testl %eax, %eax
setns %bl
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x4347(%rip), %r11      # 0x82e5
leaq 0x407e(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r9, %rbx
xorl %eax, %eax
pushq (%r12,%r10,8)
pushq %r14
pushq %r11
pushq $0xa0
pushq %r15
callq 0x6c94
addq $0x30, %rsp
pushq $0x1
popq %rsi
movl %r14d, %edi
xorl %edx, %edx
xorl %eax, %eax
callq 0x31d0
andl $0x1, %eax
subq $0x8, %rsp
leaq 0x430e(%rip), %r10      # 0x82f9
xorl %edi, %edi
movq %rax, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %rbx, %r9
xorl %eax, %eax
pushq %r10
pushq $0xa1
pushq %r15
callq 0x6c94
addq $0x20, %rsp
xorps %xmm0, %xmm0
leaq 0x70(%rsp), %rbp
movaps %xmm0, 0x50(%rbp)
movaps %xmm0, 0x40(%rbp)
movaps %xmm0, 0x30(%rbp)
movaps %xmm0, 0x20(%rbp)
movaps %xmm0, 0x10(%rbp)
movaps %xmm0, (%rbp)
andl $0x0, 0x5f(%rbp)
pushq $0x63
popq %r8
movl %r14d, %edi
leaq 0x40(%rsp), %rbx
movq %rbx, %rsi
xorl %edx, %edx
movq %rbp, %rcx
callq 0x6a4b
movl %eax, 0x8(%rsp)
xorl %r13d, %r13d
testl %eax, %eax
sete %r13b
movl 0x10(%rsp), %r15d
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x42a9(%rip), %r11      # 0x8319
xorl %edi, %edi
movq %r13, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
leaq 0x3fa0(%rip), %r9       # 0x8023
xorl %eax, %eax
pushq (%r12,%r10,8)
pushq %rbp
pushq %r15
pushq %rbx
pushq %r11
pushq $0xa5
leaq 0x3f8d(%rip), %r10      # 0x8028
pushq %r10
callq 0x6c94
addq $0x40, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, (%rbp)
movaps %xmm0, 0x10(%rbp)
movaps %xmm0, 0x20(%rbp)
movaps %xmm0, 0x30(%rbp)
movaps %xmm0, 0x40(%rbp)
movaps %xmm0, 0x50(%rbp)
andl $0x0, 0x5f(%rbp)
movl %r14d, %edi
movq %rbp, %rsi
pushq $0x63
popq %rdx
callq 0x6630
movl %eax, %r12d
movl %eax, 0x8(%rsp)
cmpl $0x5, %eax
jne 0x40fe
leaq 0x41a4(%rip), %rsi      # 0x828a
leaq 0x70(%rsp), %r13
pushq $0x5
popq %rdx
movq %r13, %rdi
callq 0x3310
testl %eax, %eax
je 0x4a65
subq $0x8, %rsp
leaq 0x4230(%rip), %r10      # 0x8339
leaq 0x3f13(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
leaq 0x78(%rsp), %r11
pushq %r11
pushq %r12
pushq %r10
pushq $0xa9
leaq 0x3ef4(%rip), %r13      # 0x8028
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movl %r14d, %edi
callq 0x3560
movl 0xc(%rsp), %edi
callq 0x3560
movl 0x873e(%rip), %edi      # 0xc894
pushq $0xf
popq %rsi
callq 0x3440
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x33d0
movl %eax, 0x8723(%rip)      # 0xc894
movzbl 0x1(%r14), %r10d
leaq 0x41d2(%rip), %r11      # 0x834f
testl %r10d, %r10d
je 0x41a3
leaq 0x3e9a(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r11
pushq $0xb0
pushq %r13
jmp 0x41d2
subq $0x20, %rsp
andl $0x0, 0x18(%rsp)
movq %r11, 0x10(%rsp)
movq %r13, (%rsp)
movl $0xb0, 0x8(%rsp)
leaq 0x3e5f(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
leaq 0x4184(%rip), %rdi      # 0x8366
xorl %esi, %esi
callq 0x5dd3
movl %eax, %r14d
testl %eax, %eax
jns 0x4217
callq 0x3040
cmpl $0x61, (%rax)
jne 0x4217
leaq 0x4168(%rip), %rsi      # 0x8369
pushq $0x4
popq %rdi
xorl %eax, %eax
callq 0x7694
leaq 0x80ce(%rip), %r15      # 0xc2e0
jmp 0x44fe
leaq 0x1a0(%rsp), %r12
movl $0x3e7, %edx            # imm = 0x3E7
movq %r12, %rdi
xorl %esi, %esi
callq 0x31b0
leaq 0x40(%rsp), %rbx
leaq 0x10(%rsp), %rdx
movl %r14d, %edi
movq %rbx, %rsi
movq %r12, %rcx
movl $0x3e7, %r8d            # imm = 0x3E7
callq 0x697a
movl %eax, 0x8(%rsp)
testl %eax, %eax
je 0x426e
movl %eax, %ebp
cmpl $-0x2, %eax
jg 0x42d0
movl %ebp, %r10d
negl %r10d
shlq $0x3, %r10
addq 0x7d6c(%rip), %r10      # 0xbfd8
jmp 0x42e3
callq 0x3040
movslq (%rax), %rax
leaq 0x8063(%rip), %rcx      # 0xc2e0
movq (%rcx,%rax,8), %rax
movl 0x10(%rsp), %ecx
subq $0x40, %rsp
movq %r12, 0x38(%rsp)
movl %ecx, 0x30(%rsp)
movq %rbx, 0x28(%rsp)
movq %rax, 0x20(%rsp)
leaq 0x40e4(%rip), %rax      # 0x8387
andl $0x0, 0x18(%rsp)
movq %rax, 0x10(%rsp)
movq %r13, (%rsp)
movl $0xba, 0x8(%rsp)
leaq 0x3d63(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
jmp 0x4315
callq 0x3040
movslq (%rax), %r10
shlq $0x3, %r10
addq 0x7ced(%rip), %r10      # 0xbfd0
movl 0x10(%rsp), %r11d
leaq 0x4098(%rip), %r15      # 0x8387
leaq 0x3d2d(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r12
pushq %r11
pushq %rbx
pushq (%r10)
pushq %rbp
pushq %r15
pushq $0xba
pushq %r13
callq 0x6c94
addq $0x40, %rsp
callq 0x30b0
movl %eax, 0x856b(%rip)      # 0xc894
testl %eax, %eax
je 0x4bf4
movl %r14d, 0xc(%rsp)
movl %r14d, %edi
callq 0x5f76
movl %eax, %r12d
xorl %r13d, %r13d
testl %eax, %eax
setns %r13b
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x408d(%rip), %r11      # 0x83ea
leaq 0x3cbf(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %r13, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
leaq 0x7f67(%rip), %rbp      # 0xc2e0
pushq (%rbp,%r10,8)
pushq %r12
pushq %r11
pushq $0xc4
leaq 0x3c9a(%rip), %r10      # 0x8028
pushq %r10
callq 0x6c94
addq $0x30, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movaps %xmm0, 0x50(%rsp)
movups %xmm0, 0x5e(%rsp)
movaps %xmm0, 0x70(%rsp)
movaps %xmm0, 0x80(%rsp)
movaps %xmm0, 0x90(%rsp)
movaps %xmm0, 0xa0(%rsp)
movaps %xmm0, 0xb0(%rsp)
movaps %xmm0, 0xc0(%rsp)
andl $0x0, 0xcf(%rsp)
pushq $0x63
popq %r8
movl %r12d, %edi
movq %rbx, %rsi
xorl %edx, %edx
leaq 0x70(%rsp), %r13
movq %r13, %rcx
callq 0x6a4b
leaq 0x8(%rsp), %rbp
movl %eax, (%rbp)
xorl %r15d, %r15d
testl %eax, %eax
sete %r15b
movl 0x10(%rsp), %r14d
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
xorl %edi, %edi
movq %r15, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
leaq 0x3bf5(%rip), %r9       # 0x8023
leaq 0x7eab(%rip), %r15      # 0xc2e0
xorl %eax, %eax
pushq (%r15,%r10,8)
pushq %r13
leaq 0x3be4(%rip), %r13      # 0x8028
pushq %r14
pushq %rbx
leaq 0x3ecb(%rip), %r10      # 0x8319
pushq %r10
pushq $0xc8
pushq %r13
callq 0x6c94
addq $0x40, %rsp
movl 0x842e(%rip), %edi      # 0xc894
pushq $0xf
popq %rsi
callq 0x3440
movq %rbp, %rdi
callq 0x33d0
movl %eax, 0x8418(%rip)      # 0xc894
movzbl 0x1(%rbp), %r10d
testl %r10d, %r10d
je 0x44ae
leaq 0x3b96(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
leaq 0x3eac(%rip), %r10      # 0x834f
pushq %r10
pushq $0xcc
pushq %r13
jmp 0x44e4
subq $0x20, %rsp
andl $0x0, 0x18(%rsp)
leaq 0x3e91(%rip), %rax      # 0x834f
movq %rax, 0x10(%rsp)
movq %r13, (%rsp)
movl $0xcc, 0x8(%rsp)
leaq 0x3b4d(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x6c94
addq $0x20, %rsp
movl %r12d, %edi
callq 0x3560
movl 0xc(%rsp), %edi
callq 0x3560
movl 0x30(%rsp), %r12d
movl 0x24(%rsp), %edi
callq 0x5f76
movl %eax, %ebx
xorl %r14d, %r14d
testl %eax, %eax
setns %r14b
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x3ed5(%rip), %r11      # 0x83ff
leaq 0x3af2(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%r15,%r10,8)
pushq %rbx
pushq %r11
pushq $0xd3
pushq %r13
callq 0x6c94
addq $0x30, %rsp
xorps %xmm0, %xmm0
leaq 0x70(%rsp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, 0x20(%rdx)
movaps %xmm0, 0x50(%rdx)
andl $0x0, 0x5f(%rdx)
movaps %xmm0, 0x30(%rdx)
movaps %xmm0, 0x40(%rdx)
leaq 0x14(%rsp), %r14
movl $0xfffffff7, (%r14)     # imm = 0xFFFFFFF7
pushq $0x63
popq %rcx
movl %ebx, %edi
movq %r14, %rsi
callq 0x66be
movl %eax, %r10d
movl %eax, 0x8(%rsp)
cmpl $0x6, %eax
sete %al
movl (%r14), %r11d
testl %r11d, %r11d
setg %cl
andb %al, %cl
subq $0x8, %rsp
cmpb $0x1, %cl
jne 0x45d7
leaq 0x3e59(%rip), %r10      # 0x8413
leaq 0x3a62(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x6
pushq %r10
jmp 0x45f8
leaq 0x3e35(%rip), %r14      # 0x8413
leaq 0x3a3e(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %r10
pushq %r14
pushq $0xd9
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movl 0x8(%rsp), %esi
testl %esi, %esi
jle 0x4623
leaq 0x3e16(%rip), %rdi      # 0x842d
leaq 0x70(%rsp), %rdx
xorl %eax, %eax
callq 0x75ac
movl 0x14(%rsp), %edi
leaq 0x110(%rsp), %r14
movq %r14, %rsi
callq 0x34d0
movl %eax, %r10d
movl %eax, 0x8(%rsp)
testl %eax, %eax
sete %cl
movq 0x8(%r14), %rax
cmpq %r12, %rax
sete %dl
andb %cl, %dl
movl 0x14(%rsp), %r11d
cmpb $0x1, %dl
jne 0x469a
subq $0x30, %rsp
movl %eax, 0x28(%rsp)
movl %r11d, 0x18(%rsp)
leaq 0x3dcf(%rip), %rax      # 0x843c
andl $0x0, 0x20(%rsp)
movq %rax, 0x10(%rsp)
movq %r13, (%rsp)
movl $0xdd, 0x8(%rsp)
leaq 0x3999(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
jmp 0x46d1
testl %r10d, %r10d
movl $0x0, %r14d
cmovel %eax, %r14d
leaq 0x3d8e(%rip), %r15      # 0x843c
leaq 0x396e(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r14
pushq %r10
pushq %r11
pushq %r15
pushq $0xdd
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movl 0x38(%rsp), %r12d
leaq 0x14(%rsp), %r15
movl $0xfffffff8, (%r15)     # imm = 0xFFFFFFF8
leaq 0x76(%rsp), %r14
pushq $0x63
popq %rcx
movl %ebx, %edi
movq %r15, %rsi
movq %r14, %rdx
callq 0x66be
movl %eax, %r10d
movl %eax, 0x8(%rsp)
cmpl $0x5, %eax
sete %al
movl (%r15), %r11d
testl %r11d, %r11d
setg %cl
andb %al, %cl
subq $0x8, %rsp
cmpb $0x1, %cl
jne 0x4745
leaq 0x3ceb(%rip), %r10      # 0x8413
leaq 0x38f4(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x5
pushq %r10
jmp 0x4765
leaq 0x3cc7(%rip), %rbx      # 0x8413
leaq 0x38d0(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %r10
pushq %rbx
pushq $0xe1
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movl 0x8(%rsp), %esi
testl %esi, %esi
jle 0x478e
leaq 0x3ca9(%rip), %rdi      # 0x842d
movq %r14, %rdx
xorl %eax, %eax
callq 0x75ac
leaq 0x3cbe(%rip), %rsi      # 0x8453
leaq 0x70(%rsp), %rdi
pushq $0xc
popq %rdx
callq 0x3310
xorl %esi, %esi
testl %eax, %eax
sete %sil
subq $0x8, %rsp
leaq 0x3caa(%rip), %r10      # 0x845f
leaq 0x3867(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq $0xe3
pushq %r13
callq 0x6c94
addq $0x20, %rsp
movl 0x14(%rsp), %edi
leaq 0x110(%rsp), %rbx
movq %rbx, %rsi
callq 0x34d0
movl %eax, %r10d
movl %eax, 0x8(%rsp)
testl %eax, %eax
sete %cl
movq 0x8(%rbx), %rax
cmpq %r12, %rax
sete %dl
andb %cl, %dl
movl 0x14(%rsp), %r11d
cmpb $0x1, %dl
jne 0x4850
subq $0x30, %rsp
movl %eax, 0x28(%rsp)
movl %r11d, 0x18(%rsp)
leaq 0x3c19(%rip), %rax      # 0x843c
andl $0x0, 0x20(%rsp)
movq %rax, 0x10(%rsp)
movq %r13, (%rsp)
movl $0xe6, 0x8(%rsp)
leaq 0x37e3(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
jmp 0x4884
testl %r10d, %r10d
movl $0x0, %ebx
cmovel %eax, %ebx
leaq 0x3bda(%rip), %r14      # 0x843c
leaq 0x37ba(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %rbx
pushq %r10
pushq %r11
pushq %r14
pushq $0xe6
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movl 0x7a3d(%rip), %edi      # 0xc2d0
callq 0x3520
leaq 0xe0(%rsp), %r15
movl $0x6d6f63, 0x3(%r15)    # imm = 0x6D6F63
movl $0x632e6161, (%r15)     # imm = 0x632E6161
pushq $0x50
popq %rsi
pushq $0x2
popq %rdx
movq %r15, %rdi
callq 0x61bd
movl %eax, %ebx
callq 0x3040
testl %ebx, %ebx
js 0x48df
cmpl $0x73, (%rax)
jne 0x48df
pushq $0x1
popq %rsi
movl $0x398, %r10d           # imm = 0x398
addq 0x76f3(%rip), %r10      # 0xbfd0
jmp 0x48ef
movslq (%rax), %r10
shlq $0x3, %r10
addq 0x76e3(%rip), %r10      # 0xbfd0
xorl %esi, %esi
subq $0x8, %rsp
leaq 0x3b7c(%rip), %r11      # 0x8476
leaq 0x3722(%rip), %r14      # 0x8023
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
xorl %eax, %eax
pushq (%r10)
pushq %r15
pushq %r11
pushq $0xeb
pushq %r13
callq 0x6c94
addq $0x30, %rsp
movaps 0x3c43(%rip), %xmm0     # 0x8570
leaq 0x1a0(%rsp), %r15
movaps %xmm0, (%r15)
movl $0xa0d0a, 0xf(%r15)     # imm = 0xA0D0A
movq %r15, %rdi
callq 0x3140
movl %ebx, %edi
movq %r15, %rsi
movl %eax, %edx
callq 0x6677
movl %eax, %r12d
movl %eax, 0x8(%rsp)
movq %r13, %rbp
movl %eax, %r13d
shrl $0x1f, %r13d
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x3b2c(%rip), %r11      # 0x84a5
xorl %edi, %edi
movq %r13, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
xorl %eax, %eax
leaq 0x794f(%rip), %r13      # 0xc2e0
pushq (%r13,%r10,8)
pushq %r12
pushq %r11
pushq $0xef
pushq %rbp
callq 0x6c94
addq $0x30, %rsp
pushq $0x1
popq %rdx
movl %ebx, %edi
movl %edx, %esi
callq 0x638c
xorl %esi, %esi
testl %eax, %eax
setne %sil
subq $0x8, %rsp
leaq 0x3b0e(%rip), %r10      # 0x84d6
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
xorl %eax, %eax
pushq %r10
pushq $0xf0
pushq %rbp
callq 0x6c94
addq $0x20, %rsp
movq %r15, %rdi
callq 0x3140
movl %ebx, %edi
movq %r15, %rsi
movl %eax, %edx
callq 0x6677
movl %eax, 0x8(%rsp)
xorl %esi, %esi
testl %eax, %eax
setg %sil
subq $0x8, %rsp
leaq 0x3adb(%rip), %r10      # 0x84ed
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq %r14, %r9
xorl %eax, %eax
pushq %r10
pushq $0xf2
pushq %rbp
callq 0x6c94
addq $0x20, %rsp
leaq 0x18(%rsp), %rdi
callq 0x3160
leaq 0x3abd(%rip), %rdi      # 0x84ff
callq 0x5fcc
xorl %edi, %edi
callq 0x3520
callq 0x7841
addq $0x588, %rsp            # imm = 0x588
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
subq $0x8, %rsp
leaq 0x38c9(%rip), %r10      # 0x8339
leaq 0x35ac(%rip), %r9       # 0x8023
pushq $0x1
popq %rsi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r13
pushq $0x5
jmp 0x4126
movq 0x754b(%rip), %rax      # 0xbfe0
movq (%rax), %rdi
leaq 0x35ad(%rip), %rsi      # 0x804c
leaq 0x40(%rsp), %rdx
xorl %eax, %eax
callq 0x3460
jmp 0x3799
movl %r14d, %edi
callq 0x3560
movl %ebp, %edi
callq 0x3560
leaq 0x3739(%rip), %rdi      # 0x81ff
pushq $0x1
popq %rsi
xorl %eax, %eax
callq 0x3220
movl %eax, %ebp
leaq 0x3747(%rip), %rdi      # 0x8220
xorl %esi, %esi
xorl %eax, %eax
callq 0x3220
movl %eax, %ebx
movl 0x10(%rsp), %esi
movq 0x28(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x61bd
testl %eax, %eax
js 0x4bd6
movl %eax, %r14d
leaq 0xe0(%rsp), %rsi
movl %eax, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6a4b
testl %eax, %eax
js 0x4beb
movq 0x74b9(%rip), %rax      # 0xbfe0
movq (%rax), %rdi
leaq 0x3740(%rip), %rsi      # 0x8271
leaq 0xe0(%rsp), %rdx
xorl %eax, %eax
callq 0x3460
leaq 0x3743(%rip), %rsi      # 0x828a
pushq $0x5
popq %rdx
movl %r14d, %edi
callq 0x3120
testq %rax, %rax
jns 0x4b60
leaq 0x3732(%rip), %rdi      # 0x8290
jmp 0x4bbd
leaq 0x18(%rsp), %rdi
callq 0x60ed
testl %eax, %eax
jns 0x4b77
leaq 0x3730(%rip), %rdi      # 0x82a5
jmp 0x4bbd
movl %eax, %r14d
leaq 0x3737(%rip), %rdx      # 0x82b8
pushq $0x6
popq %rcx
movl %eax, %edi
movl %ebp, %esi
callq 0x67f1
testl %eax, %eax
jns 0x4b9a
leaq 0x3727(%rip), %rdi      # 0x82bf
jmp 0x4bbd
leaq 0x38b8(%rip), %rdx      # 0x8459
pushq $0x5
popq %rcx
movl %r14d, %edi
movl %ebx, %esi
callq 0x67f1
testl %eax, %eax
jns 0x4c3c
leaq 0x3715(%rip), %rdi      # 0x82d2
xorl %eax, %eax
callq 0x5385
leaq 0x349a(%rip), %rdi      # 0x8065
jmp 0x4bbd
leaq 0x34be(%rip), %rdi      # 0x8092
jmp 0x4bbd
movl 0x10(%rsp), %edx
leaq 0x3660(%rip), %rdi      # 0x8241
movq %r15, %rsi
xorl %eax, %eax
callq 0x5385
leaq 0x366c(%rip), %rdi      # 0x825e
jmp 0x4bbd
movl %r14d, %edi
callq 0x3560
movl 0x10(%rsp), %esi
movq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x61bd
testl %eax, %eax
jns 0x4c19
leaq 0x37a8(%rip), %rdi      # 0x83bf
jmp 0x4bbd
leaq 0xe0(%rsp), %rsi
movl %eax, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6a4b
testl %eax, %eax
jns 0x4c3c
leaq 0x379c(%rip), %rdi      # 0x83d6
jmp 0x4bbd
callq 0x3060
xorl %edi, %edi
callq 0x34b0