// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/src/debug.c
// Function: redisLogObjectDebugInfo
void redisLogObjectDebugInfo(robj *o) {
    redisLog(REDIS_WARNING,"Object type: %d", o->type);
    redisLog(REDIS_WARNING,"Object encoding: %d", o->encoding);
    redisLog(REDIS_WARNING,"Object refcount: %d", o->refcount);
    if (o->type == REDIS_STRING && sdsEncodedObject(o)) {
        redisLog(REDIS_WARNING,"Object raw string len: %zu", sdslen(o->ptr));
        if (sdslen(o->ptr) < 4096) {
            sds repr = sdscatrepr(sdsempty(),o->ptr,sdslen(o->ptr));
            redisLog(REDIS_WARNING,"Object raw string content: %s", repr);
            sdsfree(repr);
        }
    } else if (o->type == REDIS_LIST) {
        redisLog(REDIS_WARNING,"List length: %d", (int) listTypeLength(o));
    } else if (o->type == REDIS_SET) {
        redisLog(REDIS_WARNING,"Set size: %d", (int) setTypeSize(o));
    } else if (o->type == REDIS_HASH) {
        redisLog(REDIS_WARNING,"Hash size: %d", (int) hashTypeLength(o));
    } else if (o->type == REDIS_ZSET) {
        redisLog(REDIS_WARNING,"Sorted set size: %d", (int) zsetLength(o));
        if (o->encoding == REDIS_ENCODING_SKIPLIST)
            redisLog(REDIS_WARNING,"Skiplist level: %d", (int) ((zset*)o->ptr)->zsl->level);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %edx
andl $0xf, %edx
movl $0x3, %edi
leaq 0x809eb(%rip), %rsi     # 0xe54fc
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rax
movl (%rax), %edx
shrl $0x4, %edx
andl $0xf, %edx
movl $0x3, %edi
leaq 0x809dc(%rip), %rsi     # 0xe550c
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rax
movl 0x4(%rax), %edx
movl $0x3, %edi
leaq 0x809d6(%rip), %rsi     # 0xe5520
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x0, %eax
jne 0x64c1c
movq -0x8(%rbp), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x0, %eax
je 0x64b89
movq -0x8(%rbp), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x8, %eax
jne 0x64c1c
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63260
movq %rax, %rdx
movl $0x3, %edi
leaq 0x8098f(%rip), %rsi     # 0xe5534
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63260
cmpq $0x1000, %rax           # imm = 0x1000
jae 0x64c17
callq 0x2c0c0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x63260
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq %rax, %rdx
callq 0x2d820
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdx
movl $0x3, %edi
leaq 0x80948(%rip), %rsi     # 0xe554f
movb $0x0, %al
callq 0x24fb0
movq -0x10(%rbp), %rdi
callq 0x2c160
jmp 0x64d15
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x1, %eax
jne 0x64c4d
movq -0x8(%rbp), %rdi
callq 0x480f0
movl %eax, %edx
movl $0x3, %edi
leaq 0x8092c(%rip), %rsi     # 0xe556d
movb $0x0, %al
callq 0x24fb0
jmp 0x64d13
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x2, %eax
jne 0x64c7e
movq -0x8(%rbp), %rdi
callq 0x4b4b0
movl %eax, %edx
movl $0x3, %edi
leaq 0x8090b(%rip), %rsi     # 0xe557d
movb $0x0, %al
callq 0x24fb0
jmp 0x64d11
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x4, %eax
jne 0x64cac
movq -0x8(%rbp), %rdi
callq 0x557a0
movl %eax, %edx
movl $0x3, %edi
leaq 0x808e7(%rip), %rsi     # 0xe558a
movb $0x0, %al
callq 0x24fb0
jmp 0x64d0f
movq -0x8(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
cmpl $0x3, %eax
jne 0x64d0d
movq -0x8(%rbp), %rdi
callq 0x50080
movl %eax, %edx
movl $0x3, %edi
leaq 0x808c7(%rip), %rsi     # 0xe5598
movb $0x0, %al
callq 0x24fb0
movq -0x8(%rbp), %rax
movl (%rax), %eax
shrl $0x4, %eax
andl $0xf, %eax
cmpl $0x7, %eax
jne 0x64d0b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl 0x18(%rax), %edx
movl $0x3, %edi
leaq 0x808a8(%rip), %rsi     # 0xe55ac
movb $0x0, %al
callq 0x24fb0
jmp 0x64d0d
jmp 0x64d0f
jmp 0x64d11
jmp 0x64d13
jmp 0x64d15
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)