// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x59211
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x8, %eax
jne 0x59213
jmp 0x59246
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rsi
leaq 0x8b043(%rip), %rdx     # 0xe426d
leaq 0x8acd4(%rip), %rcx     # 0xe3f05
movl $0x257, %r8d            # imm = 0x257
callq 0x648b0
movl $0x1, %edi
callq 0x1f3b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x59278
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x8, %eax
jne 0x5927a
jmp 0x592ad
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rsi
leaq 0x8aff9(%rip), %rdx     # 0xe428a
leaq 0x8ac6d(%rip), %rcx     # 0xe3f05
movl $0x258, %r8d            # imm = 0x258
callq 0x648b0
movl $0x1, %edi
callq 0x1f3b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8ab1c(%rip), %rsi     # 0xe3df0
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5933b
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x3a040
cmpl $0x0, %eax
jne 0x59305
movq -0x8(%rbp), %rdi
leaq 0x8ab00(%rip), %rsi     # 0xe3dfb
callq 0x35d40
jmp 0x5aac6
leaq 0xba5ec(%rip), %rax     # 0x1138f8
movq 0x588(%rax), %rdi
callq 0x2e3a0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2e430
movq %rax, %rcx
leaq 0xba5c9(%rip), %rax     # 0x1138f8
movq %rcx, 0x588(%rax)
jmp 0x5aa86
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8aa5b(%rip), %rsi     # 0xe3dad
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x593ce
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x57090
cmpq $0x200, %rax            # imm = 0x200
jbe 0x59376
jmp 0x5aa9c
leaq 0xba57b(%rip), %rax     # 0x1138f8
movq 0x40(%rax), %rdi
callq 0x2e3a0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x593ac
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2e430
movq %rax, -0xb8(%rbp)
jmp 0x593b7
xorl %eax, %eax
movq %rax, -0xb8(%rbp)
jmp 0x593b7
movq -0xb8(%rbp), %rcx
leaq 0xba533(%rip), %rax     # 0x1138f8
movq %rcx, 0x40(%rax)
jmp 0x5aa84
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a82b(%rip), %rsi     # 0xe3c10
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5944d
leaq 0xba502(%rip), %rax     # 0x1138f8
movq 0x648(%rax), %rdi
callq 0x2e3a0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x59428
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2e430
movq %rax, -0xc0(%rbp)
jmp 0x59433
xorl %eax, %eax
movq %rax, -0xc0(%rbp)
jmp 0x59433
movq -0xc0(%rbp), %rcx
leaq 0xba4b7(%rip), %rax     # 0x1138f8
movq %rcx, 0x648(%rax)
jmp 0x5aa82
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a5f5(%rip), %rsi     # 0xe3a59
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x594f9
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5948b
cmpq $0x0, -0x18(%rbp)
jge 0x59490
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xba45d(%rip), %rax     # 0x1138f8
movq %rcx, 0x720(%rax)
leaq 0xba44f(%rip), %rax     # 0x1138f8
cmpq $0x0, 0x720(%rax)
je 0x594f4
leaq 0xba43e(%rip), %rax     # 0x1138f8
movq 0x720(%rax), %rax
movq %rax, -0xc8(%rbp)
callq 0x2e480
movq %rax, %rcx
movq -0xc8(%rbp), %rax
cmpq %rcx, %rax
jae 0x594ef
movl $0x3, %edi
leaq 0x8adbf(%rip), %rsi     # 0xe42a7
movb $0x0, %al
callq 0x24fb0
callq 0x293d0
jmp 0x5aa80
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a524(%rip), %rsi     # 0xe3a34
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5963a
leaq 0xba3d3(%rip), %rax     # 0x1138f8
movl 0x71c(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59547
cmpq $0x1, -0x18(%rbp)
jge 0x5954c
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xba39f(%rip), %rax     # 0x1138f8
movl %ecx, 0x71c(%rax)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
cmpq %rcx, %rax
jle 0x59635
callq 0x278c0
leaq 0xba37c(%rip), %rax     # 0x1138f8
movslq 0x71c(%rax), %rax
cmpq -0x18(%rbp), %rax
je 0x595bd
movq -0x8(%rbp), %rdi
leaq 0xba364(%rip), %rax     # 0x1138f8
movl 0x71c(%rax), %edx
leaq 0x8add7(%rip), %rsi     # 0xe4378
movb $0x0, %al
callq 0x35d80
movl -0x1c(%rbp), %ecx
leaq 0xba346(%rip), %rax     # 0x1138f8
movl %ecx, 0x71c(%rax)
jmp 0x5aac6
leaq 0xba334(%rip), %rax     # 0x1138f8
movq 0x28(%rax), %rdi
callq 0x20880
leaq 0xba324(%rip), %rcx     # 0x1138f8
movl 0x71c(%rcx), %ecx
addl $0x80, %ecx
cmpl %ecx, %eax
jge 0x59633
leaq 0xba30d(%rip), %rax     # 0x1138f8
movq 0x28(%rax), %rdi
leaq 0xba302(%rip), %rax     # 0x1138f8
movl 0x71c(%rax), %esi
addl $0x80, %esi
callq 0x208a0
cmpl $-0x1, %eax
jne 0x59631
movq -0x8(%rbp), %rdi
leaq 0x8adb9(%rip), %rsi     # 0xe43d0
callq 0x35d40
movl -0x1c(%rbp), %ecx
leaq 0xba2d2(%rip), %rax     # 0x1138f8
movl %ecx, 0x71c(%rax)
jmp 0x5aac6
jmp 0x59633
jmp 0x59635
jmp 0x5aa7e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a626(%rip), %rsi     # 0xe3c77
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x596c7
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59674
cmpq $0x0, -0x18(%rbp)
jge 0x59679
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xba272(%rip), %rax     # 0x1138f8
movl %ecx, 0x8(%rax)
leaq 0xba268(%rip), %rax     # 0x1138f8
cmpl $0x1, 0x8(%rax)
jge 0x596a4
leaq 0xba25b(%rip), %rax     # 0x1138f8
movl $0x1, 0x8(%rax)
leaq 0xba24d(%rip), %rax     # 0x1138f8
cmpl $0x1f4, 0x8(%rax)       # imm = 0x1F4
jle 0x596c2
leaq 0xba23d(%rip), %rax     # 0x1138f8
movl $0x1f4, 0x8(%rax)       # imm = 0x1F4
jmp 0x5aa7c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a385(%rip), %rsi     # 0xe3a63
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59811
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a379(%rip), %rsi     # 0xe3a74
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5971b
leaq 0xba1ec(%rip), %rax     # 0x1138f8
movl $0x0, 0x728(%rax)
jmp 0x5980c
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a357(%rip), %rsi     # 0xe3a81
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5974a
leaq 0xba1bd(%rip), %rax     # 0x1138f8
movl $0x2, 0x728(%rax)
jmp 0x5980a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a338(%rip), %rsi     # 0xe3a91
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59779
leaq 0xba18e(%rip), %rax     # 0x1138f8
movl $0x1, 0x728(%rax)
jmp 0x59808
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a316(%rip), %rsi     # 0xe3a9e
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x597a5
leaq 0xba15f(%rip), %rax     # 0x1138f8
movl $0x3, 0x728(%rax)
jmp 0x59806
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a2f6(%rip), %rsi     # 0xe3aaa
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x597d1
leaq 0xba133(%rip), %rax     # 0x1138f8
movl $0x4, 0x728(%rax)
jmp 0x59804
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a2d9(%rip), %rsi     # 0xe3ab9
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x597fd
leaq 0xba107(%rip), %rax     # 0x1138f8
movl $0x5, 0x728(%rax)
jmp 0x59802
jmp 0x5aa9c
jmp 0x59804
jmp 0x59806
jmp 0x59808
jmp 0x5980a
jmp 0x5980c
jmp 0x5aa7a
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a2b5(%rip), %rsi     # 0xe3add
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59868
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5984b
cmpq $0x0, -0x18(%rbp)
jg 0x59850
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xba09b(%rip), %rax     # 0x1138f8
movl %ecx, 0x72c(%rax)
jmp 0x5aa78
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a6e3(%rip), %rsi     # 0xe3f62
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x598cf
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x598b2
cmpq $0x0, -0x18(%rbp)
jl 0x598b2
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, -0x18(%rbp)
jle 0x598b7
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xba034(%rip), %rax     # 0x1138f8
movl %ecx, 0x468(%rax)
jmp 0x5aa76
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89f39(%rip), %rsi     # 0xe381f
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59930
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59913
cmpq $0x0, -0x18(%rbp)
jl 0x59913
cmpq $0x7fffffff, -0x18(%rbp) # imm = 0x7FFFFFFF
jle 0x59918
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb9fd3(%rip), %rax     # 0x1138f8
movl %ecx, 0x46c(%rax)
jmp 0x5aa74
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a397(%rip), %rsi     # 0xe3cde
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x599e7
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x88daa(%rip), %rsi     # 0xe270e
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59981
leaq 0xb9f83(%rip), %rax     # 0x1138f8
movl $0x0, 0x4d4(%rax)
jmp 0x599e2
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a361(%rip), %rsi     # 0xe3cf1
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x599ad
leaq 0xb9f57(%rip), %rax     # 0x1138f8
movl $0x2, 0x4d4(%rax)
jmp 0x599e0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x8a32e(%rip), %rsi     # 0xe3cea
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x599d9
leaq 0xb9f2b(%rip), %rax     # 0x1138f8
movl $0x1, 0x4d4(%rax)
jmp 0x599de
jmp 0x5aa9c
jmp 0x599e0
jmp 0x599e2
jmp 0x5aa72
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a2c6(%rip), %rsi     # 0xe3cc4
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59a38
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0x20(%rbp)
cmpl $-0x1, -0x20(%rbp)
jne 0x59a23
jmp 0x5aa9c
movl -0x20(%rbp), %ecx
leaq 0xb9ecb(%rip), %rax     # 0x1138f8
movl %ecx, 0x4e0(%rax)
jmp 0x5aa70
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a22b(%rip), %rsi     # 0xe3c7a
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59acf
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x59a74
jmp 0x5aa9c
cmpl $0x0, -0x24(%rbp)
jne 0x59a91
leaq 0xb9e77(%rip), %rax     # 0x1138f8
cmpl $0x0, 0x4d0(%rax)
je 0x59a91
callq 0x5eaf0
jmp 0x59aca
cmpl $0x0, -0x24(%rbp)
je 0x59ac8
leaq 0xb9e5a(%rip), %rax     # 0x1138f8
cmpl $0x0, 0x4d0(%rax)
jne 0x59ac8
callq 0x5f170
cmpl $-0x1, %eax
jne 0x59ac6
movq -0x8(%rbp), %rdi
leaq 0x8a96b(%rip), %rsi     # 0xe4427
callq 0x35d40
jmp 0x5aac6
jmp 0x59ac8
jmp 0x59aca
jmp 0x5aa6e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a242(%rip), %rsi     # 0xe3d28
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59b26
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59b09
cmpq $0x0, -0x18(%rbp)
jge 0x59b0e
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb9ddd(%rip), %rax     # 0x1138f8
movl %ecx, 0x4e4(%rax)
jmp 0x5aa6c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a238(%rip), %rsi     # 0xe3d75
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59b7c
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59b60
cmpq $0x0, -0x18(%rbp)
jge 0x59b65
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9d88(%rip), %rax     # 0x1138f8
movq %rcx, 0x4e8(%rax)
jmp 0x5aa6a
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8a1fc(%rip), %rsi     # 0xe3d8f
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59bcd
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jne 0x59bb8
jmp 0x5aa9c
movl -0x28(%rbp), %ecx
leaq 0xb9d36(%rip), %rax     # 0x1138f8
movl %ecx, 0x550(%rax)
jmp 0x5aa68
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x88115(%rip), %rsi     # 0xe1cf9
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59d43
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x57090
movq -0xd0(%rbp), %rdi
movl %eax, %esi
leaq 0x8a8c0(%rip), %rdx     # 0xe44de
movl $0x1, %ecx
leaq -0x2c(%rbp), %r8
callq 0x2d5a0
movq %rax, -0x38(%rbp)
movl -0x2c(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x59c4c
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa9c
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x59cc7
movq -0x38(%rbp), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x40(%rbp), %rsi
movl $0xa, %edx
callq 0x1fa80
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x59ca9
movl -0x30(%rbp), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x59c97
cmpq $0x1, -0x48(%rbp)
jl 0x59ca9
movl -0x30(%rbp), %eax
andl $0x1, %eax
cmpl $0x1, %eax
jne 0x59cba
cmpq $0x0, -0x48(%rbp)
jge 0x59cba
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa9c
jmp 0x59cbc
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x59c53
callq 0x571f0
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jge 0x59d32
movq -0x38(%rbp), %rax
movslq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x1fa80
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
movl -0x30(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x1fa80
movl %eax, -0x54(%rbp)
movq -0x50(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x57130
movl -0x30(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x30(%rbp)
jmp 0x59cd3
movq -0x38(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa66
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89ec1(%rip), %rsi     # 0xe3c1b
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59d94
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0x58(%rbp)
cmpl $-0x1, -0x58(%rbp)
jne 0x59d7f
jmp 0x5aa9c
movl -0x58(%rbp), %ecx
leaq 0xb9b6f(%rip), %rax     # 0x1138f8
movl %ecx, 0x6a8(%rax)
jmp 0x5aa64
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e87(%rip), %rsi     # 0xe3c32
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59de5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0x5c(%rbp)
cmpl $-0x1, -0x5c(%rbp)
jne 0x59dd0
jmp 0x5aa9c
movl -0x5c(%rbp), %ecx
leaq 0xb9b1e(%rip), %rax     # 0x1138f8
movl %ecx, 0x6ac(%rax)
jmp 0x5aa62
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89af5(%rip), %rsi     # 0xe38f1
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59e51
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x1f060
cmpl $-0x1, %eax
jne 0x59e4c
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
callq 0x1f820
movl (%rax), %edi
callq 0x1f630
movq -0xd8(%rbp), %rdi
movq %rax, %rdx
leaq 0x8a611(%rip), %rsi     # 0xe4451
movb $0x0, %al
callq 0x35d80
jmp 0x5aac6
jmp 0x5aa60
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89fbf(%rip), %rsi     # 0xe3e27
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59ea7
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59e8b
cmpq $0x0, -0x18(%rbp)
jge 0x59e90
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9a5d(%rip), %rax     # 0x1138f8
movq %rcx, 0x758(%rax)
jmp 0x5aa5e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89f82(%rip), %rsi     # 0xe3e40
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59efd
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59ee1
cmpq $0x0, -0x18(%rbp)
jge 0x59ee6
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9a07(%rip), %rax     # 0x1138f8
movq %rcx, 0x760(%rax)
jmp 0x5aa5c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89f43(%rip), %rsi     # 0xe3e57
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59f53
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59f37
cmpq $0x0, -0x18(%rbp)
jge 0x59f3c
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb99b1(%rip), %rax     # 0x1138f8
movq %rcx, 0x768(%rax)
jmp 0x5aa5a
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89f06(%rip), %rsi     # 0xe3e70
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59fa9
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59f8d
cmpq $0x0, -0x18(%rbp)
jge 0x59f92
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb995b(%rip), %rax     # 0x1138f8
movq %rcx, 0x770(%rax)
jmp 0x5aa58
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89ec7(%rip), %rsi     # 0xe3e87
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x59fff
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x59fe3
cmpq $0x0, -0x18(%rbp)
jge 0x59fe8
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9905(%rip), %rax     # 0x1138f8
movq %rcx, 0x778(%rax)
jmp 0x5aa56
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e88(%rip), %rsi     # 0xe3e9e
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a055
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a039
cmpq $0x0, -0x18(%rbp)
jge 0x5a03e
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb98af(%rip), %rax     # 0x1138f8
movq %rcx, 0x780(%rax)
jmp 0x5aa54
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e4b(%rip), %rsi     # 0xe3eb7
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a0ab
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a08f
cmpq $0x0, -0x18(%rbp)
jge 0x5a094
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9859(%rip), %rax     # 0x1138f8
movq %rcx, 0x788(%rax)
jmp 0x5aa52
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e0c(%rip), %rsi     # 0xe3ece
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a101
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a0e5
cmpq $0x0, -0x18(%rbp)
jge 0x5a0ea
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9803(%rip), %rax     # 0x1138f8
movq %rcx, 0x790(%rax)
jmp 0x5aa50
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89ec1(%rip), %rsi     # 0xe3fd9
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a157
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a13b
cmpq $0x0, -0x18(%rbp)
jge 0x5a140
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb97ad(%rip), %rax     # 0x1138f8
movq %rcx, 0x800(%rax)
jmp 0x5aa4e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e7a(%rip), %rsi     # 0xe3fe8
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a1a6
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
jne 0x5a18f
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb975e(%rip), %rax     # 0x1138f8
movq %rcx, 0x3b8(%rax)
jmp 0x5aa4c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89e43(%rip), %rsi     # 0xe4000
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a200
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a1e0
cmpq $0x0, -0x18(%rbp)
jge 0x5a1e5
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %eax
movl %eax, %ecx
leaq 0xb9704(%rip), %rax     # 0x1138f8
movq %rcx, 0x3c0(%rax)
jmp 0x5aa4a
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x896f6(%rip), %rsi     # 0xe390d
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a2e8
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x89722(%rip), %rsi     # 0xe3956
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a254
leaq 0xb96b3(%rip), %rax     # 0x1138f8
movl $0x3, 0x464(%rax)
jmp 0x5a2e3
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x896bb(%rip), %rsi     # 0xe391e
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a280
leaq 0xb9684(%rip), %rax     # 0x1138f8
movl $0x2, 0x464(%rax)
jmp 0x5a2e1
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x89687(%rip), %rsi     # 0xe3916
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a2ac
leaq 0xb9658(%rip), %rax     # 0x1138f8
movl $0x1, 0x464(%rax)
jmp 0x5a2df
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x93b12(%rip), %rsi     # 0xeddcd
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a2d8
leaq 0xb962c(%rip), %rax     # 0x1138f8
movl $0x0, 0x464(%rax)
jmp 0x5a2dd
jmp 0x5aa9c
jmp 0x5a2df
jmp 0x5a2e1
jmp 0x5a2e3
jmp 0x5aa48
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89d11(%rip), %rsi     # 0xe4010
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a537
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xe0(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x57090
movq -0xe0(%rbp), %rdi
movl %eax, %esi
leaq 0x8a1a5(%rip), %rdx     # 0xe44de
movl $0x1, %ecx
leaq -0x60(%rbp), %r8
callq 0x2d5a0
movq %rax, -0x70(%rbp)
movl -0x60(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x5a36c
movq -0x70(%rbp), %rdi
movl -0x60(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa9c
movl $0x0, -0x64(%rbp)
movl -0x64(%rbp), %eax
cmpl -0x60(%rbp), %eax
jge 0x5a40c
movl -0x64(%rbp), %eax
movl $0x4, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x5a3b8
movq -0x70(%rbp), %rax
movslq -0x64(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x38bb0
cmpl $-0x1, %eax
jne 0x5a3b6
movq -0x70(%rbp), %rdi
movl -0x60(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa9c
jmp 0x5a3fc
movq -0x70(%rbp), %rax
movslq -0x64(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq -0x78(%rbp), %rsi
movl $0xa, %edx
callq 0x1fa80
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x5a3e9
cmpq $0x0, -0x80(%rbp)
jge 0x5a3fa
movq -0x70(%rbp), %rdi
movl -0x60(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa9c
jmp 0x5a3fc
jmp 0x5a3fe
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x5a373
movl $0x0, -0x64(%rbp)
movl -0x64(%rbp), %eax
cmpl -0x60(%rbp), %eax
jge 0x5a526
movq -0x70(%rbp), %rax
movslq -0x64(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x38bb0
movl %eax, -0x84(%rbp)
movq -0x70(%rbp), %rax
movl -0x64(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x1fa80
movq %rax, -0x90(%rbp)
movq -0x70(%rbp), %rax
movl -0x64(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x1fa80
movq %rax, -0x98(%rbp)
movq -0x70(%rbp), %rax
movl -0x64(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x1fa80
movl %eax, -0x9c(%rbp)
movq -0x90(%rbp), %rcx
movslq -0x84(%rbp), %rdx
leaq 0xb943c(%rip), %rax     # 0x1138f8
addq $0x488, %rax            # imm = 0x488
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x98(%rbp), %rcx
movslq -0x84(%rbp), %rdx
leaq 0xb9417(%rip), %rax     # 0x1138f8
addq $0x488, %rax            # imm = 0x488
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movslq -0x9c(%rbp), %rcx
movslq -0x84(%rbp), %rdx
leaq 0xb93f1(%rip), %rax     # 0x1138f8
addq $0x488, %rax            # imm = 0x488
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x64(%rbp), %eax
addl $0x4, %eax
movl %eax, -0x64(%rbp)
jmp 0x5a413
movq -0x70(%rbp), %rdi
movl -0x60(%rbp), %esi
callq 0x2d7d0
jmp 0x5aa46
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89b31(%rip), %rsi     # 0xe407f
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a591
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0xa0(%rbp)
cmpl $-0x1, -0xa0(%rbp)
jne 0x5a579
jmp 0x5aa9c
movl -0xa0(%rbp), %ecx
leaq 0xb9372(%rip), %rax     # 0x1138f8
movl %ecx, 0x5bc(%rax)
jmp 0x5aa44
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8956e(%rip), %rsi     # 0xe3b16
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a5e8
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a5cb
cmpq $0x0, -0x18(%rbp)
jg 0x5a5d0
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb931b(%rip), %rax     # 0x1138f8
movl %ecx, 0x5f8(%rax)
jmp 0x5aa42
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8955a(%rip), %rsi     # 0xe3b59
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a63f
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a622
cmpq $0x0, -0x18(%rbp)
jg 0x5a627
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb92c4(%rip), %rax     # 0x1138f8
movl %ecx, 0x65c(%rax)
jmp 0x5aa40
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8954b(%rip), %rsi     # 0xe3ba1
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a68c
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a679
cmpq $0x0, -0x18(%rbp)
jg 0x5a67e
jmp 0x5aa9c
movq -0x18(%rbp), %rdi
callq 0x3ee10
jmp 0x5aa3e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89538(%rip), %rsi     # 0xe3bdb
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a6e2
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a6c6
cmpq $0x0, -0x18(%rbp)
jge 0x5a6cb
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb9222(%rip), %rax     # 0x1138f8
movq %rcx, 0x628(%rax)
jmp 0x5aa3c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89d6f(%rip), %rsi     # 0xe4468
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a73f
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a71c
cmpq $0x0, -0x18(%rbp)
jge 0x5a721
jmp 0x5aa9c
cmpq $0x0, -0x18(%rbp)
je 0x5a735
movq -0x18(%rbp), %rax
movl %eax, %edi
callq 0x65b60
jmp 0x5a73a
callq 0x65c00
jmp 0x5aa3a
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x894ec(%rip), %rsi     # 0xe3c42
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a799
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0xa4(%rbp)
cmpl $-0x1, -0xa4(%rbp)
jne 0x5a781
jmp 0x5aa9c
movl -0xa4(%rbp), %ecx
leaq 0xb916a(%rip), %rax     # 0x1138f8
movl %ecx, 0x590(%rax)
jmp 0x5aa38
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8996e(%rip), %rsi     # 0xe411e
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a7f3
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x811e0
movl %eax, -0xa8(%rbp)
cmpl $-0x1, -0xa8(%rbp)
jne 0x5a7db
jmp 0x5aa9c
movl -0xa8(%rbp), %ecx
leaq 0xb9110(%rip), %rax     # 0x1138f8
movl %ecx, 0x7b8(%rax)
jmp 0x5aa36
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x8937e(%rip), %rsi     # 0xe3b88
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a84d
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x570d0
movl %eax, -0xac(%rbp)
cmpl $-0x1, -0xac(%rbp)
jne 0x5a835
jmp 0x5aa9c
movl -0xac(%rbp), %ecx
leaq 0xb90b6(%rip), %rax     # 0x1138f8
movl %ecx, 0x6b8(%rax)
jmp 0x5aa34
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x89837(%rip), %rsi     # 0xe409b
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a8a4
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a887
cmpq $0x0, -0x18(%rbp)
jge 0x5a88c
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb905f(%rip), %rax     # 0x1138f8
movl %ecx, 0x6bc(%rax)
jmp 0x5aa32
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x897ef(%rip), %rsi     # 0xe40aa
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a900
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a8de
cmpq $0x0, -0x18(%rbp)
jge 0x5a8e3
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb9008(%rip), %rax     # 0x1138f8
movl %ecx, 0x638(%rax)
callq 0x3fc30
jmp 0x5aa30
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x897ce(%rip), %rsi     # 0xe40e5
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a95c
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a93a
cmpq $0x0, -0x18(%rbp)
jge 0x5a93f
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb8fac(%rip), %rax     # 0x1138f8
movl %ecx, 0x63c(%rax)
callq 0x3fc30
jmp 0x5aa2e
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x895e2(%rip), %rsi     # 0xe3f55
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5a9af
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a996
cmpq $0x0, -0x18(%rbp)
jg 0x5a99b
jmp 0x5aa9c
movq -0x18(%rbp), %rcx
leaq 0xb8f52(%rip), %rax     # 0x1138f8
movq %rcx, 0x7c0(%rax)
jmp 0x5aa2c
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x895ce(%rip), %rsi     # 0xe3f94
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x5aa03
movq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x3b780
cmpl $-0x1, %eax
je 0x5a9e9
cmpq $0x0, -0x18(%rbp)
jge 0x5a9ee
jmp 0x5aa9c
movq -0x18(%rbp), %rax
movl %eax, %ecx
leaq 0xb8efd(%rip), %rax     # 0x1138f8
movl %ecx, 0x7d8(%rax)
jmp 0x5aa2a
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdx
leaq 0x89a5a(%rip), %rsi     # 0xe4478
movb $0x0, %al
callq 0x35d80
jmp 0x5aac6
jmp 0x5aa2c
jmp 0x5aa2e
jmp 0x5aa30
jmp 0x5aa32
jmp 0x5aa34
jmp 0x5aa36
jmp 0x5aa38
jmp 0x5aa3a
jmp 0x5aa3c
jmp 0x5aa3e
jmp 0x5aa40
jmp 0x5aa42
jmp 0x5aa44
jmp 0x5aa46
jmp 0x5aa48
jmp 0x5aa4a
jmp 0x5aa4c
jmp 0x5aa4e
jmp 0x5aa50
jmp 0x5aa52
jmp 0x5aa54
jmp 0x5aa56
jmp 0x5aa58
jmp 0x5aa5a
jmp 0x5aa5c
jmp 0x5aa5e
jmp 0x5aa60
jmp 0x5aa62
jmp 0x5aa64
jmp 0x5aa66
jmp 0x5aa68
jmp 0x5aa6a
jmp 0x5aa6c
jmp 0x5aa6e
jmp 0x5aa70
jmp 0x5aa72
jmp 0x5aa74
jmp 0x5aa76
jmp 0x5aa78
jmp 0x5aa7a
jmp 0x5aa7c
jmp 0x5aa7e
jmp 0x5aa80
jmp 0x5aa82
jmp 0x5aa84
jmp 0x5aa86
movq -0x8(%rbp), %rdi
leaq 0xb96bf(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x5aac6
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rcx
leaq 0x899da(%rip), %rsi     # 0xe4499
movb $0x0, %al
callq 0x35d80
addq $0xe0, %rsp
popq %rbp
retq
nop