// File: /workspace/github_cpp_makefile_star2_O1/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
movl $0x24, %edi
callq 0x76ea
movabsq $0x752e745f6b636f73, %rax # imm = 0x752E745F6B636F73
movq %rax, 0x18(%rsp)
movb $0x0, 0x20(%rsp)
movl $0x270f, %eax           # imm = 0x270F
cmpl $0x2, %ebp
jl 0x3733
movq 0x8(%rbx), %rdi
callq 0x3480
movl %eax, 0xc(%rsp)
cmpl $0x3, %ebp
jl 0x3742
movq 0x10(%rbx), %r15
jmp 0x3749
leaq 0x48c4(%rip), %r15      # 0x800d
movq 0x8868(%rip), %rax      # 0xbfb8
movq (%rax), %rdi
xorl %esi, %esi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x3030
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %r12
movups %xmm0, 0x1e(%r12)
movaps %xmm0, 0x10(%r12)
movaps %xmm0, (%r12)
leaq 0x4896(%rip), %rdi      # 0x8017
movl $0x50, %esi
movq %r12, %rdx
callq 0x5c68
xorl %esi, %esi
testl %eax, %eax
setne %sil
subq $0x8, %rsp
leaq 0x4890(%rip), %r10      # 0x8031
leaq 0x4880(%rip), %r14      # 0x8028
leaq 0x4874(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq $0x45
pushq %r14
callq 0x6e14
addq $0x20, %rsp
leaq 0x4872(%rip), %rbx      # 0x8042
movq %rbx, %rdi
movl $0x50, %esi
movq %r12, %rdx
callq 0x5c68
testl %eax, %eax
movq %r15, 0x28(%rsp)
je 0x37fa
subq $0x8, %rsp
leaq 0x482f(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
jmp 0x380c
subq $0x8, %rsp
leaq 0x481e(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %rbx
pushq $0x46
pushq %r14
callq 0x6e14
addq $0x20, %rsp
testl %eax, %eax
jne 0x4a08
movl 0xc(%rsp), %esi
xorl %edi, %edi
callq 0x5e24
movl %eax, %r15d
movl 0xc(%rsp), %r11d
leaq 0x4812(%rip), %r10      # 0x8057
leaq 0x47d7(%rip), %r9       # 0x8023
testl %eax, %eax
js 0x3859
movl $0x1, %esi
xorl %edi, %edi
jmp 0x385d
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 %r14
callq 0x6e14
addq $0x20, %rsp
testl %eax, %eax
je 0x4b47
movl %r15d, %edi
movl $0x3, %esi
callq 0x6a11
movl %eax, %ebx
movl %r15d, %edi
movl $0x4, %esi
callq 0x6a11
leaq 0x47c9(%rip), %rdi      # 0x806b
movl %ebx, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0x76f3
leaq 0x18(%rsp), %rbx
movq %rbx, %rdi
callq 0x604a
movl %eax, %r13d
leaq 0x47be(%rip), %r10      # 0x8082
leaq 0x4758(%rip), %r9       # 0x8023
testl %eax, %eax
js 0x38d8
movl $0x1, %esi
xorl %edi, %edi
jmp 0x38dc
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 %r14
callq 0x6e14
addq $0x20, %rsp
testl %eax, %eax
je 0x4b50
movl %r15d, %edi
xorl %esi, %esi
callq 0x6a11
movl %eax, %ebx
movl %eax, 0x4(%rsp)
callq 0x3040
movslq (%rax), %rax
leaq 0x89b4(%rip), %rbp      # 0xc2d0
movq (%rbp,%rax,8), %r11
leaq 0x4772(%rip), %r10      # 0x809a
subq $0x8, %rsp
testl %ebx, %ebx
je 0x3949
leaq 0x46ec(%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
jmp 0x3964
leaq 0x46d3(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq $0x52
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl %r15d, %edi
xorl %esi, %esi
movl $0x1, %edx
callq 0x6381
movl %eax, %ebx
movl %eax, 0x4(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%rbp,%rax,8), %r11
leaq 0x471b(%rip), %r10      # 0x80b7
subq $0x8, %rsp
testl %ebx, %ebx
je 0x39bd
leaq 0x4678(%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
jmp 0x39d8
leaq 0x465f(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq $0x55
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl %r15d, 0x8(%rsp)
movl %r15d, %edi
movl $0x6, %esi
callq 0x6a11
movl %eax, %ebx
callq 0x3040
movslq (%rax), %rax
movq (%rbp,%rax,8), %r11
leaq 0x46c7(%rip), %r10      # 0x80d6
movq %r12, %r15
subq $0x8, %rsp
testl %ebx, %ebx
je 0x3a33
leaq 0x4602(%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
jmp 0x3a4e
leaq 0x45e9(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq $0x58
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl 0x8(%rsp), %edi
movl $0x6, %esi
movl $0x8, %edx
callq 0x6381
movl %eax, %r12d
movl %eax, 0x4(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%rbp,%rax,8), %r11
leaq 0x4665(%rip), %r10      # 0x80f0
subq $0x8, %rsp
testl %r12d, %r12d
je 0x3aae
leaq 0x4588(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq %r12
jmp 0x3ac9
leaq 0x456e(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq $0x5b
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl 0x8(%rsp), %edi
movl $0x6, %esi
callq 0x6a11
movl %eax, 0x4(%rsp)
leaq 0x4622(%rip), %r11      # 0x8113
cmpl $0x8, %eax
jne 0x3b11
leaq 0x4526(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x8
jmp 0x3b2a
movl %eax, %r10d
leaq 0x4508(%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 %r14
callq 0x6e14
addq $0x20, %rsp
movl 0x8(%rsp), %edi
movl $0x6, %esi
movl %ebx, %edx
callq 0x6381
movl %eax, %r12d
movl %eax, 0x4(%rsp)
callq 0x3040
movslq (%rax), %rax
movq (%rbp,%rax,8), %r10
leaq 0x45c6(%rip), %r11      # 0x812a
leaq 0x44b8(%rip), %r9       # 0x8023
testl %r12d, %r12d
je 0x3b83
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq %r12
jmp 0x3b97
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq $0x0
pushq %rbx
pushq %r11
pushq $0x61
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl 0x8(%rsp), %edi
movl $0x2, %esi
movl $0x1, %edx
callq 0x6381
movl %eax, 0x4(%rsp)
leaq 0x4582(%rip), %r11      # 0x8147
testl %eax, %eax
je 0x3be4
movl %eax, %r10d
leaq 0x4450(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
jmp 0x3bfd
leaq 0x4438(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r11
pushq $0x64
pushq %r14
callq 0x6e14
addq $0x20, %rsp
movl 0x8(%rsp), %edi
movl $0x2, %esi
callq 0x6a11
movl %eax, 0x4(%rsp)
leaq 0x453b(%rip), %r12      # 0x8160
testl %eax, %eax
je 0x3c47
movl %eax, %r10d
leaq 0x43f0(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
jmp 0x3c5d
leaq 0x43d5(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r12
pushq $0x67
pushq %r14
callq 0x6e14
addq $0x20, %rsp
movl %r13d, %edi
movl $0x2, %esi
movl $0x1, %edx
callq 0x6381
movl %eax, 0x4(%rsp)
leaq 0x44ee(%rip), %r11      # 0x8177
testl %eax, %eax
je 0x3ca8
movl %eax, %r10d
leaq 0x438c(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
jmp 0x3cc1
leaq 0x4374(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r11
pushq $0x6a
pushq %r14
callq 0x6e14
addq $0x20, %rsp
movl 0x85ea(%rip), %edi      # 0xc2c0
callq 0x3510
movl 0x8(%rsp), %edi
callq 0x5fec
movl %eax, %ebx
cmpl $-0x1, %eax
jne 0x3d20
callq 0x3040
cmpl $0xb, (%rax)
jne 0x3d20
subq $0x8, %rsp
leaq 0x4497(%rip), %r10      # 0x8197
leaq 0x431c(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq 0x58(%rbp)
pushq $-0x1
pushq %r10
jmp 0x3d4f
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x4464(%rip), %r11      # 0x8197
leaq 0x42e9(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%rbp,%r10,8)
pushq %rbx
pushq %r11
pushq $0x6f
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl %r13d, %edi
callq 0x5fec
movl %eax, %ebx
cmpl $-0x1, %eax
jne 0x3da0
callq 0x3040
cmpl $0xb, (%rax)
jne 0x3da0
subq $0x8, %rsp
leaq 0x443b(%rip), %r10      # 0x81bb
leaq 0x429c(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq 0x58(%rbp)
pushq $-0x1
pushq %r10
jmp 0x3dcf
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x4408(%rip), %r11      # 0x81bb
leaq 0x4269(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%rbp,%r10,8)
pushq %rbx
pushq %r11
pushq $0x72
pushq %r14
callq 0x6e14
addq $0x30, %rsp
xorl %edi, %edi
callq 0x3510
movl 0x8(%rsp), %ebx
movl %ebx, %edi
movl $0x2, %esi
xorl %edx, %edx
callq 0x6381
movl %r13d, %edi
movl $0x2, %esi
xorl %edx, %edx
callq 0x6381
movl %ebx, %edi
movl $0x2, %esi
callq 0x6a11
movl %eax, 0x4(%rsp)
testl %eax, %eax
je 0x3e33
movl %eax, %r10d
leaq 0x4201(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
jmp 0x3e4c
leaq 0x41e9(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r12
pushq $0x7a
pushq %r14
callq 0x6e14
addq $0x20, %rsp
movl 0x8(%rsp), %r12d
movl %r12d, %edi
movl $0x29a, %esi            # imm = 0x29A
callq 0x6a11
movl %eax, %ebx
movl %eax, 0x4(%rsp)
callq 0x3040
movslq (%rax), %r10
shrl $0x1f, %ebx
leaq 0x435a(%rip), %r11      # 0x81df
leaq 0x4197(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq (%rbp,%r10,8)
pushq %r11
pushq $0x7d
pushq %r14
callq 0x6e14
addq $0x20, %rsp
leaq 0x434a(%rip), %rdi      # 0x81ff
leaq 0x110(%rsp), %rbx
movq %rbx, %rsi
callq 0x32b0
movq 0x8(%rbx), %rsi
leaq 0x4339(%rip), %rdi      # 0x8209
movq %rsi, 0x30(%rsp)
xorl %eax, %eax
callq 0x76f3
leaq 0x433d(%rip), %rdi      # 0x8220
movq %rbx, %rsi
callq 0x32b0
movq 0x8(%rbx), %rsi
leaq 0x4334(%rip), %rdi      # 0x822a
movq %rsi, 0x38(%rsp)
xorl %eax, %eax
callq 0x76f3
leaq 0xcc2(%rip), %rsi       # 0x4bcb
movl $0xe, %edi
callq 0x3390
callq 0x30b0
movl %eax, 0x8966(%rip)      # 0xc884
testl %eax, %eax
je 0x4a2a
movl %r13d, 0x14(%rsp)
movl %r12d, %edi
callq 0x5fec
movl %eax, %r12d
xorl %ebx, %ebx
testl %eax, %eax
setns %bl
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x4395(%rip), %r11      # 0x82e5
leaq 0x40cc(%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 (%rbp,%r10,8)
pushq %r12
pushq %r11
pushq $0xa0
pushq %r14
callq 0x6e14
addq $0x30, %rsp
movl %r12d, %edi
movl $0x1, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x31d0
andl $0x1, %eax
subq $0x8, %rsp
leaq 0x4359(%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 %r14
callq 0x6e14
addq $0x20, %rsp
leaq 0x70(%rsp), %rbx
xorl %eax, %eax
movl %eax, 0x5f(%rbx)
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rbx)
movaps %xmm0, 0x40(%rbx)
movaps %xmm0, 0x30(%rbx)
movaps %xmm0, 0x20(%rbx)
movaps %xmm0, 0x10(%rbx)
movaps %xmm0, (%rbx)
movl %r12d, %edi
movq %r15, %r13
movq %r15, %rsi
xorl %edx, %edx
movq %rbx, %rcx
movl $0x63, %r8d
callq 0x6bb7
movl %eax, 0x4(%rsp)
movq %rbp, %r15
xorl %ebp, %ebp
testl %eax, %eax
sete %bpl
movl 0xc(%rsp), %r14d
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x42f2(%rip), %r11      # 0x8319
xorl %edi, %edi
movq %rbp, %rsi
leaq 0x3ff5(%rip), %rbp      # 0x8028
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
leaq 0x3fe2(%rip), %r9       # 0x8023
xorl %eax, %eax
pushq (%r15,%r10,8)
pushq %rbx
pushq %r14
pushq %r13
pushq %r11
pushq $0xa5
pushq %rbp
callq 0x6e14
addq $0x40, %rsp
xorps %xmm0, %xmm0
movaps %xmm0, (%rbx)
movaps %xmm0, 0x10(%rbx)
movaps %xmm0, 0x20(%rbx)
movaps %xmm0, 0x30(%rbx)
movaps %xmm0, 0x40(%rbx)
movaps %xmm0, 0x50(%rbx)
xorl %eax, %eax
movl %eax, 0x5f(%rbx)
movl %r12d, %edi
movq %rbx, %rsi
movl $0x63, %edx
callq 0x6773
movl %eax, %r10d
movl %eax, 0x4(%rsp)
cmpl $0x5, %eax
jne 0x40b1
movl $0x6c6c6568, %eax       # imm = 0x6C6C6568
xorl 0x70(%rsp), %eax
movzbl 0x74(%rsp), %ecx
xorl $0x6f, %ecx
orl %eax, %ecx
je 0x49dc
subq $0x8, %rsp
leaq 0x427d(%rip), %r11      # 0x8339
leaq 0x3f60(%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 $0xa9
pushq %rbp
callq 0x6e14
addq $0x30, %rsp
movl %r12d, %edi
callq 0x3550
movl 0x8(%rsp), %edi
callq 0x3550
movl 0x8789(%rip), %edi      # 0xc884
movl $0xf, %esi
callq 0x3430
leaq 0x4(%rsp), %r14
movq %r14, %rdi
callq 0x33c0
movl %eax, 0x876c(%rip)      # 0xc884
movzbl 0x1(%r14), %r10d
testl %r10d, %r10d
je 0x4143
leaq 0x4226(%rip), %r11      # 0x834f
leaq 0x3ef3(%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
jmp 0x4165
leaq 0x4205(%rip), %r10      # 0x834f
leaq 0x3ed2(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r10
pushq $0xb0
pushq %rbp
callq 0x6e14
addq $0x20, %rsp
leaq 0x41eb(%rip), %rdi      # 0x8366
xorl %esi, %esi
callq 0x5e24
movl %eax, %r14d
testl %eax, %eax
jns 0x41af
callq 0x3040
cmpl $0x61, (%rax)
jne 0x41af
leaq 0x41cf(%rip), %rsi      # 0x8369
movl $0x4, %edi
xorl %eax, %eax
callq 0x77db
movl 0x14(%rsp), %ebx
jmp 0x4487
leaq 0x1a0(%rsp), %r12
movl $0x3e7, %edx            # imm = 0x3E7
movq %r12, %rdi
xorl %esi, %esi
callq 0x31b0
leaq 0x40(%rsp), %r15
leaq 0xc(%rsp), %rdx
movl %r14d, %edi
movq %r15, %rsi
movq %r12, %rcx
movl $0x3e7, %r8d            # imm = 0x3E7
callq 0x6add
movl %eax, 0x4(%rsp)
testl %eax, %eax
je 0x4207
movl %eax, %r13d
cmpl $-0x2, %eax
jg 0x425b
movl %r13d, %r10d
negl %r10d
shlq $0x3, %r10
addq 0x7dd3(%rip), %r10      # 0xbfd8
jmp 0x426e
callq 0x3040
movslq (%rax), %r10
movl 0xc(%rsp), %r11d
leaq 0x416c(%rip), %r13      # 0x8387
leaq 0x3e01(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r12
pushq %r11
pushq %r15
leaq 0x8091(%rip), %r11      # 0xc2d0
pushq (%r11,%r10,8)
pushq $0x0
pushq %r13
pushq $0xba
pushq %rbp
callq 0x6e14
addq $0x40, %rsp
movq %r15, %r12
jmp 0x42af
callq 0x3040
movslq (%rax), %r10
shlq $0x3, %r10
addq 0x7d62(%rip), %r10      # 0xbfd0
movl 0xc(%rsp), %r11d
leaq 0x410d(%rip), %r15      # 0x8387
leaq 0x3da2(%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
leaq 0x50(%rsp), %r12
pushq %r12
pushq (%r10)
pushq %r13
pushq %r15
pushq $0xba
pushq %rbp
callq 0x6e14
addq $0x40, %rsp
movq %r12, %r15
callq 0x30b0
movl %eax, 0x85c7(%rip)      # 0xc884
testl %eax, %eax
je 0x4b77
movl %r14d, 0x8(%rsp)
movl %r14d, %edi
callq 0x5fec
movl %eax, %r12d
xorl %ebp, %ebp
testl %eax, %eax
setns %bpl
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x40fa(%rip), %r11      # 0x83ea
leaq 0x3d2c(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %rbp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
leaq 0x7fc4(%rip), %r13      # 0xc2d0
pushq (%r13,%r10,8)
pushq %r12
pushq %r11
pushq $0xc4
leaq 0x3d07(%rip), %r10      # 0x8028
pushq %r10
callq 0x6e14
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)
movl $0x0, 0xcf(%rsp)
movl %r12d, %edi
movq %r15, %r13
movq %r15, %rsi
xorl %edx, %edx
movq %rbx, %rcx
movl $0x63, %r8d
callq 0x6bb7
leaq 0x4(%rsp), %rbp
movl %eax, (%rbp)
xorl %r15d, %r15d
testl %eax, %eax
sete %r15b
movl 0xc(%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 0x3c5f(%rip), %r9       # 0x8023
xorl %eax, %eax
leaq 0x7f03(%rip), %r11      # 0xc2d0
pushq (%r11,%r10,8)
pushq %rbx
leaq 0x3c4f(%rip), %rbx      # 0x8028
pushq %r14
pushq %r13
leaq 0x3f35(%rip), %r10      # 0x8319
pushq %r10
pushq $0xc8
pushq %rbx
callq 0x6e14
addq $0x40, %rsp
movl 0x8489(%rip), %edi      # 0xc884
movl $0xf, %esi
callq 0x3430
movq %rbp, %rdi
callq 0x33c0
movl %eax, 0x8471(%rip)      # 0xc884
movzbl 0x1(%rbp), %r10d
testl %r10d, %r10d
je 0x443e
leaq 0x3f2b(%rip), %r11      # 0x834f
leaq 0x3bf8(%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
jmp 0x4460
leaq 0x3f0a(%rip), %r10      # 0x834f
leaq 0x3bd7(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq $0x0
pushq %r10
pushq $0xcc
pushq %rbx
callq 0x6e14
addq $0x20, %rsp
movq %rbx, %rbp
movl 0x14(%rsp), %ebx
movl %r12d, %edi
callq 0x3550
movl 0x8(%rsp), %edi
callq 0x3550
movl %ebx, %edi
callq 0x5fec
movl %eax, %ebx
xorl %r14d, %r14d
testl %eax, %eax
setns %r14b
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x3f53(%rip), %r11      # 0x83ff
leaq 0x3b70(%rip), %r9       # 0x8023
xorl %edi, %edi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
leaq 0x7e08(%rip), %r14      # 0xc2d0
pushq (%r14,%r10,8)
pushq %rbx
pushq %r11
pushq $0xd3
pushq %rbp
callq 0x6e14
addq $0x30, %rsp
xorps %xmm0, %xmm0
leaq 0x70(%rsp), %rdx
movaps %xmm0, (%rdx)
movaps %xmm0, 0x10(%rdx)
movaps %xmm0, 0x20(%rdx)
movaps %xmm0, 0x30(%rdx)
movaps %xmm0, 0x40(%rdx)
movaps %xmm0, 0x50(%rdx)
movl $0x0, 0x5f(%rdx)
leaq 0x10(%rsp), %r14
movl $0xfffffff7, (%r14)     # imm = 0xFFFFFFF7
movl %ebx, %edi
movq %r14, %rsi
movl $0x63, %ecx
callq 0x6807
movl %eax, %r10d
movl %eax, 0x4(%rsp)
cmpl $0x6, %eax
sete %al
movl (%r14), %r11d
testl %r11d, %r11d
setg %cl
andb %al, %cl
subq $0x8, %rsp
cmpb $0x1, %cl
jne 0x4566
leaq 0x3ecc(%rip), %r10      # 0x8413
leaq 0x3ad5(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x6
pushq %r10
jmp 0x4587
leaq 0x3ea6(%rip), %r14      # 0x8413
leaq 0x3aaf(%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 %rbp
callq 0x6e14
addq $0x30, %rsp
movl 0x4(%rsp), %esi
testl %esi, %esi
jle 0x45b1
leaq 0x3e88(%rip), %rdi      # 0x842d
leaq 0x70(%rsp), %rdx
xorl %eax, %eax
callq 0x76f3
movl 0x10(%rsp), %edi
leaq 0x110(%rsp), %rsi
callq 0x34c0
movl %eax, %r10d
movl %eax, 0x4(%rsp)
testl %eax, %eax
jne 0x460b
movl 0x30(%rsp), %eax
movq 0x118(%rsp), %r11
cmpq %rax, %r11
jne 0x460b
movl 0x10(%rsp), %r10d
leaq 0x3e52(%rip), %r14      # 0x843c
leaq 0x3a32(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq %r14
jmp 0x4646
movl 0x10(%rsp), %r11d
movl $0x0, %r14d
testl %r10d, %r10d
jne 0x4623
movl 0x118(%rsp), %r14d
leaq 0x3e12(%rip), %r15      # 0x843c
leaq 0x39f2(%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 %rbp
callq 0x6e14
addq $0x30, %rsp
leaq 0x10(%rsp), %r15
movl $0xfffffff8, (%r15)     # imm = 0xFFFFFFF8
leaq 0x76(%rsp), %r14
movl %ebx, %edi
movq %r15, %rsi
movq %r14, %rdx
movl $0x63, %ecx
callq 0x6807
movl %eax, %r10d
movl %eax, 0x4(%rsp)
cmpl $0x5, %eax
sete %al
movl (%r15), %r11d
testl %r11d, %r11d
setg %cl
andb %al, %cl
subq $0x8, %rsp
cmpb $0x1, %cl
jne 0x46bf
leaq 0x3d73(%rip), %r10      # 0x8413
leaq 0x397c(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x5
pushq %r10
jmp 0x46df
leaq 0x3d4d(%rip), %rbx      # 0x8413
leaq 0x3956(%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 %rbp
callq 0x6e14
addq $0x30, %rsp
movl 0x4(%rsp), %esi
testl %esi, %esi
jle 0x4707
leaq 0x3d30(%rip), %rdi      # 0x842d
movq %r14, %rdx
xorl %eax, %eax
callq 0x76f3
movabsq $0x6f642c7964776f68, %rax # imm = 0x6F642C7964776F68
xorq 0x70(%rsp), %rax
movl 0x78(%rsp), %ecx
xorq $0x79646f, %rcx         # imm = 0x79646F
xorl %esi, %esi
orq %rax, %rcx
sete %sil
subq $0x8, %rsp
leaq 0x3d2a(%rip), %r10      # 0x845f
leaq 0x38e7(%rip), %r9       # 0x8023
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r10
pushq $0xe3
pushq %rbp
callq 0x6e14
addq $0x20, %rsp
movl 0x10(%rsp), %edi
leaq 0x110(%rsp), %rsi
callq 0x34c0
movl %eax, %r10d
movl %eax, 0x4(%rsp)
testl %eax, %eax
jne 0x47b1
movl 0x38(%rsp), %eax
movq 0x118(%rsp), %r11
cmpq %rax, %r11
jne 0x47b1
movl 0x10(%rsp), %r10d
leaq 0x3cab(%rip), %rbx      # 0x843c
leaq 0x388b(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %r11
pushq $0x0
pushq %r10
pushq %rbx
jmp 0x47e9
movl 0x10(%rsp), %r11d
movl $0x0, %ebx
testl %r10d, %r10d
jne 0x47c7
movl 0x118(%rsp), %ebx
leaq 0x3c6e(%rip), %r14      # 0x843c
leaq 0x384e(%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 %rbp
callq 0x6e14
addq $0x30, %rsp
movl 0x7ac2(%rip), %edi      # 0xc2c0
callq 0x3510
leaq 0xe0(%rsp), %r15
movl $0x6d6f63, 0x3(%r15)    # imm = 0x6D6F63
movl $0x632e6161, (%r15)     # imm = 0x632E6161
movq %r15, %rdi
movl $0x50, %esi
movl $0x2, %edx
callq 0x6253
movl %eax, %ebx
testl %eax, %eax
js 0x4850
callq 0x3040
cmpl $0x73, (%rax)
jne 0x4850
movl $0x398, %r10d           # imm = 0x398
addq 0x7787(%rip), %r10      # 0xbfd0
movl $0x1, %esi
jmp 0x4865
callq 0x3040
movslq (%rax), %r10
shlq $0x3, %r10
addq 0x776d(%rip), %r10      # 0xbfd0
xorl %esi, %esi
subq $0x8, %rsp
leaq 0x3c06(%rip), %r11      # 0x8476
leaq 0x37ac(%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 %rbp
callq 0x6e14
addq $0x30, %rsp
movaps 0x3cce(%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 0x67bd
movl %eax, %r12d
movl %eax, 0x4(%rsp)
movl %eax, %r13d
shrl $0x1f, %r13d
callq 0x3040
movslq (%rax), %r10
subq $0x8, %rsp
leaq 0x3bba(%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 0x79cd(%rip), %r13      # 0xc2d0
pushq (%r13,%r10,8)
pushq %r12
pushq %r11
pushq $0xef
pushq %rbp
callq 0x6e14
addq $0x30, %rsp
movl %ebx, %edi
movl $0x1, %esi
movl $0x1, %edx
callq 0x644d
xorl %esi, %esi
testl %eax, %eax
setne %sil
subq $0x8, %rsp
leaq 0x3b97(%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 0x6e14
addq $0x20, %rsp
movq %r15, %rdi
callq 0x3140
movl %ebx, %edi
movq %r15, %rsi
movl %eax, %edx
callq 0x67bd
movl %eax, 0x4(%rsp)
xorl %esi, %esi
testl %eax, %eax
setg %sil
subq $0x8, %rsp
leaq 0x3b64(%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 0x6e14
addq $0x20, %rsp
leaq 0x18(%rsp), %rdi
callq 0x3160
leaq 0x3b46(%rip), %rdi      # 0x84ff
callq 0x604a
xorl %edi, %edi
callq 0x3510
callq 0x798e
addq $0x588, %rsp            # imm = 0x588
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
subq $0x8, %rsp
leaq 0x3952(%rip), %r10      # 0x8339
leaq 0x3635(%rip), %r9       # 0x8023
movl $0x1, %esi
xorl %edi, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
pushq %rbx
pushq $0x5
pushq %r10
jmp 0x40d5
movq 0x75d1(%rip), %rax      # 0xbfe0
movq (%rax), %rdi
leaq 0x3633(%rip), %rsi      # 0x804c
leaq 0x40(%rsp), %rdx
xorl %eax, %eax
callq 0x3450
jmp 0x382b
movl %r12d, %edi
callq 0x3550
movl %r13d, %edi
callq 0x3550
leaq 0x37be(%rip), %rdi      # 0x81ff
movl $0x1, %esi
xorl %eax, %eax
callq 0x3220
movl %eax, %ebp
leaq 0x37ca(%rip), %rdi      # 0x8220
xorl %esi, %esi
xorl %eax, %eax
callq 0x3220
movl %eax, %ebx
movl 0xc(%rsp), %esi
movq 0x28(%rsp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x6253
testl %eax, %eax
js 0x4b59
movl %eax, %r14d
leaq 0xe0(%rsp), %rsi
movl %eax, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6bb7
testl %eax, %eax
js 0x4b6e
movq 0x753c(%rip), %rax      # 0xbfe0
movq (%rax), %rdi
leaq 0x37c3(%rip), %rsi      # 0x8271
leaq 0xe0(%rsp), %rdx
xorl %eax, %eax
callq 0x3450
leaq 0x37c6(%rip), %rsi      # 0x828a
movl $0x5, %edx
movl %r14d, %edi
callq 0x3120
testq %rax, %rax
jns 0x4adf
leaq 0x37b3(%rip), %rdi      # 0x8290
jmp 0x4b40
leaq 0x18(%rsp), %rdi
callq 0x617a
testl %eax, %eax
jns 0x4af6
leaq 0x37b1(%rip), %rdi      # 0x82a5
jmp 0x4b40
movl %eax, %r14d
leaq 0x37b8(%rip), %rdx      # 0x82b8
movl %eax, %edi
movl %ebp, %esi
movl $0x6, %ecx
callq 0x6946
testl %eax, %eax
jns 0x4b1b
leaq 0x37a6(%rip), %rdi      # 0x82bf
jmp 0x4b40
leaq 0x3937(%rip), %rdx      # 0x8459
movl %r14d, %edi
movl %ebx, %esi
movl $0x5, %ecx
callq 0x6946
testl %eax, %eax
jns 0x4bbf
leaq 0x3792(%rip), %rdi      # 0x82d2
xorl %eax, %eax
callq 0x5387
leaq 0x3517(%rip), %rdi      # 0x8065
jmp 0x4b40
leaq 0x353b(%rip), %rdi      # 0x8092
jmp 0x4b40
movl 0xc(%rsp), %edx
leaq 0x36dd(%rip), %rdi      # 0x8241
movq %r15, %rsi
xorl %eax, %eax
callq 0x5387
leaq 0x36e9(%rip), %rdi      # 0x825e
jmp 0x4b40
movl %r14d, %edi
callq 0x3550
movl 0xc(%rsp), %esi
movq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x6253
testl %eax, %eax
jns 0x4b9c
leaq 0x3825(%rip), %rdi      # 0x83bf
jmp 0x4b40
leaq 0xe0(%rsp), %rsi
movl %eax, %edi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6bb7
testl %eax, %eax
jns 0x4bbf
leaq 0x3819(%rip), %rdi      # 0x83d6
jmp 0x4b40
callq 0x3060
xorl %edi, %edi
callq 0x34a0