// File: /workspace/github_c_makefile_star2_O1/nilyang[P]redis-tdd-annotation/src/config.c
// Function: configSetCommand
void configSetCommand(redisClient *c) {
    robj *o;
    long long ll;
    redisAssertWithInfo(c,c->argv[2],sdsEncodedObject(c->argv[2]));
    redisAssertWithInfo(c,c->argv[3],sdsEncodedObject(c->argv[3]));
    o = c->argv[3];

    if (!strcasecmp(c->argv[2]->ptr,"dbfilename")) {
        if (!pathIsBaseName(o->ptr)) {
            addReplyError(c, "dbfilename can't be a path, just a filename");
            return;
        }
        zfree(server.rdb_filename);
        server.rdb_filename = zstrdup(o->ptr);
    } else if (!strcasecmp(c->argv[2]->ptr,"requirepass")) {
        if (sdslen(o->ptr) > REDIS_AUTHPASS_MAX_LEN) goto badfmt;
        zfree(server.requirepass);
        server.requirepass = ((char*)o->ptr)[0] ? zstrdup(o->ptr) : NULL;
    } else if (!strcasecmp(c->argv[2]->ptr,"masterauth")) {
        zfree(server.masterauth);
        server.masterauth = ((char*)o->ptr)[0] ? zstrdup(o->ptr) : NULL;
    } else if (!strcasecmp(c->argv[2]->ptr,"maxmemory")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0) goto badfmt;
        server.maxmemory = ll;
        if (server.maxmemory) {
            if (server.maxmemory < zmalloc_used_memory()) {
                redisLog(REDIS_WARNING,"WARNING: the new maxmemory value set via CONFIG SET is smaller than the current memory usage. This will result in keys eviction and/or inability to accept new write commands depending on the maxmemory-policy.");
            }
            freeMemoryIfNeeded();
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"maxclients")) {
        int orig_value = server.maxclients;

        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 1) goto badfmt;

        /* Try to check if the OS is capable of supporting so many FDs. */
        server.maxclients = ll;
        if (ll > orig_value) {
            adjustOpenFilesLimit();
            if (server.maxclients != ll) {
                addReplyErrorFormat(c,"The operating system is not able to handle the specified number of clients, try with %d", server.maxclients);
                server.maxclients = orig_value;
                return;
            }
            if (aeGetSetSize(server.el) <
                server.maxclients + REDIS_EVENTLOOP_FDSET_INCR)
            {
                if (aeResizeSetSize(server.el,
                    server.maxclients + REDIS_EVENTLOOP_FDSET_INCR) == AE_ERR)
                {
                    addReplyError(c,"The event loop API used by Redis is not able to handle the specified number of clients");
                    server.maxclients = orig_value;
                    return;
                }
            }
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"hz")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.hz = ll;
        if (server.hz < REDIS_MIN_HZ) server.hz = REDIS_MIN_HZ;
        if (server.hz > REDIS_MAX_HZ) server.hz = REDIS_MAX_HZ;
    } else if (!strcasecmp(c->argv[2]->ptr,"maxmemory-policy")) {
        if (!strcasecmp(o->ptr,"volatile-lru")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_VOLATILE_LRU;
        } else if (!strcasecmp(o->ptr,"volatile-random")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_VOLATILE_RANDOM;
        } else if (!strcasecmp(o->ptr,"volatile-ttl")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_VOLATILE_TTL;
        } else if (!strcasecmp(o->ptr,"allkeys-lru")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_ALLKEYS_LRU;
        } else if (!strcasecmp(o->ptr,"allkeys-random")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_ALLKEYS_RANDOM;
        } else if (!strcasecmp(o->ptr,"noeviction")) {
            server.maxmemory_policy = REDIS_MAXMEMORY_NO_EVICTION;
        } else {
            goto badfmt;
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"maxmemory-samples")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll <= 0) goto badfmt;
        server.maxmemory_samples = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"timeout")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0 || ll > LONG_MAX) goto badfmt;
        server.maxidletime = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"tcp-keepalive")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0 || ll > INT_MAX) goto badfmt;
        server.tcpkeepalive = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"appendfsync")) {
        if (!strcasecmp(o->ptr,"no")) {
            server.aof_fsync = AOF_FSYNC_NO;
        } else if (!strcasecmp(o->ptr,"everysec")) {
            server.aof_fsync = AOF_FSYNC_EVERYSEC;
        } else if (!strcasecmp(o->ptr,"always")) {
            server.aof_fsync = AOF_FSYNC_ALWAYS;
        } else {
            goto badfmt;
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"no-appendfsync-on-rewrite")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.aof_no_fsync_on_rewrite = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"appendonly")) {
        int enable = yesnotoi(o->ptr);

        if (enable == -1) goto badfmt;
        if (enable == 0 && server.aof_state != REDIS_AOF_OFF) {
            stopAppendOnly();
        } else if (enable && server.aof_state == REDIS_AOF_OFF) {
            if (startAppendOnly() == REDIS_ERR) {
                addReplyError(c,
                    "Unable to turn on AOF. Check server logs.");
                return;
            }
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"auto-aof-rewrite-percentage")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.aof_rewrite_perc = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"auto-aof-rewrite-min-size")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.aof_rewrite_min_size = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"aof-rewrite-incremental-fsync")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.aof_rewrite_incremental_fsync = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"save")) {
        int vlen, j;
        sds *v = sdssplitlen(o->ptr,sdslen(o->ptr)," ",1,&vlen);

        /* Perform sanity check before setting the new config:
         * - Even number of args
         * - Seconds >= 1, changes >= 0 */
        if (vlen & 1) {
            sdsfreesplitres(v,vlen);
            goto badfmt;
        }
        for (j = 0; j < vlen; j++) {
            char *eptr;
            long val;

            val = strtoll(v[j], &eptr, 10);
            if (eptr[0] != '\0' ||
                ((j & 1) == 0 && val < 1) ||
                ((j & 1) == 1 && val < 0)) {
                sdsfreesplitres(v,vlen);
                goto badfmt;
            }
        }
        /* Finally set the new config */
        resetServerSaveParams();
        for (j = 0; j < vlen; j += 2) {
            time_t seconds;
            int changes;

            seconds = strtoll(v[j],NULL,10);
            changes = strtoll(v[j+1],NULL,10);
            appendServerSaveParams(seconds, changes);
        }
        sdsfreesplitres(v,vlen);
    } else if (!strcasecmp(c->argv[2]->ptr,"slave-serve-stale-data")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.repl_serve_stale_data = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"slave-read-only")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.repl_slave_ro = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"dir")) {
        if (chdir((char*)o->ptr) == -1) {
            addReplyErrorFormat(c,"Changing directory: %s", strerror(errno));
            return;
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"hash-max-ziplist-entries")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.hash_max_ziplist_entries = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"hash-max-ziplist-value")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.hash_max_ziplist_value = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"list-max-ziplist-entries")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.list_max_ziplist_entries = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"list-max-ziplist-value")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.list_max_ziplist_value = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"set-max-intset-entries")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.set_max_intset_entries = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"zset-max-ziplist-entries")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.zset_max_ziplist_entries = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"zset-max-ziplist-value")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.zset_max_ziplist_value = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"hll-sparse-max-bytes")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.hll_sparse_max_bytes = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"lua-time-limit")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.lua_time_limit = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"slowlog-log-slower-than")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR) goto badfmt;
        server.slowlog_log_slower_than = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"slowlog-max-len")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.slowlog_max_len = (unsigned)ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"loglevel")) {
        if (!strcasecmp(o->ptr,"warning")) {
            server.verbosity = REDIS_WARNING;
        } else if (!strcasecmp(o->ptr,"notice")) {
            server.verbosity = REDIS_NOTICE;
        } else if (!strcasecmp(o->ptr,"verbose")) {
            server.verbosity = REDIS_VERBOSE;
        } else if (!strcasecmp(o->ptr,"debug")) {
            server.verbosity = REDIS_DEBUG;
        } else {
            goto badfmt;
        }
    } else if (!strcasecmp(c->argv[2]->ptr,"client-output-buffer-limit")) {
        int vlen, j;
        sds *v = sdssplitlen(o->ptr,sdslen(o->ptr)," ",1,&vlen);

        /* We need a multiple of 4: <class> <hard> <soft> <soft_seconds> */
        if (vlen % 4) {
            sdsfreesplitres(v,vlen);
            goto badfmt;
        }

        /* Sanity check of single arguments, so that we either refuse the
         * whole configuration string or accept it all, even if a single
         * error in a single client class is present. */
        for (j = 0; j < vlen; j++) {
            char *eptr;
            long val;

            if ((j % 4) == 0) {
                if (getClientLimitClassByName(v[j]) == -1) {
                    sdsfreesplitres(v,vlen);
                    goto badfmt;
                }
            } else {
                val = strtoll(v[j], &eptr, 10);
                if (eptr[0] != '\0' || val < 0) {
                    sdsfreesplitres(v,vlen);
                    goto badfmt;
                }
            }
        }
        /* Finally set the new config */
        for (j = 0; j < vlen; j += 4) {
            int class;
            unsigned long long hard, soft;
            int soft_seconds;

            class = getClientLimitClassByName(v[j]);
            hard = strtoll(v[j+1],NULL,10);
            soft = strtoll(v[j+2],NULL,10);
            soft_seconds = strtoll(v[j+3],NULL,10);

            server.client_obuf_limits[class].hard_limit_bytes = hard;
            server.client_obuf_limits[class].soft_limit_bytes = soft;
            server.client_obuf_limits[class].soft_limit_seconds = soft_seconds;
        }
        sdsfreesplitres(v,vlen);
    } else if (!strcasecmp(c->argv[2]->ptr,"stop-writes-on-bgsave-error")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.stop_writes_on_bgsave_err = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"repl-ping-slave-period")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll <= 0) goto badfmt;
        server.repl_ping_slave_period = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"repl-timeout")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll <= 0) goto badfmt;
        server.repl_timeout = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"repl-backlog-size")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll <= 0) goto badfmt;
        resizeReplicationBacklog(ll);
    } else if (!strcasecmp(c->argv[2]->ptr,"repl-backlog-ttl")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        server.repl_backlog_time_limit = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"watchdog-period")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR || ll < 0) goto badfmt;
        if (ll)
            enableWatchdog(ll);
        else
            disableWatchdog();
    } else if (!strcasecmp(c->argv[2]->ptr,"rdbcompression")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.rdb_compression = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"notify-keyspace-events")) {
        int flags = keyspaceEventsStringToFlags(o->ptr);

        if (flags == -1) goto badfmt;
        server.notify_keyspace_events = flags;
    } else if (!strcasecmp(c->argv[2]->ptr,"repl-disable-tcp-nodelay")) {
        int yn = yesnotoi(o->ptr);

        if (yn == -1) goto badfmt;
        server.repl_disable_tcp_nodelay = yn;
    } else if (!strcasecmp(c->argv[2]->ptr,"slave-priority")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0) goto badfmt;
        server.slave_priority = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"min-slaves-to-write")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0) goto badfmt;
        server.repl_min_slaves_to_write = ll;
        refreshGoodSlavesCount();
    } else if (!strcasecmp(c->argv[2]->ptr,"min-slaves-max-lag")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0) goto badfmt;
        server.repl_min_slaves_max_lag = ll;
        refreshGoodSlavesCount();
    } else if (!strcasecmp(c->argv[2]->ptr,"cluster-node-timeout")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll <= 0) goto badfmt;
        server.cluster_node_timeout = ll;
    } else if (!strcasecmp(c->argv[2]->ptr,"cluster-migration-barrier")) {
        if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
            ll < 0) goto badfmt;
        server.cluster_migration_barrier = ll;
    } else {
        addReplyErrorFormat(c,"Unsupported CONFIG parameter: %s",
            (char*)c->argv[2]->ptr);
        return;
    }
    addReply(c,shared.ok);
    return;

badfmt: /* Bad format errors */
    addReplyErrorFormat(c,"Invalid argument '%s' for CONFIG SET '%s'",
            (char*)o->ptr,
            (char*)c->argv[2]->ptr);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x38(%rdi), %rax
movq 0x10(%rax), %rsi
movl (%rsi), %ecx
shrl $0x4, %ecx
testb $0x7, %cl
jne 0x462d3
movq 0x18(%rax), %r14
movl (%r14), %eax
shrl $0x4, %eax
testb $0x7, %al
jne 0x462ec
movq 0x8(%rsi), %r15
leaq 0x54817(%rip), %rsi     # 0x99cd9
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45906
leaq 0x547bd(%rip), %rsi     # 0x99c96
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4593f
leaq 0x54609(%rip), %rsi     # 0x99af9
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45977
leaq 0x5443b(%rip), %rsi     # 0x99942
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x459be
leaq 0x543ff(%rip), %rsi     # 0x9991d
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45a21
leaq 0x5462b(%rip), %rsi     # 0x99b60
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45af6
leaq 0x54400(%rip), %rsi     # 0x9994c
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45b3c
leaq 0x54463(%rip), %rsi     # 0x999c6
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45be0
leaq 0x548d1(%rip), %rsi     # 0x99e4b
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45c17
leaq 0x54177(%rip), %rsi     # 0x99708
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45cbe
leaq 0x5461f(%rip), %rsi     # 0x99bc7
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45d0a
leaq 0x545ee(%rip), %rsi     # 0x99bad
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45d7f
leaq 0x5458d(%rip), %rsi     # 0x99b63
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45db9
leaq 0x54624(%rip), %rsi     # 0x99c11
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45e28
leaq 0x5465a(%rip), %rsi     # 0x99c5e
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45e75
leaq 0x5465d(%rip), %rsi     # 0x99c78
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45efb
leaq 0x5258b(%rip), %rsi     # 0x97bbd
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45f1f
leaq 0x544bb(%rip), %rsi     # 0x99b04
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46053
leaq 0x544bb(%rip), %rsi     # 0x99b1b
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46077
leaq 0x54163(%rip), %rsi     # 0x997da
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4609b
leaq 0x54682(%rip), %rsi     # 0x99d10
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x460db
leaq 0x54684(%rip), %rsi     # 0x99d29
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46113
leaq 0x54684(%rip), %rsi     # 0x99d40
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4614b
leaq 0x54686(%rip), %rsi     # 0x99d59
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46183
leaq 0x54686(%rip), %rsi     # 0x99d70
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x461bb
leaq 0x54686(%rip), %rsi     # 0x99d87
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x461f3
leaq 0x54688(%rip), %rsi     # 0x99da0
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4622b
leaq 0x54688(%rip), %rsi     # 0x99db7
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46263
leaq 0x5477c(%rip), %rsi     # 0x99ec2
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4629b
leaq 0x54774(%rip), %rsi     # 0x99ed1
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46315
leaq 0x54775(%rip), %rsi     # 0x99ee9
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46340
leaq 0x5406b(%rip), %rsi     # 0x997f6
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4637a
leaq 0x54757(%rip), %rsi     # 0x99ef9
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x463f0
leaq 0x547af(%rip), %rsi     # 0x99f68
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4654a
leaq 0x5422f(%rip), %rsi     # 0x999ff
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46584
leaq 0x5425b(%rip), %rsi     # 0x99a42
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x465d1
leaq 0x5428c(%rip), %rsi     # 0x99a8a
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4661e
leaq 0x542af(%rip), %rsi     # 0x99ac4
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4667b
leaq 0x54b25(%rip), %rsi     # 0x9a351
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x466b3
leaq 0x542e8(%rip), %rsi     # 0x99b2b
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x466e7
leaq 0x547ad(%rip), %rsi     # 0x9a007
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4670b
leaq 0x54200(%rip), %rsi     # 0x99a71
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4672f
leaq 0x546fc(%rip), %rsi     # 0x99f84
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4675d
leaq 0x546f4(%rip), %rsi     # 0x99f93
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46794
leaq 0x54718(%rip), %rsi     # 0x99fce
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x467c8
leaq 0x54571(%rip), %rsi     # 0x99e3e
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46804
leaq 0x54599(%rip), %rsi     # 0x99e7d
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4683c
leaq 0x54a66(%rip), %rsi     # 0x9a361
movq %rbx, %rdi
movq %r15, %rdx
jmp 0x460c6
movq 0x8(%r14), %rdi
callq 0x30291
testl %eax, %eax
je 0x459a1
leaq 0x8468a(%rip), %r15     # 0xc9fa8
movq 0x588(%r15), %rdi
callq 0x2984b
movq 0x8(%r14), %rdi
callq 0x29885
movq %rax, 0x588(%r15)
jmp 0x45ade
movq 0x8(%r14), %rax
cmpl $0x200, -0x8(%rax)      # imm = 0x200
ja 0x45c8e
leaq 0x84651(%rip), %r15     # 0xc9fa8
movq 0x40(%r15), %rdi
callq 0x2984b
movq 0x8(%r14), %rdi
cmpb $0x0, (%rdi)
je 0x45ad8
callq 0x29885
jmp 0x45ada
leaq 0x8462a(%rip), %r15     # 0xc9fa8
movq 0x648(%r15), %rdi
callq 0x2984b
movq 0x8(%r14), %rdi
cmpb $0x0, (%rdi)
je 0x45acd
callq 0x29885
jmp 0x45acf
leaq 0x5433c(%rip), %rsi     # 0x99ce4
movq %rbx, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2d9d7
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %al
movq (%r15), %r15
testq %r15, %r15
sets %cl
orb %al, %cl
jne 0x45c8e
leaq 0x845be(%rip), %rax     # 0xc9fa8
movq %r15, 0x720(%rax)
testq %r15, %r15
je 0x45ade
callq 0x298b2
cmpq %rax, %r15
jae 0x45a17
leaq 0x54785(%rip), %rsi     # 0x9a190
movl $0x3, %edi
xorl %eax, %eax
callq 0x23064
callq 0x262cb
jmp 0x45ade
leaq 0x84580(%rip), %r12     # 0xc9fa8
movl 0x71c(%r12), %ebp
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
setle %dl
orb %cl, %dl
movl $0x2, %r15d
jne 0x45c7f
movslq %ebp, %rcx
movl %eax, 0x71c(%r12)
xorl %r15d, %r15d
cmpq %rcx, %rax
jle 0x45c7f
callq 0x24f6a
movslq 0x71c(%r12), %rdx
cmpq %rdx, (%rsp)
jne 0x45c60
movq 0x28(%r12), %rdi
callq 0x208d8
movl 0x71c(%r12), %esi
subl $-0x80, %esi
cmpl %esi, %eax
jge 0x45c7f
movq 0x28(%r12), %rdi
callq 0x208dc
cmpl $-0x1, %eax
jne 0x45c7f
leaq 0x547f9(%rip), %rsi     # 0x9a2b9
movq %rbx, %rdi
callq 0x2d9d7
jmp 0x45c71
xorl %eax, %eax
movq %rax, 0x648(%r15)
jmp 0x45ade
xorl %eax, %eax
movq %rax, 0x40(%r15)
leaq 0x84d1b(%rip), %rax     # 0xca800
movq 0x8(%rax), %rsi
movq %rbx, %rdi
callq 0x2d6f0
jmp 0x45caf
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
cmpl $0x2, %eax
movl $0x1, %ecx
cmovgel %eax, %ecx
movl $0x1f4, %eax            # imm = 0x1F4
cmpl %eax, %ecx
cmovgel %eax, %ecx
leaq 0x84471(%rip), %rax     # 0xc9fa8
movl %ecx, 0x8(%rax)
jmp 0x45ade
movq 0x8(%r14), %r15
leaq 0x53e16(%rip), %rsi     # 0x9995d
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45c4a
leaq 0x53e0c(%rip), %rsi     # 0x9996a
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45cf4
leaq 0x53e05(%rip), %rsi     # 0x9997a
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45d69
leaq 0x53dfb(%rip), %rsi     # 0x99987
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45da3
leaq 0x53df0(%rip), %rsi     # 0x99993
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45dfc
leaq 0x53de8(%rip), %rsi     # 0x999a2
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
jne 0x45c8e
leaq 0x843d7(%rip), %rax     # 0xc9fa8
movl $0x5, 0x728(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
setle %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x8439c(%rip), %rcx     # 0xc9fa8
movl %eax, 0x72c(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x84369(%rip), %rcx     # 0xc9fa8
movl %eax, 0x468(%rcx)
jmp 0x45ade
leaq 0x84357(%rip), %rax     # 0xc9fa8
movl $0x0, 0x728(%rax)
jmp 0x45ade
leaq 0x545fa(%rip), %rsi     # 0x9a261
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2d9fe
movl %ebp, 0x71c(%r12)
movl $0x1, %r15d
testl %r15d, %r15d
je 0x45ade
cmpl $0x2, %r15d
jne 0x45caf
movq 0x8(%r14), %rdx
movq 0x38(%rbx), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
leaq 0x546dd(%rip), %rsi     # 0x9a382
movq %rbx, %rdi
xorl %eax, %eax
callq 0x2d9fe
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
cmpq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
seta %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x842bf(%rip), %rcx     # 0xc9fa8
movl %eax, 0x46c(%rcx)
jmp 0x45ade
leaq 0x842ad(%rip), %rax     # 0xc9fa8
movl $0x2, 0x728(%rax)
jmp 0x45ade
movq 0x8(%r14), %r15
leaq 0x528bd(%rip), %rsi     # 0x985d2
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45e12
leaq 0x53eae(%rip), %rsi     # 0x99bda
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x45e5f
leaq 0x53e90(%rip), %rsi     # 0x99bd3
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
jne 0x45c8e
leaq 0x8424e(%rip), %rax     # 0xc9fa8
movl $0x1, 0x4d4(%rax)
jmp 0x45ade
leaq 0x84238(%rip), %rax     # 0xc9fa8
movl $0x1, 0x728(%rax)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x84210(%rip), %rcx     # 0xc9fa8
movl %eax, 0x4e0(%rcx)
jmp 0x45ade
leaq 0x841fe(%rip), %rax     # 0xc9fa8
movl $0x3, 0x728(%rax)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45ead
testl %eax, %eax
sete %dl
leaq 0x841d1(%rip), %rcx     # 0xc9fa8
movl 0x4d0(%rcx), %ecx
testl %ecx, %ecx
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x45eb4
callq 0x495b7
xorl %ebp, %ebp
jmp 0x45ee5
leaq 0x841a5(%rip), %rax     # 0xc9fa8
movl $0x4, 0x728(%rax)
jmp 0x45ade
leaq 0x8418f(%rip), %rax     # 0xc9fa8
movl $0x0, 0x4d4(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x84154(%rip), %rcx     # 0xc9fa8
movl %eax, 0x4e4(%rcx)
jmp 0x45ade
leaq 0x84142(%rip), %rax     # 0xc9fa8
movl $0x2, 0x4d4(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x84107(%rip), %rcx     # 0xc9fa8
movq %rax, 0x4e8(%rcx)
jmp 0x45ade
movl $0x2, %ebp
jmp 0x45ee5
testl %eax, %eax
setne %al
testl %ecx, %ecx
sete %cl
andb %al, %cl
xorl %ebp, %ebp
cmpb $0x1, %cl
jne 0x45ee5
callq 0x49a1c
cmpl $-0x1, %eax
jne 0x45ee5
leaq 0x54438(%rip), %rsi     # 0x9a310
movq %rbx, %rdi
callq 0x2d9d7
movl $0x1, %ebp
testl %ebp, %ebp
je 0x45ade
cmpl $0x2, %ebp
je 0x45c8e
jmp 0x45caf
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x84094(%rip), %rcx     # 0xc9fa8
movl %eax, 0x550(%rcx)
jmp 0x45ade
movq 0x8(%r14), %rdi
movl -0x8(%rdi), %esi
leaq 0x5449a(%rip), %rdx     # 0x9a3c7
leaq 0xc(%rsp), %r12
movl $0x1, %ecx
movq %r12, %r8
callq 0x28d54
movq %rax, %r15
movl (%r12), %esi
movl $0x2, %r13d
testb $0x1, %sil
jne 0x46033
cmpl $0x0, 0xc(%rsp)
jle 0x45fc0
xorl %ebp, %ebp
movq %rsp, %r12
movq (%r15,%rbp,8), %rdi
movq %r12, %rsi
movl $0xa, %edx
callq 0x1fa70
movq (%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x45f97
testb $0x1, %bpl
jne 0x45f87
testq %rax, %rax
jle 0x45f97
xorl %r13d, %r13d
movb $0x1, %cl
testb $0x1, %bpl
je 0x45fab
testq %rax, %rax
jns 0x45fab
movl 0xc(%rsp), %esi
movq %r15, %rdi
callq 0x28f0a
movl $0x2, %r13d
xorl %ecx, %ecx
testb %cl, %cl
je 0x4603b
incq %rbp
movslq 0xc(%rsp), %rax
cmpq %rax, %rbp
jl 0x45f62
leaq 0x83fe1(%rip), %r12     # 0xc9fa8
movq 0x578(%r12), %rdi
callq 0x2984b
movq $0x0, 0x578(%r12)
movl $0x0, 0x580(%r12)
movl 0xc(%rsp), %esi
xorl %r13d, %r13d
testl %esi, %esi
jle 0x46033
xorl %ebp, %ebp
movq (%r15,%rbp,8), %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1fa70
movq %rax, %r12
movq 0x8(%r15,%rbp,8), %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1fa70
movq %r12, %rdi
movl %eax, %esi
callq 0x4391c
addq $0x2, %rbp
movl 0xc(%rsp), %esi
cmpl %ebp, %esi
jg 0x45ff9
movq %r15, %rdi
callq 0x28f0a
testl %r13d, %r13d
je 0x45ade
cmpl $0x2, %r13d
je 0x45c8e
jmp 0x45caf
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x83f3c(%rip), %rcx     # 0xc9fa8
movl %eax, 0x6a8(%rcx)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x83f18(%rip), %rcx     # 0xc9fa8
movl %eax, 0x6ac(%rcx)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x1f060
cmpl $-0x1, %eax
jne 0x45ade
callq 0x1f810
movl (%rax), %edi
callq 0x1f630
leaq 0x5427a(%rip), %rsi     # 0x9a33a
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2d9fe
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83ea1(%rip), %rcx     # 0xc9fa8
movq %rax, 0x758(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83e69(%rip), %rcx     # 0xc9fa8
movq %rax, 0x760(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83e31(%rip), %rcx     # 0xc9fa8
movq %rax, 0x768(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83df9(%rip), %rcx     # 0xc9fa8
movq %rax, 0x770(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83dc1(%rip), %rcx     # 0xc9fa8
movq %rax, 0x778(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83d89(%rip), %rcx     # 0xc9fa8
movq %rax, 0x780(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83d51(%rip), %rcx     # 0xc9fa8
movq %rax, 0x788(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83d19(%rip), %rcx     # 0xc9fa8
movq %rax, 0x790(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83ce1(%rip), %rcx     # 0xc9fa8
movq %rax, 0x800(%rcx)
jmp 0x45ade
leaq 0x53e7c(%rip), %rdx     # 0x9a156
leaq 0x53b0d(%rip), %rcx     # 0x99dee
movq %rbx, %rdi
movl $0x257, %r8d            # imm = 0x257
jmp 0x46306
leaq 0x53e80(%rip), %rdx     # 0x9a173
leaq 0x53af4(%rip), %rcx     # 0x99dee
movq %rbx, %rdi
movq %r14, %rsi
movl $0x258, %r8d            # imm = 0x258
callq 0x4d872
movl $0x1, %edi
callq 0x1f3b0
movq %rsp, %rsi
movq %r14, %rdi
callq 0x30f9e
cmpl $-0x1, %eax
je 0x45c8e
movq (%rsp), %rax
leaq 0x83c74(%rip), %rcx     # 0xc9fa8
movq %rax, 0x3b8(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
movl %eax, %eax
leaq 0x83c3a(%rip), %rcx     # 0xc9fa8
movq %rax, 0x3c0(%rcx)
jmp 0x45ade
movq 0x8(%r14), %r15
leaq 0x534ba(%rip), %rsi     # 0x9983f
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x4656e
leaq 0x5346b(%rip), %rsi     # 0x99807
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x465bb
leaq 0x5344c(%rip), %rsi     # 0x997ff
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
je 0x46608
leaq 0x5d3ce(%rip), %rsi     # 0xa3798
movq %r15, %rdi
callq 0x1f2e0
testl %eax, %eax
jne 0x45c8e
leaq 0x83bc7(%rip), %rax     # 0xc9fa8
movl $0x0, 0x464(%rax)
jmp 0x45ade
movq 0x8(%r14), %rdi
movl -0x8(%rdi), %esi
leaq 0x53fc9(%rip), %rdx     # 0x9a3c7
leaq 0xc(%rsp), %r12
movl $0x1, %ecx
movq %r12, %r8
callq 0x28d54
movq %rax, 0x18(%rsp)
movl (%r12), %esi
movl $0x2, %eax
movq %rax, 0x10(%rsp)
testb $0x3, %sil
jne 0x46656
cmpl $0x0, 0xc(%rsp)
jle 0x464aa
xorl %r13d, %r13d
movq %rsp, %r12
movq 0x18(%rsp), %rax
movq (%rax,%r13,8), %rdi
testb $0x3, %r13b
je 0x46471
movq %r12, %rsi
movl $0xa, %edx
callq 0x1fa70
movq (%rsp), %rcx
cmpb $0x0, (%rcx)
jne 0x4647b
testq %rax, %rax
js 0x4647b
movq $0x0, 0x10(%rsp)
movb $0x1, %al
jmp 0x46495
callq 0x2f7a8
cmpl $-0x1, %eax
jne 0x46464
movl 0xc(%rsp), %esi
movq 0x18(%rsp), %rdi
callq 0x28f0a
movl $0x2, %eax
movq %rax, 0x10(%rsp)
xorl %eax, %eax
testb %al, %al
je 0x46660
incq %r13
movslq 0xc(%rsp), %rax
cmpq %rax, %r13
jl 0x4643a
movl 0xc(%rsp), %esi
testl %esi, %esi
jle 0x4664d
movq $0x0, 0x10(%rsp)
xorl %r15d, %r15d
movq 0x18(%rsp), %rbp
movq (%rbp,%r15,8), %rdi
callq 0x2f7a8
movl %eax, 0x24(%rsp)
movq 0x8(%rbp,%r15,8), %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1fa70
movq %rax, %r12
movq 0x10(%rbp,%r15,8), %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1fa70
movq %rax, %r13
movq 0x18(%rbp,%r15,8), %rdi
xorl %esi, %esi
movl $0xa, %edx
callq 0x1fa70
movslq 0x24(%rsp), %rcx
leaq (%rcx,%rcx,2), %rcx
leaq 0x83a8a(%rip), %rdx     # 0xc9fa8
movq %r12, 0x488(%rdx,%rcx,8)
movq %r13, 0x490(%rdx,%rcx,8)
cltq
movq %rax, 0x498(%rdx,%rcx,8)
addq $0x4, %r15
movl 0xc(%rsp), %esi
cmpl %r15d, %esi
jg 0x464c7
jmp 0x46656
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x83a45(%rip), %rcx     # 0xc9fa8
movl %eax, 0x5bc(%rcx)
jmp 0x45ade
leaq 0x83a33(%rip), %rax     # 0xc9fa8
movl $0x3, 0x464(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
setle %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x839f8(%rip), %rcx     # 0xc9fa8
movl %eax, 0x5f8(%rcx)
jmp 0x45ade
leaq 0x839e6(%rip), %rax     # 0xc9fa8
movl $0x2, 0x464(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
setle %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x839ab(%rip), %rcx     # 0xc9fa8
movl %eax, 0x65c(%rcx)
jmp 0x45ade
leaq 0x83999(%rip), %rax     # 0xc9fa8
movl $0x1, 0x464(%rax)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %al
movq (%r15), %rdi
testq %rdi, %rdi
setle %cl
orb %al, %cl
jne 0x45c8e
callq 0x33140
jmp 0x45ade
movq $0x0, 0x10(%rsp)
movq 0x18(%rsp), %rdi
callq 0x28f0a
cmpl $0x0, 0x10(%rsp)
je 0x45ade
cmpl $0x2, 0x10(%rsp)
je 0x45c8e
jmp 0x45caf
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83901(%rip), %rcx     # 0xc9fa8
movq %rax, 0x628(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %al
movq (%r15), %rdi
testq %rdi, %rdi
sets %cl
orb %al, %cl
jne 0x45c8e
testq %rdi, %rdi
je 0x46753
callq 0x4e512
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x838a8(%rip), %rcx     # 0xc9fa8
movl %eax, 0x590(%rcx)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x606e4
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x83884(%rip), %rcx     # 0xc9fa8
movl %eax, 0x7b8(%rcx)
jmp 0x45ade
movq 0x8(%r14), %rdi
callq 0x438e8
cmpl $-0x1, %eax
je 0x45c8e
leaq 0x83860(%rip), %rcx     # 0xc9fa8
movl %eax, 0x6b8(%rcx)
jmp 0x45ade
callq 0x4e5ce
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x8381f(%rip), %rcx     # 0xc9fa8
movl %eax, 0x6bc(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x837e8(%rip), %rcx     # 0xc9fa8
movl %eax, 0x638(%rcx)
jmp 0x467fa
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x837b4(%rip), %rcx     # 0xc9fa8
movl %eax, 0x63c(%rcx)
callq 0x33a99
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
setle %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83778(%rip), %rcx     # 0xc9fa8
movq %rax, 0x7c0(%rcx)
jmp 0x45ade
movq %rsp, %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x30f9e
cmpl $-0x1, %eax
sete %cl
movq (%r15), %rax
testq %rax, %rax
sets %dl
orb %cl, %dl
jne 0x45c8e
leaq 0x83740(%rip), %rcx     # 0xc9fa8
movl %eax, 0x7d8(%rcx)
jmp 0x45ade