// File: /workspace/github_c_makefile_star2_O0/andyfighting[P]hiredis_timer_cmpt/read.c
// Function: processItem
static int processItem(redisReader *r) {
    redisReadTask *cur = &(r->rstack[r->ridx]);
    char *p;

    /* check if we need to read type */
    if (cur->type < 0) {
        if ((p = readBytes(r,1)) != NULL) {
            switch (p[0]) {
            case '-':
                cur->type = REDIS_REPLY_ERROR;
                break;
            case '+':
                cur->type = REDIS_REPLY_STATUS;
                break;
            case ':':
                cur->type = REDIS_REPLY_INTEGER;
                break;
            case '$':
                cur->type = REDIS_REPLY_STRING;
                break;
            case '*':
                cur->type = REDIS_REPLY_ARRAY;
                break;
            default:
                __redisReaderSetErrorProtocolByte(r,*p);
                return REDIS_ERR;
            }
        } else {
            /* could not consume 1 byte */
            return REDIS_ERR;
        }
    }

    /* process typed item */
    switch(cur->type) {
    case REDIS_REPLY_ERROR:
    case REDIS_REPLY_STATUS:
    case REDIS_REPLY_INTEGER:
        return processLineItem(r);
    case REDIS_REPLY_STRING:
        return processBulkItem(r);
    case REDIS_REPLY_ARRAY:
        return processMultiBulkItem(r);
    default:
        assert(NULL);
        return REDIS_ERR; /* Avoid warning. */
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0xa8, %rax
movq -0x10(%rbp), %rcx
movslq 0x210(%rcx), %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x0, (%rax)
jge 0xb8a6
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0xba60
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0xb898
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
addl $-0x24, %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x16, %eax
ja 0xb87a
movq -0x28(%rbp), %rax
leaq 0x2063(%rip), %rcx      # 0xd898
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rax
movl $0x6, (%rax)
jmp 0xb896
movq -0x18(%rbp), %rax
movl $0x5, (%rax)
jmp 0xb896
movq -0x18(%rbp), %rax
movl $0x3, (%rax)
jmp 0xb896
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
jmp 0xb896
movq -0x18(%rbp), %rax
movl $0x2, (%rax)
jmp 0xb896
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movsbl (%rax), %esi
callq 0xbae0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xb927
jmp 0xb8a4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0xb927
jmp 0xb8a6
movq -0x18(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0x5, %eax
ja 0xb8f7
movq -0x30(%rbp), %rax
leaq 0x2030(%rip), %rcx      # 0xd8f4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
callq 0xbb50
movl %eax, -0x4(%rbp)
jmp 0xb927
movq -0x10(%rbp), %rdi
callq 0xbcb0
movl %eax, -0x4(%rbp)
jmp 0xb927
movq -0x10(%rbp), %rdi
callq 0xbed0
movl %eax, -0x4(%rbp)
jmp 0xb927
xorl %eax, %eax
testb $0x1, %al
jne 0xb8ff
jmp 0xb901
jmp 0xb920
leaq 0x200e(%rip), %rdi      # 0xd916
leaq 0x200c(%rip), %rsi      # 0xd91b
movl $0x19b, %edx            # imm = 0x19B
leaq 0x2040(%rip), %rcx      # 0xd95b
callq 0x31c0
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq