// File: /workspace/github_c_makefile_star2_O2/erikdubbelboer[P]discnt/src/server.c
// Function: addReplyCommand
void addReplyCommand(client *c, struct serverCommand *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_RANDOM, "random");
        flagcount += addReplyCommandFlag(c,cmd,CMD_LOADING, "loading");
        flagcount += addReplyCommandFlag(c,cmd,CMD_SKIP_MONITOR, "skip_monitor");
        flagcount += addReplyCommandFlag(c,cmd,CMD_FAST, "fast");
        setDeferredMultiBulkLength(c, flaglen, flagcount);

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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
testq %rsi, %rsi
je 0x180ac
movq %rsi, %r14
pushq $0x6
popq %rsi
movq %rbx, %rdi
callq 0x1d03d
movq (%r14), %rsi
movq %rbx, %rdi
callq 0x1ce65
movslq 0x10(%r14), %rsi
movq %rbx, %rdi
callq 0x1d00a
movq %rbx, %rdi
callq 0x1cd0d
movq %rax, %r15
leaq 0x3a2cc(%rip), %rcx     # 0x52258
pushq $0x1
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17f25
movl %eax, %r12d
leaq 0x35271(%rip), %rcx     # 0x4d215
pushq $0x2
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17f25
addl %eax, %r12d
leaq 0x35262(%rip), %rcx     # 0x4d21e
pushq $0x4
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17f25
movl %eax, %ebp
leaq 0x35253(%rip), %rcx     # 0x4d226
pushq $0x10
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17f25
addl %eax, %ebp
addl %r12d, %ebp
leaq 0x3523f(%rip), %rcx     # 0x4d22c
pushq $0x20
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17f25
movl %eax, %r12d
leaq 0x36b3d(%rip), %rcx     # 0x4eb42
movq %rbx, %rdi
movq %r14, %rsi
movl $0x80, %edx
callq 0x17f25
addl %eax, %r12d
leaq 0x35214(%rip), %rcx     # 0x4d233
movq %rbx, %rdi
movq %r14, %rsi
movl $0x200, %edx            # imm = 0x200
callq 0x17f25
addl %eax, %r12d
addl %ebp, %r12d
leaq 0x351ff(%rip), %rcx     # 0x4d23b
movq %rbx, %rdi
movq %r14, %rsi
movl $0x800, %edx            # imm = 0x800
callq 0x17f25
movl %eax, %r13d
leaq 0x351f2(%rip), %rcx     # 0x4d248
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2000, %edx           # imm = 0x2000
callq 0x17f25
addl %eax, %r13d
addl %r12d, %r13d
movq %rbx, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0x1cd33
movslq 0x24(%r14), %rsi
movq %rbx, %rdi
callq 0x1d00a
movslq 0x28(%r14), %rsi
movq %rbx, %rdi
callq 0x1d00a
movslq 0x2c(%r14), %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1d00a
movq 0x52735(%rip), %rsi     # 0x6a7e8
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1c8e7