// File: Sherhang[P]redis-for-cpp/credis.cpp
// Function: Redis::hmset(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, 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>>>> const&, 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>>>> const&)
bool Redis::hmset(const std::string& key, const std::vector<std::string> & fields, const std::vector<std::string> & values)
{
    if(_context == NULL || fields.size() != values.size()) 
    {
        return false;
    }
    if(fields.empty())
    {
        return true;
    }
    std::string cmd = "HMSET " + key;
    for(uint32_t i = 0; i < fields.size(); ++i)
    {
        cmd = cmd + " " + fields[i]+ " " + values[i];
    }
    return exec(cmd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xe8(%rbp)
cmpq $0x0, 0x8(%rax)
je 0xa1f5
movq -0x20(%rbp), %rdi
callq 0x4540
movq %rax, -0xf0(%rbp)
movq -0x28(%rbp), %rdi
callq 0x4540
movq %rax, %rcx
movq -0xf0(%rbp), %rax
cmpq %rcx, %rax
je 0xa1fe
movb $0x0, -0x1(%rbp)
jmp 0xa3cd
movq -0x20(%rbp), %rdi
callq 0xb4d0
testb $0x1, %al
jne 0xa20d
jmp 0xa216
movb $0x1, -0x1(%rbp)
jmp 0xa3cd
movq -0x18(%rbp), %rdx
leaq -0x48(%rbp), %rdi
leaq 0xdf8e(%rip), %rsi      # 0x181b3
callq 0xb510
movl $0x0, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movq %rax, -0xf8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x4540
movq %rax, %rcx
movq -0xf8(%rbp), %rax
cmpq %rcx, %rax
jae 0xa394
leaq 0xe974(%rip), %rdx      # 0x18bd2
leaq -0xd0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xbf70
jmp 0xa270
movq -0x20(%rbp), %rdi
movl -0x4c(%rbp), %eax
movl %eax, %esi
callq 0xbac0
movq %rax, %rdx
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x46d0
jmp 0xa296
leaq 0xe935(%rip), %rdx      # 0x18bd2
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0xb6f0
jmp 0xa2b2
movq -0x28(%rbp), %rdi
movl -0x4c(%rbp), %eax
movl %eax, %esi
callq 0xbac0
movq %rax, %rdx
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x46d0
jmp 0xa2d5
leaq -0x48(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x34a0
leaq -0x70(%rbp), %rdi
callq 0x3290
leaq -0x90(%rbp), %rdi
callq 0x3290
leaq -0xb0(%rbp), %rdi
callq 0x3290
leaq -0xd0(%rbp), %rdi
callq 0x3290
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xa231
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xa3c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xa386
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
jmp 0xa37a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xd8(%rbp)
movl %eax, -0xdc(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x3290
leaq -0xb0(%rbp), %rdi
callq 0x3290
leaq -0xd0(%rbp), %rdi
callq 0x3290
jmp 0xa3c2
movq -0xe8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xa3f0
movb %al, -0xf9(%rbp)
jmp 0xa3ac
movb -0xf9(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x3290
jmp 0xa3cd
leaq -0x48(%rbp), %rdi
callq 0x3290
jmp 0xa3db
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0xd8(%rbp), %rdi
callq 0x3660
nopw (%rax,%rax)