// File: /workspace/github_c_makefile_star2_O2/redis-force[P]rpm/module/rpm_redis.c
// Function: redis_response_reader_next
redis_response_status redis_response_reader_next(redis_response_reader *reader, redis_response **response) {
  *response = NULL;
  REDIS_RESPONSE_READER_CHECK_ERROR(reader);
  if (reader->len == 0) {
    return REDIS_RESPONSE_OK;
  }

  if (reader->task_idx == -1) {
    redis_response_reader_task_init(NULL, reader->tasks, -1);
    reader->task_idx = 0;
  }

  while (reader->task_idx >= 0) {
    if (redis_response_process_item(reader) != REDIS_RESPONSE_OK) {
      break;
    }
  }

  REDIS_RESPONSE_READER_CHECK_ERROR(reader);

  if (reader->pos >= 1024) {
    memmove(reader->buf, reader->buf + reader->pos, reader->len - reader->pos);
    reader->len -= reader->pos;
    reader->pos = 0;
  }

  if (reader->task_idx == -1) {
    *response = reader->response;
    reader->response = NULL;
  }
  return REDIS_RESPONSE_OK;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
andq $0x0, (%rsi)
movl (%rdi), %eax
testl %eax, %eax
je 0x86a1
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rdi, %r8
cmpq $0x0, 0xa8(%rdi)
je 0x8c4d
movq %rsi, 0x18(%rsp)
cmpl $-0x1, 0x1d8(%r8)
jne 0x86e4
orq $-0x1, 0xb8(%r8)
orl $-0x1, 0xc0(%r8)
andl $0x0, 0x1d8(%r8)
xorps %xmm0, %xmm0
movups %xmm0, 0xc8(%r8)
leaq 0xb8(%r8), %rax
movq %rax, 0x10(%rsp)
movq %r8, (%rsp)
movslq 0x1d8(%r8), %rcx
testq %rcx, %rcx
js 0x8bd3
movq %rcx, %rax
shlq $0x5, %rax
movq 0x10(%rsp), %rdx
leaq (%rdx,%rax), %rbx
movl (%rdx,%rax), %eax
testl %eax, %eax
js 0x8750
decl %eax
cmpl $0x5, %eax
ja 0x8c54
leaq 0x2b6b(%rip), %rdx      # 0xb298
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
movq %rbx, %r14
movq 0x90(%r8), %r15
movq 0xa0(%r8), %r13
movq 0xa8(%r8), %rbx
jmp 0x87b0
movq %rbx, %r14
movq 0xa0(%r8), %rax
movq 0xa8(%r8), %rbx
cmpq %rax, %rbx
je 0x8bd3
movq 0x90(%r8), %r15
leaq 0x1(%rax), %r13
movq %r13, 0xa0(%r8)
testq %r15, %r15
je 0x8bd3
movzbl (%r15,%rax), %eax
leal -0x24(%rax), %edx
cmpl $0x9, %edx
ja 0x881a
leaq 0x2b13(%rip), %rdi      # 0xb2b0
movslq (%rdi,%rdx,4), %rsi
addq %rdi, %rsi
pushq $0x6
popq %rdx
jmpq *%rsi
movl $0x1, (%r14)
addq %r13, %r15
movq %rbx, %rsi
subq %r13, %rsi
movq %r15, %rdi
callq 0x8f9c
testq %rax, %rax
movq (%rsp), %r8
je 0x8bd3
movq %rax, %rbp
movq %rax, %r12
subq %r15, %r12
movq %r15, %rdi
callq 0x8de2
testq %rax, %rax
js 0x8860
leaq (%r12,%rax), %rcx
addq %r13, %rcx
addq $0x4, %rcx
cmpq %rbx, %rcx
movq (%rsp), %r8
ja 0x8bd3
addq %rax, %r12
addq $0x4, %r12
addq $0x2, %rbp
movq %r8, %rdi
movq %r14, %rsi
movq %rbp, %rdx
movq %rax, %rcx
callq 0x8e2a
jmp 0x8870
cmpl $0x3a, %eax
jne 0x8826
pushq $0x3
jmp 0x89d8
movsbl %al, %ebp
movzbl %bpl, %ecx
leal -0x7(%rcx), %edx
cmpl $0x6, %edx
ja 0x8ad0
leaq 0x2a98(%rip), %rsi      # 0xb2d8
movslq (%rsi,%rdx,4), %rcx
addq %rsi, %rcx
leaq 0x8(%rsp), %r15
jmpq *%rcx
movb $0x0, 0xc(%rsp)
movl $0x22615c22, 0x8(%rsp)  # imm = 0x22615C22
jmp 0x8b98
addq $0x2, %r12
movq (%rsp), %rdi
movq %r14, %rsi
callq 0x9037
testq %rax, %rax
je 0x8b6c
movq (%rsp), %rdi
addq %r12, 0xa0(%rdi)
cmpl $0x0, 0x1d8(%rdi)
jne 0x8894
movq %rax, 0x1e0(%rdi)
callq 0x8f07
movq (%rsp), %r8
xorl %ecx, %ecx
jmp 0x8a90
movq %r14, %rbx
movl $0x2, (%r14)
cmpl 0x1dc(%r8), %ecx
jne 0x88eb
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
pushq $0x40
popq %rsi
leaq 0x2d57(%rip), %rdx      # 0xb620
xorl %eax, %eax
callq 0x50f0
movq (%rsp), %rdi
pushq $0x2
popq %rsi
movq %rbx, %rdx
callq 0x8cee
movq (%rsp), %r8
movl (%r8), %ecx
jmp 0x8a90
movq %r8, %rdi
xorl %esi, %esi
callq 0x8d7e
movq (%rsp), %r8
pushq $0x1
popq %rcx
testq %rax, %rax
je 0x8a90
movq %rax, %rdi
callq 0x8de2
movq (%rsp), %rdi
movl 0x1d8(%rdi), %r14d
cmpq $-0x1, %rax
je 0x8a9d
movq %rax, %rbp
pushq $0x2
popq %rsi
callq 0x9007
testq %rax, %rax
je 0x8b6c
movq %rax, %r15
testl %ebp, %ebp
movq (%rsp), %rdi
jle 0x896a
movq 0x88(%rdi), %rdi
movl %ebp, %esi
andl $0x7fffffff, %esi       # imm = 0x7FFFFFFF
shlq $0x3, %rsi
callq 0x52a0
movq (%rsp), %rdi
movq %rax, 0x10(%r15)
testq %rax, %rax
je 0x8b64
movslq %ebp, %rax
movq %rax, 0x18(%r15)
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x8993
movq 0x10(%rax), %rax
cmpl $0x2, (%rax)
jne 0x8c92
movq 0x10(%rax), %rax
movslq 0x8(%rbx), %rcx
movq %r15, (%rax,%rcx,8)
testq %rbp, %rbp
jle 0x8ab7
movl %ebp, 0x4(%rbx)
movq %r15, 0x10(%rbx)
movslq 0x1d8(%rdi), %rax
incq %rax
movl %eax, 0x1d8(%rdi)
shlq $0x5, %rax
movq 0x10(%rsp), %rcx
orq $-0x1, (%rcx,%rax)
andl $0x0, 0x8(%rcx,%rax)
andq $0x0, 0x10(%rcx,%rax)
movq %rbx, 0x18(%rcx,%rax)
jmp 0x8abc
pushq $0x5
popq %rdx
movq %r14, %rbx
movl %edx, (%r14)
movq %r8, %rdi
leaq 0x20(%rsp), %rsi
callq 0x8d7e
pushq $0x1
popq %rcx
testq %rax, %rax
je 0x8a8c
cmpl $0x3, (%rbx)
jne 0x8a48
movq %rax, %rdi
callq 0x8de2
movq %rax, %r15
movq (%rsp), %r14
movq %r14, %rdi
pushq $0x3
popq %rsi
callq 0x9007
testq %rax, %rax
je 0x8a81
movq %r15, 0x10(%rax)
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
je 0x8a42
movq 0x10(%rcx), %rcx
cmpl $0x2, (%rcx)
jne 0x8c73
movq 0x10(%rcx), %rcx
movslq 0x8(%rbx), %rdx
movq %rax, (%rcx,%rdx,8)
movq (%rsp), %r14
jmp 0x8a64
movslq 0x20(%rsp), %rcx
movq (%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x8e2a
testq %rax, %rax
je 0x8a81
cmpl $0x0, 0x1d8(%r14)
jne 0x8a75
movq %rax, 0x1e0(%r14)
movq %r14, %rdi
callq 0x8f07
xorl %ecx, %ecx
jmp 0x8a8c
movq %r14, %rdi
callq 0x8665
movl (%r14), %ecx
movq (%rsp), %r8
testl %ecx, %ecx
je 0x86f4
jmp 0x8bd3
movq %rbx, %rsi
movq %rdi, %rbx
callq 0x9037
testq %rax, %rax
je 0x8b52
movq %rax, %r15
movq %rbx, %rdi
callq 0x8f07
xorl %ecx, %ecx
testl %r14d, %r14d
jne 0x8a8c
movq (%rsp), %r8
movq %r15, 0x1e0(%r8)
jmp 0x8a90
cmpl $0x5c, %ecx
leaq 0x8(%rsp), %r15
je 0x8adf
cmpl $0x22, %ecx
jne 0x8af1
movq %r15, %rdi
pushq $0x8
popq %rsi
leaq 0x2898(%rip), %rdx      # 0xb384
jmp 0x8b8f
movsbq %al, %rbx
callq 0x5420
movq (%rax), %rax
testb $0x40, 0x1(%rax,%rbx,2)
jne 0x8b82
movzbl %bl, %ecx
movq %r15, %rdi
pushq $0x8
popq %rsi
leaq 0x2894(%rip), %rdx      # 0xb3a8
jmp 0x8b91
movb $0x0, 0xc(%rsp)
movl $0x22625c22, 0x8(%rsp)  # imm = 0x22625C22
jmp 0x8b98
movb $0x0, 0xc(%rsp)
movl $0x22745c22, 0x8(%rsp)  # imm = 0x22745C22
jmp 0x8b98
movb $0x0, 0xc(%rsp)
movl $0x226e5c22, 0x8(%rsp)  # imm = 0x226E5C22
jmp 0x8b98
movb $0x0, 0xc(%rsp)
movl $0x22725c22, 0x8(%rsp)  # imm = 0x22725C22
jmp 0x8b98
movq %rbx, %rdi
callq 0x8665
movl (%rbx), %ecx
movq %rbx, %r8
jmp 0x8a90
movq %r15, %rdi
callq 0x5260
movq (%rsp), %rbx
movq %rbx, %rdi
callq 0x8665
movq %rbx, %r8
movl (%rbx), %ecx
jmp 0x8a90
movq %r15, %rdi
pushq $0x8
popq %rsi
leaq 0x2814(%rip), %rdx      # 0xb3a3
movl %ebp, %ecx
xorl %eax, %eax
callq 0x50f0
movl $0x80, %esi
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
leaq 0x27ab(%rip), %rdx      # 0xb357
movq %r15, %rcx
xorl %eax, %eax
callq 0x50f0
movq (%rsp), %r14
movq %r14, %rdi
pushq $0x2
popq %rsi
movq %rbx, %rdx
callq 0x8cee
movq %r14, %r8
movl (%r14), %ecx
jmp 0x8a90
movl (%r8), %eax
testl %eax, %eax
movq 0x18(%rsp), %rbx
jne 0x868f
movq 0xa0(%r8), %rax
cmpq $0x400, %rax            # imm = 0x400
jb 0x8c26
movq 0x90(%r8), %rdi
movq 0xa8(%r8), %rdx
leaq (%rdi,%rax), %rsi
subq %rax, %rdx
callq 0x52e0
movq (%rsp), %r8
movq 0xa0(%r8), %rax
subq %rax, 0xa8(%r8)
andq $0x0, 0xa0(%r8)
xorl %eax, %eax
cmpl $-0x1, 0x1d8(%r8)
jne 0x868f
movq 0x1e0(%r8), %rcx
movq %rcx, (%rbx)
andq $0x0, 0x1e0(%r8)
jmp 0x868f
xorl %eax, %eax
jmp 0x868f
leaq 0x2227(%rip), %rdi      # 0xae82
leaq 0x26ac(%rip), %rsi      # 0xb30e
leaq 0x26b1(%rip), %rcx      # 0xb31a
movl $0x251, %edx            # imm = 0x251
callq 0x5100
leaq 0x2737(%rip), %rdi      # 0xb3b1
leaq 0x268d(%rip), %rsi      # 0xb30e
leaq 0x274e(%rip), %rcx      # 0xb3d6
movl $0xcb, %edx
callq 0x5100
leaq 0x2718(%rip), %rdi      # 0xb3b1
leaq 0x266e(%rip), %rsi      # 0xb30e
leaq 0x29b6(%rip), %rcx      # 0xb65d
movl $0xbc, %edx
callq 0x5100