// File: Sherhang[P]redis-for-cpp/credis.cpp
// Function: Redis::zrange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, long, long, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, bool)
bool Redis::zrange(const std::string& key, int64_t start, int64_t stop, std::vector<std::string>& values, bool with_scores)
{
    std::string cmd = "ZRANGE " + key + " " + num2str<int64_t>(start) + " "
        + num2str<int64_t>(stop) + (with_scores ? " WITHSCORES" : "");
    values.clear();
    if (execReplyArray(cmd, values))
    {
        return true;
    }
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movb %r9b, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
andb $0x1, %al
movb %al, -0x31(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x18(%rbp), %rdx
leaq 0xf73e(%rip), %rsi      # 0x1815b
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x158(%rbp)
callq 0xb510
movq -0x158(%rbp), %rsi
leaq 0x10194(%rip), %rdx     # 0x18bd2
leaq -0xd8(%rbp), %rdi
callq 0xb6f0
jmp 0x8a4c
movq -0x160(%rbp), %rsi
leaq -0x128(%rbp), %rdi
leaq -0x20(%rbp), %rdx
callq 0xb740
jmp 0x8a65
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0xb620
jmp 0x8a81
leaq 0x1014a(%rip), %rdx     # 0x18bd2
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xb6f0
jmp 0x8a9d
movq -0x160(%rbp), %rsi
leaq -0x148(%rbp), %rdi
leaq -0x28(%rbp), %rdx
callq 0xb740
jmp 0x8ab6
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
leaq -0x148(%rbp), %rdx
callq 0xb620
jmp 0x8acf
movb -0x31(%rbp), %cl
leaq 0xf68a(%rip), %rax      # 0x18163
leaq 0xf79a(%rip), %rdx      # 0x1827a
testb $0x1, %cl
cmovneq %rax, %rdx
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0xb6f0
jmp 0x8af6
leaq -0x78(%rbp), %rdi
callq 0x3290
leaq -0x148(%rbp), %rdi
callq 0x3290
leaq -0x98(%rbp), %rdi
callq 0x3290
leaq -0xb8(%rbp), %rdi
callq 0x3290
leaq -0x128(%rbp), %rdi
callq 0x3290
leaq -0xd8(%rbp), %rdi
callq 0x3290
leaq -0xf8(%rbp), %rdi
callq 0x3290
movq -0x30(%rbp), %rdi
callq 0xb890
movq -0x160(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq -0x58(%rbp), %rsi
callq 0x6140
movb %al, -0x161(%rbp)
jmp 0x8b6c
movb -0x161(%rbp), %al
testb $0x1, %al
jne 0x8b7b
jmp 0x8c8e
movb $0x1, -0x1(%rbp)
movl $0x1, -0x14c(%rbp)
jmp 0x8c9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
jmp 0x8c27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x3290
leaq -0x148(%rbp), %rdi
callq 0x3290
leaq -0x98(%rbp), %rdi
callq 0x3290
leaq -0xb8(%rbp), %rdi
callq 0x3290
leaq -0x128(%rbp), %rdi
callq 0x3290
leaq -0xd8(%rbp), %rdi
callq 0x3290
leaq -0xf8(%rbp), %rdi
callq 0x3290
jmp 0x8cb3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x100(%rbp)
movl %eax, -0x104(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x3290
jmp 0x8cb3
movb $0x0, -0x1(%rbp)
movl $0x1, -0x14c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x3290
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq -0x100(%rbp), %rdi
callq 0x3660
nop