// File: /workspace/github_c_makefile_star2_O0/gplessis[P]dotdeb-redis/src/server.c
// Function: addReplyCommand
void addReplyCommand(client *c, struct redisCommand *cmd) {
    if (!cmd) {
        addReply(c, shared.nullbulk);
    } else {
        /* We are adding: command name, arg count, flags, first, last, offset */
        addReplyMultiBulkLen(c, 6);
        addReplyBulkCString(c, cmd->name);
        addReplyLongLong(c, cmd->arity);

        int flagcount = 0;
        void *flaglen = addDeferredMultiBulkLength(c);
        flagcount += addReplyCommandFlag(c,cmd,CMD_WRITE, "write");
        flagcount += addReplyCommandFlag(c,cmd,CMD_READONLY, "readonly");
        flagcount += addReplyCommandFlag(c,cmd,CMD_DENYOOM, "denyoom");
        flagcount += addReplyCommandFlag(c,cmd,CMD_ADMIN, "admin");
        flagcount += addReplyCommandFlag(c,cmd,CMD_PUBSUB, "pubsub");
        flagcount += addReplyCommandFlag(c,cmd,CMD_NOSCRIPT, "noscript");
        flagcount += addReplyCommandFlag(c,cmd,CMD_RANDOM, "random");
        flagcount += addReplyCommandFlag(c,cmd,CMD_SORT_FOR_SCRIPT,"sort_for_script");
        flagcount += addReplyCommandFlag(c,cmd,CMD_LOADING, "loading");
        flagcount += addReplyCommandFlag(c,cmd,CMD_STALE, "stale");
        flagcount += addReplyCommandFlag(c,cmd,CMD_SKIP_MONITOR, "skip_monitor");
        flagcount += addReplyCommandFlag(c,cmd,CMD_ASKING, "asking");
        flagcount += addReplyCommandFlag(c,cmd,CMD_FAST, "fast");
        if (cmd->getkeys_proc) {
            addReplyStatus(c, "movablekeys");
            flagcount += 1;
        }
        setDeferredMultiBulkLength(c, flaglen, flagcount);

        addReplyLongLong(c, cmd->firstkey);
        addReplyLongLong(c, cmd->lastkey);
        addReplyLongLong(c, cmd->keystep);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x3539c
movq -0x8(%rbp), %rdi
movq 0x1438fe(%rip), %rsi    # 0x178c90
callq 0x42cc0
jmp 0x355da
movq -0x8(%rbp), %rdi
movl $0x6, %esi
callq 0x437f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x43580
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq 0x10(%rax), %rsi
callq 0x43780
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rdi
callq 0x432a0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
leaq 0x10abfe(%rip), %rcx    # 0x13fff1
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2, %edx
leaq 0x10247d(%rip), %rcx    # 0x13788f
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x4, %edx
leaq 0x10341e(%rip), %rcx    # 0x13884f
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x10, %edx
leaq 0x103407(%rip), %rcx    # 0x138857
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x20, %edx
leaq 0x1023e1(%rip), %rcx    # 0x137850
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x40, %edx
leaq 0x1033cf(%rip), %rcx    # 0x13885d
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x80, %edx
leaq 0x108d3d(%rip), %rcx    # 0x13e1ea
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x100, %edx            # imm = 0x100
leaq 0x10339a(%rip), %rcx    # 0x138866
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x200, %edx            # imm = 0x200
leaq 0x109cff(%rip), %rcx    # 0x13f1ea
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
leaq 0x10336c(%rip), %rcx    # 0x138876
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x800, %edx            # imm = 0x800
leaq 0x103353(%rip), %rcx    # 0x13887c
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1000, %edx           # imm = 0x1000
leaq 0x102334(%rip), %rcx    # 0x13787c
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x2000, %edx           # imm = 0x2000
leaq 0x103322(%rip), %rcx    # 0x138889
callq 0x35320
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x35596
movq -0x8(%rbp), %rdi
leaq 0x103306(%rip), %rsi    # 0x13888e
callq 0x43180
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movslq -0x14(%rbp), %rdx
callq 0x43310
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq 0x30(%rax), %rsi
callq 0x43780
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq 0x34(%rax), %rsi
callq 0x43780
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq 0x38(%rax), %rsi
callq 0x43780
addq $0x20, %rsp
popq %rbp
retq