// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/src/debug.c
// Function: debugCommand
void debugCommand(redisClient *c) {
    if (!strcasecmp(c->argv[1]->ptr,"segfault")) {
        *((char*)-1) = 'x';
    } else if (!strcasecmp(c->argv[1]->ptr,"oom")) {
        void *ptr = zmalloc(ULONG_MAX); /* Should trigger an out of memory. */
        zfree(ptr);
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"assert")) {
        if (c->argc >= 3) c->argv[2] = tryObjectEncoding(c->argv[2]);
        redisAssertWithInfo(c,c->argv[0],1 == 2);
    } else if (!strcasecmp(c->argv[1]->ptr,"reload")) {
        if (rdbSave(server.rdb_filename) != REDIS_OK) {
            addReply(c,shared.err);
            return;
        }
        emptyDb(NULL);
        if (rdbLoad(server.rdb_filename) != REDIS_OK) {
            addReplyError(c,"Error trying to load the RDB dump");
            return;
        }
        redisLog(REDIS_WARNING,"DB reloaded by DEBUG RELOAD");
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"loadaof")) {
        emptyDb(NULL);
        if (loadAppendOnlyFile(server.aof_filename) != REDIS_OK) {
            addReply(c,shared.err);
            return;
        }
        server.dirty = 0; /* Prevent AOF / replication */
        redisLog(REDIS_WARNING,"Append Only File loaded by DEBUG LOADAOF");
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"object") && c->argc == 3) {
        dictEntry *de;
        robj *val;
        char *strenc;

        if ((de = dictFind(c->db->dict,c->argv[2]->ptr)) == NULL) {
            addReply(c,shared.nokeyerr);
            return;
        }
        val = dictGetVal(de);
        strenc = strEncoding(val->encoding);

        addReplyStatusFormat(c,
            "Value at:%p refcount:%d "
            "encoding:%s serializedlength:%lld "
            "lru:%d lru_seconds_idle:%llu",
            (void*)val, val->refcount,
            strenc, (long long) rdbSavedObjectLen(val),
            val->lru, estimateObjectIdleTime(val));
    } else if (!strcasecmp(c->argv[1]->ptr,"sdslen") && c->argc == 3) {
        dictEntry *de;
        robj *val;
        sds key;

        if ((de = dictFind(c->db->dict,c->argv[2]->ptr)) == NULL) {
            addReply(c,shared.nokeyerr);
            return;
        }
        val = dictGetVal(de);
        key = dictGetKey(de);

        if (val->type != REDIS_STRING || !sdsEncodedObject(val)) {
            addReplyError(c,"Not an sds encoded string.");
        } else {
            addReplyStatusFormat(c,
                "key_sds_len:%lld, key_sds_avail:%lld, "
                "val_sds_len:%lld, val_sds_avail:%lld",
                (long long) sdslen(key),
                (long long) sdsavail(key),
                (long long) sdslen(val->ptr),
                (long long) sdsavail(val->ptr));
        }
    } else if (!strcasecmp(c->argv[1]->ptr,"populate") && c->argc == 3) {
        long keys, j;
        robj *key, *val;
        char buf[128];

        if (getLongFromObjectOrReply(c, c->argv[2], &keys, NULL) != REDIS_OK)
            return;
        dictExpand(c->db->dict,keys);
        for (j = 0; j < keys; j++) {
            snprintf(buf,sizeof(buf),"key:%lu",j);
            key = createStringObject(buf,strlen(buf));
            if (lookupKeyRead(c->db,key) != NULL) {
                decrRefCount(key);
                continue;
            }
            snprintf(buf,sizeof(buf),"value:%lu",j);
            val = createStringObject(buf,strlen(buf));
            dbAdd(c->db,key,val);
            decrRefCount(key);
        }
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"digest") && c->argc == 2) {
        unsigned char digest[20];
        sds d = sdsempty();
        int j;

        computeDatasetDigest(digest);
        for (j = 0; j < 20; j++)
            d = sdscatprintf(d, "%02x",digest[j]);
        addReplyStatus(c,d);
        sdsfree(d);
    } else if (!strcasecmp(c->argv[1]->ptr,"sleep") && c->argc == 3) {
        double dtime = strtod(c->argv[2]->ptr,NULL);
        long long utime = dtime*1000000;
        struct timespec tv;

        tv.tv_sec = utime / 1000000;
        tv.tv_nsec = (utime % 1000000) * 1000;
        nanosleep(&tv, NULL);
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"set-active-expire") &&
               c->argc == 3)
    {
        server.active_expire_enabled = atoi(c->argv[2]->ptr);
        addReply(c,shared.ok);
    } else if (!strcasecmp(c->argv[1]->ptr,"cmdkeys") && c->argc >= 3) {
        struct redisCommand *cmd = lookupCommand(c->argv[2]->ptr);
        int *keys, numkeys, j;

        if (!cmd) {
            addReplyError(c,"Invalid command specified");
            return;
        } else if ((cmd->arity > 0 && cmd->arity != c->argc-2) ||
                   ((c->argc-2) < -cmd->arity))
        {
            addReplyError(c,"Invalid number of arguments specified for command");
            return;
        }

        keys = getKeysFromCommand(cmd,c->argv+2,c->argc-2,&numkeys);
        addReplyMultiBulkLen(c,numkeys);
        for (j = 0; j < numkeys; j++) addReplyBulk(c,c->argv[keys[j]+2]);
        getKeysFreeResult(keys);
    } else if (!strcasecmp(c->argv[1]->ptr,"error") && c->argc == 3) {
        sds errstr = sdsnewlen("-",1);

        errstr = sdscatsds(errstr,c->argv[2]->ptr);
        errstr = sdsmapchars(errstr,"\n\r","  ",2); /* no newlines in errors. */
        errstr = sdscatlen(errstr,"\r\n",2);
        addReplySds(c,errstr);
    } else {
        addReplyErrorFormat(c, "Unknown DEBUG subcommand or wrong number of arguments for '%s'",
            (char*)c->argv[1]->ptr);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x813cd(%rip), %rsi     # 0xe51d3
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x63e1f
movq $-0x1, %rax
movb $0x78, (%rax)
jmp 0x6489f
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x813a6(%rip), %rsi     # 0xe51dc
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x63e72
movq $-0x1, %rdi
callq 0x2e130
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2e3a0
movq -0x8(%rbp), %rdi
leaq 0xb02ec(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x6489d
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x81357(%rip), %rsi     # 0xe51e0
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x63eef
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jl 0x63ebd
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x3acc0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq (%rax), %rsi
leaq 0x81314(%rip), %rdx     # 0xe51e7
leaq 0x812e6(%rip), %rcx     # 0xe51c0
movl $0x102, %r8d            # imm = 0x102
callq 0x648b0
movl $0x1, %edi
callq 0x1f3b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x812e8(%rip), %rsi     # 0xe51ee
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x63fa7
leaq 0xaf9dd(%rip), %rax     # 0x1138f8
movq 0x588(%rax), %rdi
callq 0x449a0
cmpl $0x0, %eax
je 0x63f45
movq -0x8(%rbp), %rdi
leaq 0xb0219(%rip), %rax     # 0x114150
movq 0x10(%rax), %rsi
callq 0x35a70
jmp 0x6489f
xorl %eax, %eax
movl %eax, %edi
callq 0x3c6a0
leaq 0xaf9a3(%rip), %rax     # 0x1138f8
movq 0x588(%rax), %rdi
callq 0x45f70
cmpl $0x0, %eax
je 0x63f7b
movq -0x8(%rbp), %rdi
leaq 0x81284(%rip), %rsi     # 0xe51f5
callq 0x35d40
jmp 0x6489f
movl $0x3, %edi
leaq 0x81290(%rip), %rsi     # 0xe5217
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rdi
leaq 0xb01b7(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x64899
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x81275(%rip), %rsi     # 0xe5233
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x64040
xorl %eax, %eax
movl %eax, %edi
callq 0x3c6a0
leaq 0xaf920(%rip), %rax     # 0x1138f8
movq 0x4d8(%rax), %rdi
callq 0x5fac0
cmpl $0x0, %eax
je 0x64002
movq -0x8(%rbp), %rdi
leaq 0xb015c(%rip), %rax     # 0x114150
movq 0x10(%rax), %rsi
callq 0x35a70
jmp 0x6489f
leaq 0xaf8ef(%rip), %rax     # 0x1138f8
movq $0x0, 0x560(%rax)
movl $0x3, %edi
leaq 0x8121b(%rip), %rsi     # 0xe523b
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rdi
leaq 0xb011e(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x64897
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x87bb3(%rip), %rsi     # 0xebc0a
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x64172
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x64172
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x23aa0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x640b6
movq -0x8(%rbp), %rdi
leaq 0xb00a8(%rip), %rax     # 0x114150
movq 0x78(%rax), %rsi
callq 0x35a70
jmp 0x6489f
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %edi
shrl $0x4, %edi
andl $0xf, %edi
callq 0x3ba10
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x180(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x20(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x16c(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x20(%rbp), %rdi
callq 0x44860
movq %rax, -0x160(%rbp)
movq -0x20(%rbp), %rax
movl (%rax), %eax
shrl $0x8, %eax
movl %eax, -0x154(%rbp)
movq -0x20(%rbp), %rdi
callq 0x3bac0
movq -0x180(%rbp), %rdi
movq -0x178(%rbp), %rdx
movl -0x16c(%rbp), %ecx
movq -0x168(%rbp), %r8
movq -0x160(%rbp), %r9
movl -0x154(%rbp), %r10d
leaq 0x81107(%rip), %rsi     # 0xe5264
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x35f70
jmp 0x64895
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x81132(%rip), %rsi     # 0xe52bb
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x642bf
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x642bf
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x23aa0
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x641e8
movq -0x8(%rbp), %rdi
leaq 0xaff76(%rip), %rax     # 0x114150
movq 0x78(%rax), %rsi
callq 0x35a70
jmp 0x6489f
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x0, %eax
jne 0x6422f
movq -0x38(%rbp), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x64241
movq -0x38(%rbp), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x8, %eax
je 0x64241
movq -0x8(%rbp), %rdi
leaq 0x81088(%rip), %rsi     # 0xe52c2
callq 0x35d40
jmp 0x642ba
movq -0x8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movq -0x40(%rbp), %rdi
callq 0x63260
movq %rax, -0x198(%rbp)
movq -0x40(%rbp), %rdi
callq 0x63280
movq %rax, -0x190(%rbp)
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63260
movq %rax, -0x188(%rbp)
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63280
movq -0x1a0(%rbp), %rdi
movq -0x198(%rbp), %rdx
movq -0x190(%rbp), %rcx
movq -0x188(%rbp), %r8
movq %rax, %r9
leaq 0x8102a(%rip), %rsi     # 0xe52dd
movb $0x0, %al
callq 0x35f70
jmp 0x64893
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x81052(%rip), %rsi     # 0xe5328
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x64443
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x64443
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rsi
leaq -0x48(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x3b960
cmpl $0x0, %eax
je 0x64319
jmp 0x6489f
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x48(%rbp), %rsi
callq 0x232b0
movq $0x0, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq -0x48(%rbp), %rax
jge 0x6442a
leaq -0xe0(%rbp), %rdi
movq -0x50(%rbp), %rcx
movl $0x80, %esi
leaq 0x80fd7(%rip), %rdx     # 0xe5331
movb $0x0, %al
callq 0x1f120
leaq -0xe0(%rbp), %rax
movq %rax, -0x1a8(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x1f4d0
movq -0x1a8(%rbp), %rdi
movq %rax, %rsi
callq 0x3a2e0
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x58(%rbp), %rsi
callq 0x3bed0
cmpq $0x0, %rax
je 0x643b0
movq -0x58(%rbp), %rdi
callq 0x3aaa0
jmp 0x64419
leaq -0xe0(%rbp), %rdi
movq -0x50(%rbp), %rcx
movl $0x80, %esi
leaq 0x80f72(%rip), %rdx     # 0xe5339
movb $0x0, %al
callq 0x1f120
leaq -0xe0(%rbp), %rax
movq %rax, -0x1b0(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x1f4d0
movq -0x1b0(%rbp), %rdi
movq %rax, %rsi
callq 0x3a2e0
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x58(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x3c160
movq -0x58(%rbp), %rdi
callq 0x3aaa0
movq -0x50(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x50(%rbp)
jmp 0x64335
movq -0x8(%rbp), %rdi
leaq 0xafd1b(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x64891
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x80ee9(%rip), %rsi     # 0xe5343
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x644fe
movq -0x8(%rbp), %rax
cmpl $0x2, 0x30(%rax)
jne 0x644fe
callq 0x2c0c0
movq %rax, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x63480
movl $0x0, -0x10c(%rbp)
cmpl $0x14, -0x10c(%rbp)
jge 0x644dd
movq -0x108(%rbp), %rdi
movslq -0x10c(%rbp), %rax
movzbl -0x100(%rbp,%rax), %edx
leaq 0x7c822(%rip), %rsi     # 0xe0ce0
movb $0x0, %al
callq 0x2cad0
movq %rax, -0x108(%rbp)
movl -0x10c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10c(%rbp)
jmp 0x64498
movq -0x8(%rbp), %rdi
movq -0x108(%rbp), %rsi
callq 0x35f30
movq -0x108(%rbp), %rdi
callq 0x2c160
jmp 0x6488f
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x80e35(%rip), %rsi     # 0xe534a
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x645ce
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x645ce
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1fc60
movsd %xmm0, -0x118(%rbp)
movsd 0x80c5e(%rip), %xmm0    # 0xe51b8
mulsd -0x118(%rbp), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
movq %rax, -0x130(%rbp)
movq -0x120(%rbp), %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
imulq $0x3e8, %rdx, %rax      # imm = 0x3E8
movq %rax, -0x128(%rbp)
leaq -0x130(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1f900
movq -0x8(%rbp), %rdi
leaq 0xafb90(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x6488d
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x80d6b(%rip), %rsi     # 0xe5350
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x64636
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x64636
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x1f700
movl %eax, %ecx
leaq 0xaf2e1(%rip), %rax     # 0x1138f8
movl %ecx, 0x470(%rax)
movq -0x8(%rbp), %rdi
leaq 0xafb28(%rip), %rax     # 0x114150
movq 0x8(%rax), %rsi
callq 0x35a70
jmp 0x6488b
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x80d15(%rip), %rsi     # 0xe5362
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x647a0
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jl 0x647a0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rdi
callq 0x28710
movq %rax, -0x138(%rbp)
cmpq $0x0, -0x138(%rbp)
jne 0x646a4
movq -0x8(%rbp), %rdi
leaq 0x80cd0(%rip), %rsi     # 0xe536a
callq 0x35d40
jmp 0x6489f
movq -0x138(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jle 0x646c9
movq -0x138(%rbp), %rax
movl 0x10(%rax), %eax
movq -0x8(%rbp), %rcx
movl 0x30(%rcx), %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jne 0x646e3
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
subl $0x2, %eax
movq -0x138(%rbp), %rdx
xorl %ecx, %ecx
subl 0x10(%rdx), %ecx
cmpl %ecx, %eax
jge 0x646f8
movq -0x8(%rbp), %rdi
leaq 0x80c96(%rip), %rsi     # 0xe5384
callq 0x35d40
jmp 0x6489f
jmp 0x646fa
movq -0x138(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rsi
addq $0x10, %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %edx
subl $0x2, %edx
leaq -0x144(%rbp), %rcx
callq 0x3e6f0
movq %rax, -0x140(%rbp)
movq -0x8(%rbp), %rdi
movslq -0x144(%rbp), %rsi
callq 0x364f0
movl $0x0, -0x148(%rbp)
movl -0x148(%rbp), %eax
cmpl -0x144(%rbp), %eax
jge 0x6478f
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x140(%rbp), %rcx
movslq -0x148(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
callq 0x36620
movl -0x148(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x148(%rbp)
jmp 0x64744
movq -0x140(%rbp), %rdi
callq 0x3e760
jmp 0x64889
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x7e703(%rip), %rsi     # 0xe2eba
callq 0x1f2f0
cmpl $0x0, %eax
jne 0x64865
movq -0x8(%rbp), %rax
cmpl $0x3, 0x30(%rax)
jne 0x64865
leaq 0x87ad0(%rip), %rdi     # 0xec2aa
movl $0x1, %esi
callq 0x2c000
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x2c5f0
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
leaq 0x80b9a(%rip), %rsi     # 0xe53b6
leaq 0x80b96(%rip), %rdx     # 0xe53b9
movl $0x2, %ecx
callq 0x2dfe0
movq %rax, -0x150(%rbp)
movq -0x150(%rbp), %rdi
leaq 0x7ef9c(%rip), %rsi     # 0xe37de
movl $0x2, %edx
callq 0x2c500
movq %rax, -0x150(%rbp)
movq -0x8(%rbp), %rdi
movq -0x150(%rbp), %rsi
callq 0x35c00
jmp 0x64887
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rdx
leaq 0x80b3c(%rip), %rsi     # 0xe53bc
movb $0x0, %al
callq 0x35d80
jmp 0x64889
jmp 0x6488b
jmp 0x6488d
jmp 0x6488f
jmp 0x64891
jmp 0x64893
jmp 0x64895
jmp 0x64897
jmp 0x64899
jmp 0x6489b
jmp 0x6489d
jmp 0x6489f
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
nopl (%rax,%rax)