// File: 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
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x730, %rsp            # imm = 0x730
movl $0x0, -0x24(%rbp)
movl %edi, -0x28(%rbp)
movq %rsi, -0x30(%rbp)
movl $0x24, %edi
callq 0xa6b0
movq 0x7943(%rip), %rax      # 0xb004
movq %rax, -0x39(%rbp)
movb 0x7941(%rip), %al       # 0xb00c
movb %al, -0x31(%rbp)
cmpl $0x1, -0x28(%rbp)
jle 0x36e9
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x34a0
movl %eax, -0x5e4(%rbp)
jmp 0x36f6
movl $0x270f, %eax           # imm = 0x270F
movl %eax, -0x5e4(%rbp)
jmp 0x36f6
movl -0x5e4(%rbp), %eax
movl %eax, -0x40(%rbp)
cmpl $0x2, -0x28(%rbp)
jle 0x3716
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x5f0(%rbp)
jmp 0x3726
leaq 0x78f0(%rip), %rax      # 0xb00d
movq %rax, -0x5f0(%rbp)
jmp 0x3726
movq -0x5f0(%rbp), %rax
movq %rax, -0x48(%rbp)
movq 0xb890(%rip), %rax      # 0xefc8
movq (%rax), %rdi
xorl %eax, %eax
movl %eax, %ecx
movl $0x1, %edx
movq %rcx, %rsi
callq 0x3030
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
movl $0x2e, %edx
callq 0x31c0
leaq -0x80(%rbp), %rdx
leaq 0x78b0(%rip), %rdi      # 0xb017
movl $0x50, %esi
callq 0x7ef0
cmpl $0x0, %eax
je 0x37b7
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x789a(%rip), %r9       # 0xb023
leaq 0x7898(%rip), %r10      # 0xb028
leaq 0x789a(%rip), %rax      # 0xb031
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0x45, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x37f4
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x785e(%rip), %r9       # 0xb023
leaq 0x785c(%rip), %r10      # 0xb028
leaq 0x785e(%rip), %rax      # 0xb031
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0x45, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x80(%rbp), %rdx
leaq 0x7843(%rip), %rdi      # 0xb042
movl $0x50, %esi
callq 0x7ef0
cmpl $0x0, %eax
jne 0x3854
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x7802(%rip), %r9       # 0xb023
leaq 0x7800(%rip), %r10      # 0xb028
leaq 0x7813(%rip), %rax      # 0xb042
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0x46, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
jne 0x3896
jmp 0x38b2
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x77c1(%rip), %r9       # 0xb023
leaq 0x77bf(%rip), %r10      # 0xb028
leaq 0x77d2(%rip), %rax      # 0xb042
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0x46, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
je 0x38b2
movq 0xb743(%rip), %rax      # 0xefe0
movq (%rax), %rdi
leaq -0x80(%rbp), %rdx
leaq 0x77a1(%rip), %rsi      # 0xb04c
movb $0x0, %al
callq 0x3460
movl -0x40(%rbp), %esi
xorl %eax, %eax
movl %eax, %edi
callq 0x8140
movl %eax, -0xc0(%rbp)
cmpl $0x0, -0xc0(%rbp)
jl 0x391a
movl -0x40(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7740(%rip), %r9       # 0xb023
leaq 0x773e(%rip), %r11      # 0xb028
leaq 0x7766(%rip), %r10      # 0xb057
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x4a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
jne 0x3971
jmp 0x3963
movl -0x40(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x76f8(%rip), %r9       # 0xb023
leaq 0x76f6(%rip), %r11      # 0xb028
leaq 0x771e(%rip), %r10      # 0xb057
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x4a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
jne 0x3971
leaq 0x76fb(%rip), %rdi      # 0xb065
movb $0x0, %al
callq 0x6ff0
movl -0xc0(%rbp), %edi
movl $0x3, %esi
callq 0x9450
movl %eax, -0x5f4(%rbp)
movl -0xc0(%rbp), %edi
movl $0x4, %esi
callq 0x9450
movl -0x5f4(%rbp), %esi
movl %eax, %edx
leaq 0x76c5(%rip), %rdi      # 0xb06b
movb $0x0, %al
callq 0xa6d0
leaq -0x39(%rbp), %rdi
callq 0x8460
movl %eax, -0xc4(%rbp)
cmpl $0x0, -0xc4(%rbp)
jl 0x3a14
leaq -0x39(%rbp), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7647(%rip), %r9       # 0xb023
leaq 0x7645(%rip), %r11      # 0xb028
leaq 0x7698(%rip), %r10      # 0xb082
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x4f, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
jne 0x3a6d
jmp 0x3a5f
leaq -0x39(%rbp), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x75fd(%rip), %r9       # 0xb023
leaq 0x75fb(%rip), %r11      # 0xb028
leaq 0x764e(%rip), %r10      # 0xb082
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x4f, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, %eax
jne 0x3a6d
leaq 0x762c(%rip), %rdi      # 0xb092
movb $0x0, %al
callq 0x6ff0
movl -0xc0(%rbp), %edi
xorl %esi, %esi
callq 0x9450
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x3afa
movl -0xb4(%rbp), %eax
movl %eax, -0x5f8(%rbp)
callq 0x3040
movl -0x5f8(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb845(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7561(%rip), %r9       # 0xb023
leaq 0x755f(%rip), %rbx      # 0xb028
leaq 0x75ca(%rip), %r11      # 0xb09a
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x52, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x3b67
movl -0xb4(%rbp), %eax
movl %eax, -0x5fc(%rbp)
callq 0x3040
movl -0x5fc(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb7d4(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x74f5(%rip), %r9       # 0xb023
leaq 0x74f3(%rip), %rbx      # 0xb028
leaq 0x755e(%rip), %r11      # 0xb09a
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x52, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
xorl %esi, %esi
movl $0x1, %edx
callq 0x8920
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x3bf9
movl -0xb4(%rbp), %eax
movl %eax, -0x600(%rbp)
callq 0x3040
movl -0x600(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb746(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7462(%rip), %r9       # 0xb023
leaq 0x7460(%rip), %rbx      # 0xb028
leaq 0x74e8(%rip), %r11      # 0xb0b7
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x55, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x3c66
movl -0xb4(%rbp), %eax
movl %eax, -0x604(%rbp)
callq 0x3040
movl -0x604(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb6d5(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x73f6(%rip), %r9       # 0xb023
leaq 0x73f4(%rip), %rbx      # 0xb028
leaq 0x747c(%rip), %r11      # 0xb0b7
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x55, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x6, %esi
callq 0x9450
movl %eax, -0xc8(%rbp)
cmpl $0x0, -0xc8(%rbp)
jne 0x3cf6
movl -0xc8(%rbp), %eax
movl %eax, -0x608(%rbp)
callq 0x3040
movl -0x608(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb649(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7365(%rip), %r9       # 0xb023
leaq 0x7363(%rip), %rbx      # 0xb028
leaq 0x740a(%rip), %r11      # 0xb0d6
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x58, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x3d63
movl -0xc8(%rbp), %eax
movl %eax, -0x60c(%rbp)
callq 0x3040
movl -0x60c(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb5d8(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x72f9(%rip), %r9       # 0xb023
leaq 0x72f7(%rip), %rbx      # 0xb028
leaq 0x739e(%rip), %r11      # 0xb0d6
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x58, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x6, %esi
movl $0x8, %edx
callq 0x8920
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x3df8
movl -0xb4(%rbp), %eax
movl %eax, -0x610(%rbp)
callq 0x3040
movl -0x610(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb547(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7263(%rip), %r9       # 0xb023
leaq 0x7261(%rip), %rbx      # 0xb028
leaq 0x7322(%rip), %r11      # 0xb0f0
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x5b, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x3e65
movl -0xb4(%rbp), %eax
movl %eax, -0x614(%rbp)
callq 0x3040
movl -0x614(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb4d6(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x71f7(%rip), %r9       # 0xb023
leaq 0x71f5(%rip), %rbx      # 0xb028
leaq 0x72b6(%rip), %r11      # 0xb0f0
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x5b, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x6, %esi
callq 0x9450
movl %eax, -0xb4(%rbp)
cmpl $0x8, -0xb4(%rbp)
jne 0x3ecf
movl -0xb4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7186(%rip), %r9       # 0xb023
leaq 0x7184(%rip), %r11      # 0xb028
leaq 0x7268(%rip), %r10      # 0xb113
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x5e, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x3f16
movl -0xb4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7140(%rip), %r9       # 0xb023
leaq 0x713e(%rip), %r11      # 0xb028
leaq 0x7222(%rip), %r10      # 0xb113
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x5e, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl -0xc8(%rbp), %edx
movl $0x6, %esi
callq 0x8920
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x3fcb
movl -0xc8(%rbp), %eax
movl %eax, -0x61c(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x618(%rbp)
callq 0x3040
movl -0x61c(%rbp), %r11d
movl -0x618(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb37c(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7098(%rip), %r9       # 0xb023
leaq 0x7096(%rip), %r14      # 0xb028
leaq 0x7191(%rip), %rbx      # 0xb12a
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0x61, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4050
movl -0xc8(%rbp), %eax
movl %eax, -0x624(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x620(%rbp)
callq 0x3040
movl -0x624(%rbp), %r11d
movl -0x620(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb2f0(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x7011(%rip), %r9       # 0xb023
leaq 0x700f(%rip), %r14      # 0xb028
leaq 0x710a(%rip), %rbx      # 0xb12a
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0x61, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x2, %esi
movl $0x1, %edx
callq 0x8920
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x40bf
movl -0xb4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6f96(%rip), %r9       # 0xb023
leaq 0x6f94(%rip), %r11      # 0xb028
leaq 0x70ac(%rip), %r10      # 0xb147
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x64, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4106
movl -0xb4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6f50(%rip), %r9       # 0xb023
leaq 0x6f4e(%rip), %r11      # 0xb028
leaq 0x7066(%rip), %r10      # 0xb147
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x64, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x2, %esi
callq 0x9450
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
je 0x4170
movl -0xb4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6ee5(%rip), %r9       # 0xb023
leaq 0x6ee3(%rip), %r11      # 0xb028
leaq 0x7014(%rip), %r10      # 0xb160
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x67, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x41b7
movl -0xb4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6e9f(%rip), %r9       # 0xb023
leaq 0x6e9d(%rip), %r11      # 0xb028
leaq 0x6fce(%rip), %r10      # 0xb160
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x67, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc4(%rbp), %edi
movl $0x2, %esi
movl $0x1, %edx
callq 0x8920
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x4226
movl -0xb4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6e2f(%rip), %r9       # 0xb023
leaq 0x6e2d(%rip), %r11      # 0xb028
leaq 0x6f75(%rip), %r10      # 0xb177
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x6a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x426d
movl -0xb4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6de9(%rip), %r9       # 0xb023
leaq 0x6de7(%rip), %r11      # 0xb028
leaq 0x6f2f(%rip), %r10      # 0xb177
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x6a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl 0xb06d(%rip), %edi      # 0xf2e0
callq 0x3540
movl -0xc0(%rbp), %edi
callq 0x83d0
movl %eax, -0xb8(%rbp)
cmpl $-0x1, -0xb8(%rbp)
jne 0x430d
callq 0x3040
cmpl $0xb, (%rax)
jne 0x430d
movl -0xb8(%rbp), %eax
movl %eax, -0x628(%rbp)
callq 0x3040
movl -0x628(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xb032(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6d4e(%rip), %r9       # 0xb023
leaq 0x6d4c(%rip), %rbx      # 0xb028
leaq 0x6eb4(%rip), %r11      # 0xb197
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x6f, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x437a
movl -0xb8(%rbp), %eax
movl %eax, -0x62c(%rbp)
callq 0x3040
movl -0x62c(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xafc1(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6ce2(%rip), %r9       # 0xb023
leaq 0x6ce0(%rip), %rbx      # 0xb028
leaq 0x6e48(%rip), %r11      # 0xb197
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x6f, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc4(%rbp), %edi
callq 0x83d0
movl %eax, -0xb8(%rbp)
cmpl $-0x1, -0xb8(%rbp)
jne 0x440f
callq 0x3040
cmpl $0xb, (%rax)
jne 0x440f
movl -0xb8(%rbp), %eax
movl %eax, -0x630(%rbp)
callq 0x3040
movl -0x630(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xaf30(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6c4c(%rip), %r9       # 0xb023
leaq 0x6c4a(%rip), %rbx      # 0xb028
leaq 0x6dd6(%rip), %r11      # 0xb1bb
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x72, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x447c
movl -0xb8(%rbp), %eax
movl %eax, -0x634(%rbp)
callq 0x3040
movl -0x634(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xaebf(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6be0(%rip), %r9       # 0xb023
leaq 0x6bde(%rip), %rbx      # 0xb028
leaq 0x6d6a(%rip), %r11      # 0xb1bb
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0x72, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
xorl %edi, %edi
callq 0x3540
movl -0xc0(%rbp), %edi
movl $0x2, %esi
xorl %edx, %edx
callq 0x8920
movl -0xc4(%rbp), %edi
movl $0x2, %esi
xorl %edx, %edx
callq 0x8920
movl -0xc0(%rbp), %edi
movl $0x2, %esi
callq 0x9450
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x4511
movl -0xb4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6b44(%rip), %r9       # 0xb023
leaq 0x6b42(%rip), %r11      # 0xb028
leaq 0x6c73(%rip), %r10      # 0xb160
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x7a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4558
movl -0xb4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6afe(%rip), %r9       # 0xb023
leaq 0x6afc(%rip), %r11      # 0xb028
leaq 0x6c2d(%rip), %r10      # 0xb160
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x7a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xc0(%rbp), %edi
movl $0x29a, %esi            # imm = 0x29A
callq 0x9450
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jge 0x45d0
callq 0x3040
movslq (%rax), %rcx
leaq 0xad6a(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6a86(%rip), %r9       # 0xb023
leaq 0x6a84(%rip), %r11      # 0xb028
leaq 0x6c34(%rip), %r10      # 0xb1df
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x7d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4625
callq 0x3040
movslq (%rax), %rcx
leaq 0xad11(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6a32(%rip), %r9       # 0xb023
leaq 0x6a30(%rip), %r11      # 0xb028
leaq 0x6be0(%rip), %r10      # 0xb1df
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x7d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
leaq 0x6bd3(%rip), %rdi      # 0xb1ff
leaq -0x158(%rbp), %rsi
callq 0x32c0
movq -0x150(%rbp), %rax
movl %eax, -0x15c(%rbp)
movl -0x15c(%rbp), %esi
leaq 0x6bb7(%rip), %rdi      # 0xb209
movb $0x0, %al
callq 0xa6d0
leaq 0x6bc0(%rip), %rdi      # 0xb220
leaq -0x158(%rbp), %rsi
callq 0x32c0
movq -0x150(%rbp), %rax
movl %eax, -0x160(%rbp)
movl -0x160(%rbp), %esi
leaq 0x6ba4(%rip), %rdi      # 0xb22a
movb $0x0, %al
callq 0xa6d0
movl $0xe, %edi
leaq 0x1757(%rip), %rsi      # 0x5df0
callq 0x33a0
callq 0x30c0
movl %eax, 0xb23b(%rip)      # 0xf8e4
cmpl $0x0, %eax
jne 0x483f
movl -0xc0(%rbp), %edi
callq 0x3580
movl -0xc4(%rbp), %edi
callq 0x3580
leaq 0x6b30(%rip), %rdi      # 0xb1ff
movl $0x1, %esi
movb $0x0, %al
callq 0x3230
movl %eax, -0x164(%rbp)
leaq 0x6b38(%rip), %rdi      # 0xb220
xorl %esi, %esi
movb $0x0, %al
callq 0x3230
movl %eax, -0x168(%rbp)
movq -0x48(%rbp), %rdi
movl -0x40(%rbp), %esi
xorl %edx, %edx
callq 0x87b0
movl %eax, %ecx
movl %ecx, -0xbc(%rbp)
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x4728
movq -0x48(%rbp), %rsi
movl -0x40(%rbp), %edx
leaq 0x6b20(%rip), %rdi      # 0xb241
movb $0x0, %al
callq 0x6ff0
movl -0xbc(%rbp), %edi
leaq -0xb0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
xorl %r8d, %r8d
movq %rcx, %rdx
callq 0x9710
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x475a
leaq 0x6b0b(%rip), %rdi      # 0xb25e
movb $0x0, %al
callq 0x6ff0
movq 0xa87f(%rip), %rax      # 0xefe0
movq (%rax), %rdi
leaq -0xb0(%rbp), %rdx
leaq 0x6aff(%rip), %rsi      # 0xb271
movb $0x0, %al
callq 0x3460
movl -0xbc(%rbp), %edi
leaq 0x6b04(%rip), %rsi      # 0xb28a
movl $0x5, %edx
callq 0x3130
movq %rax, %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jle 0x47a8
leaq 0x6aef(%rip), %rdi      # 0xb290
movb $0x0, %al
callq 0x6ff0
leaq -0x39(%rbp), %rdi
callq 0x8610
movl %eax, %ecx
movl %ecx, -0xc4(%rbp)
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x47cd
leaq 0x6adf(%rip), %rdi      # 0xb2a5
movb $0x0, %al
callq 0x6ff0
movl -0xc4(%rbp), %edi
movl -0x164(%rbp), %esi
leaq 0x6ad8(%rip), %rdx      # 0xb2b8
movl $0x6, %ecx
callq 0x9300
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x4800
leaq 0x6ac6(%rip), %rdi      # 0xb2bf
movb $0x0, %al
callq 0x6ff0
movl -0xc4(%rbp), %edi
movl -0x168(%rbp), %esi
leaq 0x6c46(%rip), %rdx      # 0xb459
movl $0x5, %ecx
callq 0x9300
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x4833
leaq 0x6aa6(%rip), %rdi      # 0xb2d2
movb $0x0, %al
callq 0x6ff0
callq 0x3070
xorl %edi, %edi
callq 0x34c0
movl -0xc0(%rbp), %edi
callq 0x83d0
movl %eax, -0xb8(%rbp)
cmpl $0x0, -0xb8(%rbp)
jl 0x48ca
movl -0xb8(%rbp), %eax
movl %eax, -0x638(%rbp)
callq 0x3040
movl -0x638(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xaa75(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6791(%rip), %r9       # 0xb023
leaq 0x678f(%rip), %rbx      # 0xb028
leaq 0x6a45(%rip), %r11      # 0xb2e5
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xa0, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4937
movl -0xb8(%rbp), %eax
movl %eax, -0x63c(%rbp)
callq 0x3040
movl -0x63c(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xaa04(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6725(%rip), %r9       # 0xb023
leaq 0x6723(%rip), %rbx      # 0xb028
leaq 0x69d9(%rip), %r11      # 0xb2e5
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xa0, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xb8(%rbp), %edi
movl $0x1, %esi
xorl %edx, %edx
movb $0x0, %al
callq 0x31e0
andl $0x1, %eax
cmpl $0x0, %eax
je 0x4994
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x66bd(%rip), %r9       # 0xb023
leaq 0x66bb(%rip), %r10      # 0xb028
leaq 0x6985(%rip), %rax      # 0xb2f9
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xa1, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x49d1
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x6681(%rip), %r9       # 0xb023
leaq 0x667f(%rip), %r10      # 0xb028
leaq 0x6949(%rip), %rax      # 0xb2f9
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xa1, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
movl $0x63, %edx
callq 0x31c0
movl -0xb8(%rbp), %edi
leaq -0x80(%rbp), %rsi
leaq -0x1d0(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
movl $0x63, %r8d
callq 0x9710
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x4aab
leaq -0x80(%rbp), %rbx
movl -0x40(%rbp), %eax
movl %eax, -0x64c(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x648(%rbp)
callq 0x3040
movl -0x64c(%rbp), %r11d
movq -0x648(%rbp), %r10
movslq (%rax), %rcx
leaq 0xa8a1(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x65bd(%rip), %r9       # 0xb023
leaq 0x65bb(%rip), %r15      # 0xb028
leaq 0x68a5(%rip), %r14      # 0xb319
movq %r8, %rdx
movq %r8, %rcx
movq %r15, (%rsp)
movl $0xa5, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movl %r11d, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4b38
leaq -0x80(%rbp), %rbx
movl -0x40(%rbp), %eax
movl %eax, -0x65c(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x658(%rbp)
callq 0x3040
movl -0x65c(%rbp), %r11d
movq -0x658(%rbp), %r10
movslq (%rax), %rcx
leaq 0xa80d(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x652e(%rip), %r9       # 0xb023
leaq 0x652c(%rip), %r15      # 0xb028
leaq 0x6816(%rip), %r14      # 0xb319
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r15, (%rsp)
movl $0xa5, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movl %r11d, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
movl $0x63, %edx
callq 0x31c0
movl -0xb8(%rbp), %edi
leaq -0x1d0(%rbp), %rsi
movl $0x63, %edx
callq 0x9030
movl %eax, -0xb4(%rbp)
cmpl $0x5, -0xb4(%rbp)
jne 0x4be7
leaq -0x1d0(%rbp), %rdi
leaq 0x670b(%rip), %rsi      # 0xb28a
movl $0x5, %edx
callq 0x3160
cmpl $0x0, %eax
jne 0x4be7
movl -0xb4(%rbp), %r10d
leaq -0x1d0(%rbp), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6474(%rip), %r9       # 0xb023
leaq 0x6472(%rip), %rbx      # 0xb028
leaq 0x677c(%rip), %r11      # 0xb339
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xa9, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4c3c
movl -0xb4(%rbp), %r10d
leaq -0x1d0(%rbp), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6420(%rip), %r9       # 0xb023
leaq 0x641e(%rip), %rbx      # 0xb028
leaq 0x6728(%rip), %r11      # 0xb339
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xa9, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xb8(%rbp), %edi
callq 0x3580
movl -0xc0(%rbp), %edi
callq 0x3580
movl 0xac8c(%rip), %edi      # 0xf8e4
movl $0xf, %esi
callq 0x3440
leaq -0xb4(%rbp), %rdi
callq 0x33d0
movl %eax, 0xac70(%rip)      # 0xf8e4
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
cmpl $0x0, %eax
jne 0x4cda
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x637b(%rip), %r9       # 0xb023
leaq 0x6379(%rip), %r11      # 0xb028
leaq 0x6699(%rip), %r10      # 0xb34f
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0xb0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4d29
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x632d(%rip), %r9       # 0xb023
leaq 0x632b(%rip), %r11      # 0xb028
leaq 0x664b(%rip), %r10      # 0xb34f
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0xb0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
leaq 0x6636(%rip), %rdi      # 0xb366
xorl %esi, %esi
callq 0x8140
movl %eax, -0xc0(%rbp)
cmpl $0x0, -0xc0(%rbp)
jge 0x4d68
callq 0x3040
cmpl $0x61, (%rax)
jne 0x4d68
movl $0x4, %edi
leaq 0x660d(%rip), %rsi      # 0xb369
movb $0x0, %al
callq 0xa7e0
jmp 0x5316
leaq -0x5c0(%rbp), %rdi
xorl %esi, %esi
movl $0x3e7, %edx            # imm = 0x3E7
callq 0x31c0
movl -0xc0(%rbp), %edi
leaq -0x80(%rbp), %rsi
leaq -0x5c0(%rbp), %rcx
leaq -0x40(%rbp), %rdx
movl $0x3e7, %r8d            # imm = 0x3E7
callq 0x95d0
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x4e76
movl -0xb4(%rbp), %eax
movl %eax, -0x660(%rbp)
cmpl $-0x1, -0xb4(%rbp)
jge 0x4de2
xorl %eax, %eax
subl -0xb4(%rbp), %eax
movslq %eax, %rcx
leaq 0xaa5b(%rip), %rax      # 0xf830
movq (%rax,%rcx,8), %rax
movq %rax, -0x668(%rbp)
jmp 0x4dfc
callq 0x3040
movslq (%rax), %rcx
leaq 0xa4ff(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
movq %rax, -0x668(%rbp)
movl -0x660(%rbp), %r14d
movq -0x668(%rbp), %rbx
leaq -0x80(%rbp), %r11
movl -0x40(%rbp), %r10d
leaq -0x5c0(%rbp), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x61f7(%rip), %r9       # 0xb023
leaq 0x61f5(%rip), %r12      # 0xb028
leaq 0x654d(%rip), %r15      # 0xb387
movq %r8, %rdx
movq %r8, %rcx
movq %r12, (%rsp)
movl $0xba, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movl %r14d, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movl %r10d, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x4f37
movl -0xb4(%rbp), %eax
movl %eax, -0x66c(%rbp)
cmpl $-0x1, -0xb4(%rbp)
jge 0x4eaa
xorl %eax, %eax
subl -0xb4(%rbp), %eax
movslq %eax, %rcx
leaq 0xa993(%rip), %rax      # 0xf830
movq (%rax,%rcx,8), %rax
movq %rax, -0x678(%rbp)
jmp 0x4ec4
callq 0x3040
movslq (%rax), %rcx
leaq 0xa437(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
movq %rax, -0x678(%rbp)
movl -0x66c(%rbp), %r14d
movq -0x678(%rbp), %rbx
leaq -0x80(%rbp), %r11
movl -0x40(%rbp), %r10d
leaq -0x5c0(%rbp), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6134(%rip), %r9       # 0xb023
leaq 0x6132(%rip), %r12      # 0xb028
leaq 0x648a(%rip), %r15      # 0xb387
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r12, (%rsp)
movl $0xba, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movl %r14d, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movl %r10d, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movb $0x0, %al
callq 0x99d0
callq 0x30c0
movl %eax, 0xa9a2(%rip)      # 0xf8e4
cmpl $0x0, %eax
jne 0x4fba
movl -0xc0(%rbp), %edi
callq 0x3580
movq -0x48(%rbp), %rdi
movl -0x40(%rbp), %esi
xorl %edx, %edx
callq 0x87b0
movl %eax, %ecx
movl %ecx, -0xc0(%rbp)
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x4f7c
leaq 0x644a(%rip), %rdi      # 0xb3bf
movb $0x0, %al
callq 0x6ff0
movl -0xc0(%rbp), %edi
leaq -0xb0(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
xorl %r8d, %r8d
movq %rcx, %rdx
callq 0x9710
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jle 0x4fae
leaq 0x642f(%rip), %rdi      # 0xb3d6
movb $0x0, %al
callq 0x6ff0
callq 0x3070
xorl %edi, %edi
callq 0x34c0
movl -0xc0(%rbp), %edi
callq 0x83d0
movl %eax, -0xb8(%rbp)
cmpl $0x0, -0xb8(%rbp)
jl 0x5045
movl -0xb8(%rbp), %eax
movl %eax, -0x67c(%rbp)
callq 0x3040
movl -0x67c(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xa2fa(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x6016(%rip), %r9       # 0xb023
leaq 0x6014(%rip), %rbx      # 0xb028
leaq 0x63cf(%rip), %r11      # 0xb3ea
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xc4, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x50b2
movl -0xb8(%rbp), %eax
movl %eax, -0x680(%rbp)
callq 0x3040
movl -0x680(%rbp), %r10d
movslq (%rax), %rcx
leaq 0xa289(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5faa(%rip), %r9       # 0xb023
leaq 0x5fa8(%rip), %rbx      # 0xb028
leaq 0x6363(%rip), %r11      # 0xb3ea
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xc4, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x80(%rbp), %rdi
xorl %esi, %esi
movl $0x2e, %edx
callq 0x31c0
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
movl $0x63, %edx
callq 0x31c0
movl -0xb8(%rbp), %edi
leaq -0x80(%rbp), %rsi
leaq -0x1d0(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
movl $0x63, %r8d
callq 0x9710
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x519c
leaq -0x80(%rbp), %rbx
movl -0x40(%rbp), %eax
movl %eax, -0x68c(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x688(%rbp)
callq 0x3040
movl -0x68c(%rbp), %r11d
movq -0x688(%rbp), %r10
movslq (%rax), %rcx
leaq 0xa1b0(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5ecc(%rip), %r9       # 0xb023
leaq 0x5eca(%rip), %r15      # 0xb028
leaq 0x61b4(%rip), %r14      # 0xb319
movq %r8, %rdx
movq %r8, %rcx
movq %r15, (%rsp)
movl $0xc8, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movl %r11d, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5229
leaq -0x80(%rbp), %rbx
movl -0x40(%rbp), %eax
movl %eax, -0x69c(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x698(%rbp)
callq 0x3040
movl -0x69c(%rbp), %r11d
movq -0x698(%rbp), %r10
movslq (%rax), %rcx
leaq 0xa11c(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5e3d(%rip), %r9       # 0xb023
leaq 0x5e3b(%rip), %r15      # 0xb028
leaq 0x6125(%rip), %r14      # 0xb319
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r15, (%rsp)
movl $0xc8, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movl %r11d, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movb $0x0, %al
callq 0x99d0
movl 0xa6b5(%rip), %edi      # 0xf8e4
movl $0xf, %esi
callq 0x3440
leaq -0xb4(%rbp), %rdi
callq 0x33d0
movl %eax, 0xa699(%rip)      # 0xf8e4
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
cmpl $0x0, %eax
jne 0x52b1
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5da4(%rip), %r9       # 0xb023
leaq 0x5da2(%rip), %r11      # 0xb028
leaq 0x60c2(%rip), %r10      # 0xb34f
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0xcc, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5300
movl -0xb4(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
sarl $0x8, %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5d56(%rip), %r9       # 0xb023
leaq 0x5d54(%rip), %r11      # 0xb028
leaq 0x6074(%rip), %r10      # 0xb34f
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0xcc, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xb8(%rbp), %edi
callq 0x3580
movl -0xc0(%rbp), %edi
callq 0x3580
movl -0xc4(%rbp), %edi
callq 0x83d0
movl %eax, -0xb8(%rbp)
cmpl $0x0, -0xb8(%rbp)
jl 0x53a1
movl -0xb8(%rbp), %eax
movl %eax, -0x6a0(%rbp)
callq 0x3040
movl -0x6a0(%rbp), %r10d
movslq (%rax), %rcx
leaq 0x9f9e(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5cba(%rip), %r9       # 0xb023
leaq 0x5cb8(%rip), %rbx      # 0xb028
leaq 0x6088(%rip), %r11      # 0xb3ff
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xd3, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x540e
movl -0xb8(%rbp), %eax
movl %eax, -0x6a4(%rbp)
callq 0x3040
movl -0x6a4(%rbp), %r10d
movslq (%rax), %rcx
leaq 0x9f2d(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5c4e(%rip), %r9       # 0xb023
leaq 0x5c4c(%rip), %rbx      # 0xb028
leaq 0x601c(%rip), %r11      # 0xb3ff
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xd3, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x1d0(%rbp), %rdi
xorl %esi, %esi
movl $0x63, %edx
callq 0x31c0
movl $0xfffffff7, -0x5c4(%rbp) # imm = 0xFFFFFFF7
movl -0xb8(%rbp), %edi
leaq -0x1d0(%rbp), %rdx
leaq -0x5c4(%rbp), %rsi
movl $0x63, %ecx
callq 0x90f0
movl %eax, -0xb4(%rbp)
cmpl $0x6, -0xb4(%rbp)
jne 0x54b8
cmpl $0x0, -0x5c4(%rbp)
jle 0x54b8
movl -0xb4(%rbp), %r10d
movl -0x5c4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5ba2(%rip), %r9       # 0xb023
leaq 0x5ba0(%rip), %rbx      # 0xb028
leaq 0x5f84(%rip), %r11      # 0xb413
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xd9, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x550b
movl -0xb4(%rbp), %r10d
movl -0x5c4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5b50(%rip), %r9       # 0xb023
leaq 0x5b4e(%rip), %rbx      # 0xb028
leaq 0x5f32(%rip), %r11      # 0xb413
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xd9, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, -0xb4(%rbp)
jle 0x552f
movl -0xb4(%rbp), %esi
leaq -0x1d0(%rbp), %rdx
leaq 0x5f05(%rip), %rdi      # 0xb42d
movb $0x0, %al
callq 0xa6d0
movl -0x5c4(%rbp), %edi
leaq -0x158(%rbp), %rsi
callq 0x34e0
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x5608
movq -0x150(%rbp), %rax
movl -0x15c(%rbp), %ecx
cmpq %rcx, %rax
jne 0x5608
movl -0x5c4(%rbp), %eax
movl %eax, -0x6ac(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x6a8(%rbp)
cmpl $0x0, -0xb4(%rbp)
je 0x5595
xorl %eax, %eax
movl %eax, -0x6b0(%rbp)
jmp 0x55a2
movq -0x150(%rbp), %rax
movl %eax, -0x6b0(%rbp)
movl -0x6a8(%rbp), %r10d
movl -0x6ac(%rbp), %r11d
movl -0x6b0(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5a5a(%rip), %r9       # 0xb023
leaq 0x5a58(%rip), %r14      # 0xb028
leaq 0x5e65(%rip), %rbx      # 0xb43c
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0xdd, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x569f
movl -0x5c4(%rbp), %eax
movl %eax, -0x6b8(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x6b4(%rbp)
cmpl $0x0, -0xb4(%rbp)
je 0x5633
xorl %eax, %eax
movl %eax, -0x6bc(%rbp)
jmp 0x5640
movq -0x150(%rbp), %rax
movl %eax, -0x6bc(%rbp)
movl -0x6b4(%rbp), %r10d
movl -0x6b8(%rbp), %r11d
movl -0x6bc(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x59c1(%rip), %r9       # 0xb023
leaq 0x59bf(%rip), %r14      # 0xb028
leaq 0x5dcc(%rip), %rbx      # 0xb43c
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0xdd, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
movl $0xfffffff8, -0x5c4(%rbp) # imm = 0xFFFFFFF8
movl -0xb8(%rbp), %edi
leaq -0x1d0(%rbp), %rdx
addq $0x6, %rdx
leaq -0x5c4(%rbp), %rsi
movl $0x63, %ecx
callq 0x90f0
movl %eax, -0xb4(%rbp)
cmpl $0x5, -0xb4(%rbp)
jne 0x573a
cmpl $0x0, -0x5c4(%rbp)
jle 0x573a
movl -0xb4(%rbp), %r10d
movl -0x5c4(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5920(%rip), %r9       # 0xb023
leaq 0x591e(%rip), %rbx      # 0xb028
leaq 0x5d02(%rip), %r11      # 0xb413
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xe1, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x578d
movl -0xb4(%rbp), %r10d
movl -0x5c4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x58ce(%rip), %r9       # 0xb023
leaq 0x58cc(%rip), %rbx      # 0xb028
leaq 0x5cb0(%rip), %r11      # 0xb413
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xe1, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
cmpl $0x0, -0xb4(%rbp)
jle 0x57b5
movl -0xb4(%rbp), %esi
leaq -0x1d0(%rbp), %rdx
addq $0x6, %rdx
leaq 0x5c7f(%rip), %rdi      # 0xb42d
movb $0x0, %al
callq 0xa6d0
leaq -0x1d0(%rbp), %rdi
leaq 0x5c90(%rip), %rsi      # 0xb453
callq 0x3430
cmpl $0x0, %eax
jne 0x580e
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x5843(%rip), %r9       # 0xb023
leaq 0x5841(%rip), %r10      # 0xb028
leaq 0x5c71(%rip), %rax      # 0xb45f
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xe3, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x584b
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x5807(%rip), %r9       # 0xb023
leaq 0x5805(%rip), %r10      # 0xb028
leaq 0x5c35(%rip), %rax      # 0xb45f
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xe3, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0x5c4(%rbp), %edi
leaq -0x158(%rbp), %rsi
callq 0x34e0
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jne 0x5924
movq -0x150(%rbp), %rax
movl -0x160(%rbp), %ecx
cmpq %rcx, %rax
jne 0x5924
movl -0x5c4(%rbp), %eax
movl %eax, -0x6c4(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x6c0(%rbp)
cmpl $0x0, -0xb4(%rbp)
je 0x58b1
xorl %eax, %eax
movl %eax, -0x6c8(%rbp)
jmp 0x58be
movq -0x150(%rbp), %rax
movl %eax, -0x6c8(%rbp)
movl -0x6c0(%rbp), %r10d
movl -0x6c4(%rbp), %r11d
movl -0x6c8(%rbp), %eax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x573e(%rip), %r9       # 0xb023
leaq 0x573c(%rip), %r14      # 0xb028
leaq 0x5b49(%rip), %rbx      # 0xb43c
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0xe6, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x59bb
movl -0x5c4(%rbp), %eax
movl %eax, -0x6d0(%rbp)
movl -0xb4(%rbp), %eax
movl %eax, -0x6cc(%rbp)
cmpl $0x0, -0xb4(%rbp)
je 0x594f
xorl %eax, %eax
movl %eax, -0x6d4(%rbp)
jmp 0x595c
movq -0x150(%rbp), %rax
movl %eax, -0x6d4(%rbp)
movl -0x6cc(%rbp), %r10d
movl -0x6d0(%rbp), %r11d
movl -0x6d4(%rbp), %eax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x56a5(%rip), %r9       # 0xb023
leaq 0x56a3(%rip), %r14      # 0xb028
leaq 0x5ab0(%rip), %rbx      # 0xb43c
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r14, (%rsp)
movl $0xe6, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x99d0
movl 0x991f(%rip), %edi      # 0xf2e0
callq 0x3540
movl 0x5aa3(%rip), %eax      # 0xb46f
movl %eax, -0x5cb(%rbp)
movw 0x5a9a(%rip), %ax       # 0xb473
movw %ax, -0x5c7(%rbp)
movb 0x5a8f(%rip), %al       # 0xb475
movb %al, -0x5c5(%rbp)
leaq -0x5cb(%rbp), %rdi
movl $0x50, %esi
movl $0x2, %edx
callq 0x87b0
movl %eax, -0xb8(%rbp)
cmpl $0x0, -0xb8(%rbp)
jl 0x5a8e
callq 0x3040
cmpl $0x73, (%rax)
jne 0x5a8e
leaq -0x5cb(%rbp), %rax
movq %rax, -0x6e0(%rbp)
callq 0x3040
movq -0x6e0(%rbp), %r10
movslq (%rax), %rcx
leaq 0x98b1(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x55cd(%rip), %r9       # 0xb023
leaq 0x55cb(%rip), %rbx      # 0xb028
leaq 0x5a12(%rip), %r11      # 0xb476
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xeb, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5afd
leaq -0x5cb(%rbp), %rax
movq %rax, -0x6e8(%rbp)
callq 0x3040
movq -0x6e8(%rbp), %r10
movslq (%rax), %rcx
leaq 0x983e(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x555f(%rip), %r9       # 0xb023
leaq 0x555d(%rip), %rbx      # 0xb028
leaq 0x59a4(%rip), %r11      # 0xb476
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xeb, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movq 0x5a6c(%rip), %rax      # 0xb570
movq %rax, -0x5e0(%rbp)
movq 0x5a66(%rip), %rax      # 0xb578
movq %rax, -0x5d8(%rbp)
movw 0x5a60(%rip), %ax       # 0xb580
movw %ax, -0x5d0(%rbp)
movb 0x5a55(%rip), %al       # 0xb582
movb %al, -0x5ce(%rbp)
movl -0xb8(%rbp), %eax
movl %eax, -0x6f4(%rbp)
leaq -0x5e0(%rbp), %rax
movq %rax, -0x6f0(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x3150
movl -0x6f4(%rbp), %edi
movq -0x6f0(%rbp), %rsi
movl %eax, %edx
callq 0x9090
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jge 0x5bed
movl -0xb4(%rbp), %eax
movl %eax, -0x6f8(%rbp)
callq 0x3040
movl -0x6f8(%rbp), %r10d
movslq (%rax), %rcx
leaq 0x9752(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x546e(%rip), %r9       # 0xb023
leaq 0x546c(%rip), %rbx      # 0xb028
leaq 0x58e2(%rip), %r11      # 0xb4a5
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xef, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5c5a
movl -0xb4(%rbp), %eax
movl %eax, -0x6fc(%rbp)
callq 0x3040
movl -0x6fc(%rbp), %r10d
movslq (%rax), %rcx
leaq 0x96e1(%rip), %rax      # 0xf2f0
movq (%rax,%rcx,8), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x5402(%rip), %r9       # 0xb023
leaq 0x5400(%rip), %rbx      # 0xb028
leaq 0x5876(%rip), %r11      # 0xb4a5
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %rbx, (%rsp)
movl $0xef, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movq %rax, 0x20(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xb8(%rbp), %edi
movl $0x1, %edx
movl %edx, %esi
callq 0x8a40
cmpl $0x0, %eax
je 0x5cb2
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x539f(%rip), %r9       # 0xb023
leaq 0x539d(%rip), %r10      # 0xb028
leaq 0x5844(%rip), %rax      # 0xb4d6
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xf0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5cef
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x5363(%rip), %r9       # 0xb023
leaq 0x5361(%rip), %r10      # 0xb028
leaq 0x5808(%rip), %rax      # 0xb4d6
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xf0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
movl -0xb8(%rbp), %eax
movl %eax, -0x70c(%rbp)
leaq -0x5e0(%rbp), %rax
movq %rax, -0x708(%rbp)
leaq -0x5e0(%rbp), %rdi
callq 0x3150
movl -0x70c(%rbp), %edi
movq -0x708(%rbp), %rsi
movl %eax, %edx
callq 0x9090
movl %eax, -0xb4(%rbp)
cmpl $0x0, -0xb4(%rbp)
jle 0x5d79
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x52d8(%rip), %r9       # 0xb023
leaq 0x52d6(%rip), %r10      # 0xb028
leaq 0x5794(%rip), %rax      # 0xb4ed
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xf2, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
jmp 0x5db6
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x529c(%rip), %r9       # 0xb023
leaq 0x529a(%rip), %r10      # 0xb028
leaq 0x5758(%rip), %rax      # 0xb4ed
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r10, (%rsp)
movl $0xf2, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0x99d0
leaq -0x39(%rbp), %rdi
callq 0x3170
leaq 0x5739(%rip), %rdi      # 0xb4ff
callq 0x8460
movl %eax, -0xb8(%rbp)
xorl %edi, %edi
callq 0x3540
callq 0xaa00
addq $0x730, %rsp            # imm = 0x730
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)