// File: Sherhang[P]redis-for-cpp/credis.cpp
// Function: Redis::lrange(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 Redis::lrange(const std::string& key, int64_t start, int64_t end, std::vector<std::string>& value)
{
    if(_context == NULL)
    {
        return false;
    }
    std::string cmd = "LRANGE " + key + " " + num2str<int64_t>(start) + " " + num2str<int64_t>(end) ;
    redisReply* _reply = (redisReply*)::redisCommand(_context, cmd.c_str());
    if (!isError(_reply)) 
    {
        if (_reply->type == REDIS_REPLY_ERROR) 
        {
            freeReply(_reply);
            return false;
        }
        if (_reply->type == REDIS_REPLY_ARRAY) 
        {
            value.reserve(_reply->elements);
            for (size_t i = 0; i < _reply->elements; ++i) 
            {
		value.push_back(_reply->element[i]->str);
            }
            freeReply(_reply);
            return true;
        }
    }
    freeReply(_reply);
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x168(%rbp)
cmpq $0x0, 0x8(%rax)
jne 0xb0ba
movb $0x0, -0x1(%rbp)
jmp 0xb4ae
movq -0x18(%rbp), %rdx
leaq 0xd10e(%rip), %rsi      # 0x181d3
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0xb510
movq -0x170(%rbp), %rsi
leaq 0xdaec(%rip), %rdx      # 0x18bd2
leaq -0xb0(%rbp), %rdi
callq 0xb6f0
jmp 0xb0f4
movq -0x168(%rbp), %rsi
leaq -0x100(%rbp), %rdi
leaq -0x20(%rbp), %rdx
callq 0xb740
jmp 0xb10d
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0x100(%rbp), %rdx
callq 0xb620
jmp 0xb129
leaq 0xdaa2(%rip), %rdx      # 0x18bd2
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xb6f0
jmp 0xb142
movq -0x168(%rbp), %rsi
leaq -0x120(%rbp), %rdi
leaq -0x28(%rbp), %rdx
callq 0xb740
jmp 0xb15b
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x120(%rbp), %rdx
callq 0xb620
jmp 0xb171
leaq -0x120(%rbp), %rdi
callq 0x3290
leaq -0x70(%rbp), %rdi
callq 0x3290
leaq -0x90(%rbp), %rdi
callq 0x3290
leaq -0x100(%rbp), %rdi
callq 0x3290
leaq -0xb0(%rbp), %rdi
callq 0x3290
leaq -0xd0(%rbp), %rdi
callq 0x3290
movq -0x168(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x180(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3190
movq -0x180(%rbp), %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x11a60
movq %rax, -0x178(%rbp)
jmp 0xb1eb
movq -0x168(%rbp), %rdi
movq -0x178(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x128(%rbp), %rsi
callq 0x59f0
testb $0x1, %al
jne 0xb475
movq -0x128(%rbp), %rax
cmpl $0x6, (%rax)
jne 0xb326
movq -0x168(%rbp), %rdi
movq -0x128(%rbp), %rsi
callq 0x59c0
jmp 0xb239
movb $0x0, -0x1(%rbp)
movl $0x1, -0x12c(%rbp)
jmp 0xb498
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb2fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb2f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb2e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb2da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb2d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x3290
leaq -0x70(%rbp), %rdi
callq 0x3290
leaq -0x90(%rbp), %rdi
callq 0x3290
leaq -0x100(%rbp), %rdi
callq 0x3290
leaq -0xb0(%rbp), %rdi
callq 0x3290
leaq -0xd0(%rbp), %rdi
callq 0x3290
jmp 0xb4bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb4a3
movq -0x128(%rbp), %rax
cmpl $0x2, (%rax)
jne 0xb473
movq -0x30(%rbp), %rdi
movq -0x128(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0xb8b0
jmp 0xb34c
movq $0x0, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq -0x128(%rbp), %rcx
cmpq 0x20(%rcx), %rax
jae 0xb44e
movq -0x30(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0x128(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x138(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rax
movq %rax, -0x190(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x3670
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
leaq -0x158(%rbp), %rdi
callq 0x3510
jmp 0xb3ca
movq -0x198(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0xbff0
jmp 0xb3df
leaq -0x158(%rbp), %rdi
callq 0x3290
leaq -0x159(%rbp), %rdi
callq 0x3410
movq -0x138(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x138(%rbp)
jmp 0xb357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xb440
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x3290
leaq -0x159(%rbp), %rdi
callq 0x3410
jmp 0xb4a3
movq -0x168(%rbp), %rdi
movq -0x128(%rbp), %rsi
callq 0x59c0
jmp 0xb463
movb $0x1, -0x1(%rbp)
movl $0x1, -0x12c(%rbp)
jmp 0xb498
jmp 0xb475
movq -0x168(%rbp), %rdi
movq -0x128(%rbp), %rsi
callq 0x59c0
jmp 0xb48a
movb $0x0, -0x1(%rbp)
movl $0x1, -0x12c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3290
jmp 0xb4ae
leaq -0x50(%rbp), %rdi
callq 0x3290
jmp 0xb4bc
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0xd8(%rbp), %rdi
callq 0x3660
nopl (%rax,%rax)