// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/src/debug.c
// Function: serverLogObjectDebugInfo
void serverLogObjectDebugInfo(robj *o) {
    serverLog(LL_WARNING,"Object type: %d", o->type);
    serverLog(LL_WARNING,"Object encoding: %d", o->encoding);
    serverLog(LL_WARNING,"Object refcount: %d", o->refcount);
    if (o->type == OBJ_STRING && sdsEncodedObject(o)) {
        serverLog(LL_WARNING,"Object raw string len: %zu", sdslen(o->ptr));
        if (sdslen(o->ptr) < 4096) {
            sds repr = sdscatrepr(sdsempty(),o->ptr,sdslen(o->ptr));
            serverLog(LL_WARNING,"Object raw string content: %s", repr);
            sdsfree(repr);
        }
    } else if (o->type == OBJ_LIST) {
        serverLog(LL_WARNING,"List length: %d", (int) listTypeLength(o));
    } else if (o->type == OBJ_SET) {
        serverLog(LL_WARNING,"Set size: %d", (int) setTypeSize(o));
    } else if (o->type == OBJ_HASH) {
        serverLog(LL_WARNING,"Hash size: %d", (int) hashTypeLength(o));
    } else if (o->type == OBJ_ZSET) {
        serverLog(LL_WARNING,"Sorted set size: %d", (int) zsetLength(o));
        if (o->encoding == OBJ_ENCODING_SKIPLIST)
            serverLog(LL_WARNING,"Skiplist level: %d", (int) ((zset*)o->ptr)->zsl->level);
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl (%rdi), %edx
andl $0xf, %edx
leaq 0x640f0(%rip), %rsi     # 0xc6aa3
movl $0x3, %edi
xorl %eax, %eax
callq 0x2fdad
movl (%rbx), %edx
shrl $0x4, %edx
andl $0xf, %edx
leaq 0x640e5(%rip), %rsi     # 0xc6ab3
movl $0x3, %edi
xorl %eax, %eax
callq 0x2fdad
movl 0x4(%rbx), %edx
leaq 0x640e3(%rip), %rsi     # 0xc6ac7
movl $0x3, %edi
xorl %eax, %eax
callq 0x2fdad
movl (%rbx), %eax
movl %eax, %ecx
andl $0xf, %ecx
cmpl $0x4, %ecx
ja 0x62b58
leaq 0x63539(%rip), %rdx     # 0xc5f40
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
shrl $0x4, %eax
testb $0x7, %al
jne 0x62b58
movq 0x8(%rbx), %rax
movzbl -0x1(%rax), %edx
movl %edx, %ecx
andl $0x7, %ecx
cmpl $0x4, %ecx
ja 0x62ae6
leaq 0x6351c(%rip), %rsi     # 0xc5f54
movslq (%rsi,%rcx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
shrl $0x3, %edx
jmp 0x62ae8
movq %rbx, %rdi
callq 0x55afa
leaq 0x640d9(%rip), %rsi     # 0xc6b31
jmp 0x62ac0
movq %rbx, %rdi
callq 0x4e5b5
leaq 0x640bb(%rip), %rsi     # 0xc6b24
jmp 0x62ac0
movq %rbx, %rdi
callq 0x51a88
leaq 0x640c5(%rip), %rsi     # 0xc6b3f
movl $0x3, %edi
movl %eax, %edx
xorl %eax, %eax
callq 0x2fdad
movl $0xf0, %eax
andl (%rbx), %eax
cmpl $0x70, %eax
jne 0x62b58
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rax
movl 0x18(%rax), %edx
leaq 0x640a9(%rip), %rsi     # 0xc6b53
movl $0x3, %edi
jmp 0x62ac7
movq %rbx, %rdi
callq 0x4c4aa
leaq 0x64054(%rip), %rsi     # 0xc6b14
movl $0x3, %edi
movl %eax, %edx
xorl %eax, %eax
popq %rbx
jmp 0x2fdad
movq -0x11(%rax), %rdx
jmp 0x62ae8
movzwl -0x5(%rax), %edx
jmp 0x62ae8
movl -0x9(%rax), %edx
jmp 0x62ae8
movzbl -0x3(%rax), %edx
jmp 0x62ae8
xorl %edx, %edx
leaq 0x63fec(%rip), %rsi     # 0xc6adb
movl $0x3, %edi
xorl %eax, %eax
callq 0x2fdad
movq 0x8(%rbx), %rax
movzbl -0x1(%rax), %ecx
andl $0x7, %ecx
cmpl $0x4, %ecx
je 0x62b20
cmpl $0x3, %ecx
je 0x62b1b
cmpl $0x2, %ecx
jne 0x62b2c
movzwl -0x5(%rax), %eax
jmp 0x62b24
movl -0x9(%rax), %eax
jmp 0x62b24
movq -0x11(%rax), %rax
cmpq $0xfff, %rax            # imm = 0xFFF
ja 0x62b58
callq 0x3628d
movq 0x8(%rbx), %rsi
movzbl -0x1(%rsi), %edx
movl %edx, %ecx
andl $0x7, %ecx
cmpl $0x4, %ecx
ja 0x62b71
leaq 0x6341e(%rip), %rdi     # 0xc5f68
movslq (%rdi,%rcx,4), %rcx
addq %rdi, %rcx
jmpq *%rcx
shrl $0x3, %edx
jmp 0x62b73
popq %rbx
retq
movq -0x11(%rsi), %rdx
jmp 0x62b73
movzwl -0x5(%rsi), %edx
jmp 0x62b73
movl -0x9(%rsi), %edx
jmp 0x62b73
movzbl -0x3(%rsi), %edx
jmp 0x62b73
xorl %edx, %edx
movq %rax, %rdi
callq 0x37c36
movq %rax, %rbx
leaq 0x63f71(%rip), %rsi     # 0xc6af6
movl $0x3, %edi
movq %rax, %rdx
xorl %eax, %eax
callq 0x2fdad
movq %rbx, %rdi
popq %rbx
jmp 0x36330