// File: /workspace/github_c_makefile_star2_O2/gplessis[P]dotdeb-redis/src/server.c
// Function: createSharedObjects
void createSharedObjects(void) {
    int j;

    shared.crlf = createObject(OBJ_STRING,sdsnew("\r\n"));
    shared.ok = createObject(OBJ_STRING,sdsnew("+OK\r\n"));
    shared.err = createObject(OBJ_STRING,sdsnew("-ERR\r\n"));
    shared.emptybulk = createObject(OBJ_STRING,sdsnew("$0\r\n\r\n"));
    shared.czero = createObject(OBJ_STRING,sdsnew(":0\r\n"));
    shared.cone = createObject(OBJ_STRING,sdsnew(":1\r\n"));
    shared.cnegone = createObject(OBJ_STRING,sdsnew(":-1\r\n"));
    shared.nullbulk = createObject(OBJ_STRING,sdsnew("$-1\r\n"));
    shared.nullmultibulk = createObject(OBJ_STRING,sdsnew("*-1\r\n"));
    shared.emptymultibulk = createObject(OBJ_STRING,sdsnew("*0\r\n"));
    shared.pong = createObject(OBJ_STRING,sdsnew("+PONG\r\n"));
    shared.queued = createObject(OBJ_STRING,sdsnew("+QUEUED\r\n"));
    shared.emptyscan = createObject(OBJ_STRING,sdsnew("*2\r\n$1\r\n0\r\n*0\r\n"));
    shared.wrongtypeerr = createObject(OBJ_STRING,sdsnew(
        "-WRONGTYPE Operation against a key holding the wrong kind of value\r\n"));
    shared.nokeyerr = createObject(OBJ_STRING,sdsnew(
        "-ERR no such key\r\n"));
    shared.syntaxerr = createObject(OBJ_STRING,sdsnew(
        "-ERR syntax error\r\n"));
    shared.sameobjecterr = createObject(OBJ_STRING,sdsnew(
        "-ERR source and destination objects are the same\r\n"));
    shared.outofrangeerr = createObject(OBJ_STRING,sdsnew(
        "-ERR index out of range\r\n"));
    shared.noscripterr = createObject(OBJ_STRING,sdsnew(
        "-NOSCRIPT No matching script. Please use EVAL.\r\n"));
    shared.loadingerr = createObject(OBJ_STRING,sdsnew(
        "-LOADING Redis is loading the dataset in memory\r\n"));
    shared.slowscripterr = createObject(OBJ_STRING,sdsnew(
        "-BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n"));
    shared.masterdownerr = createObject(OBJ_STRING,sdsnew(
        "-MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'.\r\n"));
    shared.bgsaveerr = createObject(OBJ_STRING,sdsnew(
        "-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.\r\n"));
    shared.roslaveerr = createObject(OBJ_STRING,sdsnew(
        "-READONLY You can't write against a read only slave.\r\n"));
    shared.noautherr = createObject(OBJ_STRING,sdsnew(
        "-NOAUTH Authentication required.\r\n"));
    shared.oomerr = createObject(OBJ_STRING,sdsnew(
        "-OOM command not allowed when used memory > 'maxmemory'.\r\n"));
    shared.execaborterr = createObject(OBJ_STRING,sdsnew(
        "-EXECABORT Transaction discarded because of previous errors.\r\n"));
    shared.noreplicaserr = createObject(OBJ_STRING,sdsnew(
        "-NOREPLICAS Not enough good slaves to write.\r\n"));
    shared.busykeyerr = createObject(OBJ_STRING,sdsnew(
        "-BUSYKEY Target key name already exists.\r\n"));
    shared.space = createObject(OBJ_STRING,sdsnew(" "));
    shared.colon = createObject(OBJ_STRING,sdsnew(":"));
    shared.plus = createObject(OBJ_STRING,sdsnew("+"));

    for (j = 0; j < PROTO_SHARED_SELECT_CMDS; j++) {
        char dictid_str[64];
        int dictid_len;

        dictid_len = ll2string(dictid_str,sizeof(dictid_str),j);
        shared.select[j] = createObject(OBJ_STRING,
            sdscatprintf(sdsempty(),
                "*2\r\n$6\r\nSELECT\r\n$%d\r\n%s\r\n",
                dictid_len, dictid_str));
    }
    shared.messagebulk = createStringObject("$7\r\nmessage\r\n",13);
    shared.pmessagebulk = createStringObject("$8\r\npmessage\r\n",14);
    shared.subscribebulk = createStringObject("$9\r\nsubscribe\r\n",15);
    shared.unsubscribebulk = createStringObject("$11\r\nunsubscribe\r\n",18);
    shared.psubscribebulk = createStringObject("$10\r\npsubscribe\r\n",17);
    shared.punsubscribebulk = createStringObject("$12\r\npunsubscribe\r\n",19);
    shared.del = createStringObject("DEL",3);
    shared.rpop = createStringObject("RPOP",4);
    shared.lpop = createStringObject("LPOP",4);
    shared.lpush = createStringObject("LPUSH",5);
    for (j = 0; j < OBJ_SHARED_INTEGERS; j++) {
        shared.integers[j] = createObject(OBJ_STRING,(void*)(long)j);
        shared.integers[j]->encoding = OBJ_ENCODING_INT;
    }
    for (j = 0; j < OBJ_SHARED_BULKHDR_LEN; j++) {
        shared.mbulkhdr[j] = createObject(OBJ_STRING,
            sdscatprintf(sdsempty(),"*%d\r\n",j));
        shared.bulkhdr[j] = createObject(OBJ_STRING,
            sdscatprintf(sdsempty(),"$%d\r\n",j));
    }
    /* The following two shared objects, minstring and maxstrings, are not
     * actually used for their value but as a special object meaning
     * respectively the minimum possible string and the maximum possible
     * string in string comparisons for the ZRANGEBYLEX command. */
    shared.minstring = createStringObject("minstring",9);
    shared.maxstring = createStringObject("maxstring",9);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
leaq 0x888e4(%rip), %rdi     # 0xb5190
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcda4e(%rip)     # 0xfa310
leaq 0x82224(%rip), %rdi     # 0xaeaed
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcda39(%rip)     # 0xfa318
leaq 0x8220d(%rip), %rdi     # 0xaeaf3
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcda24(%rip)     # 0xfa320
leaq 0x821f7(%rip), %rdi     # 0xaeafa
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcda0f(%rip)     # 0xfa328
leaq 0x821e1(%rip), %rdi     # 0xaeb01
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9fa(%rip)     # 0xfa330
leaq 0x821c9(%rip), %rdi     # 0xaeb06
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9e5(%rip)     # 0xfa338
leaq 0x821b1(%rip), %rdi     # 0xaeb0b
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9d0(%rip)     # 0xfa340
leaq 0x8219a(%rip), %rdi     # 0xaeb11
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9d3(%rip)     # 0xfa360
leaq 0x82183(%rip), %rdi     # 0xaeb17
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9be(%rip)     # 0xfa368
leaq 0x82189(%rip), %rdi     # 0xaeb3a
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd9b1(%rip)     # 0xfa378
leaq 0x8214f(%rip), %rdi     # 0xaeb1d
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd964(%rip)     # 0xfa348
leaq 0x8213a(%rip), %rdi     # 0xaeb25
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd96f(%rip)     # 0xfa370
leaq 0x82127(%rip), %rdi     # 0xaeb2f
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcda3a(%rip)     # 0xfa458
leaq 0x8211a(%rip), %rdi     # 0xaeb3f
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd945(%rip)     # 0xfa380
leaq 0x82142(%rip), %rdi     # 0xaeb84
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd930(%rip)     # 0xfa388
leaq 0x82138(%rip), %rdi     # 0xaeb97
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd91b(%rip)     # 0xfa390
leaq 0x8212f(%rip), %rdi     # 0xaebab
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd906(%rip)     # 0xfa398
leaq 0x82145(%rip), %rdi     # 0xaebde
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd8f1(%rip)     # 0xfa3a0
leaq 0x82142(%rip), %rdi     # 0xaebf8
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd8dc(%rip)     # 0xfa3a8
leaq 0x82156(%rip), %rdi     # 0xaec29
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd8c7(%rip)     # 0xfa3b0
leaq 0x8216b(%rip), %rdi     # 0xaec5b
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd8b2(%rip)     # 0xfa3b8
leaq 0x821a8(%rip), %rdi     # 0xaecb5
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd8a5(%rip)     # 0xfa3c8
leaq 0x821dd(%rip), %rdi     # 0xaed07
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd880(%rip)     # 0xfa3c0
leaq 0x8228d(%rip), %rdi     # 0xaedd4
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd873(%rip)     # 0xfa3d0
leaq 0x822a7(%rip), %rdi     # 0xaee0b
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd866(%rip)     # 0xfa3e0
leaq 0x822ad(%rip), %rdi     # 0xaee2e
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd861(%rip)     # 0xfa3f8
leaq 0x822cb(%rip), %rdi     # 0xaee69
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd824(%rip)     # 0xfa3d8
leaq 0x822ed(%rip), %rdi     # 0xaeea8
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd817(%rip)     # 0xfa3e8
leaq 0x822ff(%rip), %rdi     # 0xaeed7
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd802(%rip)     # 0xfa3f0
leaq 0x8945c(%rip), %rdi     # 0xb6051
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd745(%rip)     # 0xfa350
leaq 0x95826(%rip), %rdi     # 0xc2438
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd730(%rip)     # 0xfa358
leaq 0x822d3(%rip), %rdi     # 0xaef02
callq 0x3115a
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0xcd7bb(%rip)     # 0xfa400
movq %rsp, %rbx
pushq $0x40
popq %r14
leaq 0x822b1(%rip), %r15     # 0xaef04
leaq 0xcd6b6(%rip), %r13     # 0xfa310
xorl %r12d, %r12d
cmpq $0xa, %r12
je 0x2cca1
movq %rbx, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x39796
movl %eax, %ebp
callq 0x3114c
movq %rax, %rdi
movq %r15, %rsi
movl %ebp, %edx
movq %rbx, %rcx
xorl %eax, %eax
callq 0x31a38
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0x160(%r13,%r12,8)
incq %r12
jmp 0x2cc5d
leaq 0x82276(%rip), %rdi     # 0xaef1e
pushq $0xd
popq %rsi
callq 0x39e29
movq %rax, 0xcd751(%rip)     # 0xfa408
leaq 0x8226e(%rip), %rdi     # 0xaef2c
pushq $0xe
popq %rsi
callq 0x39e29
movq %rax, 0xcd743(%rip)     # 0xfa410
leaq 0x82267(%rip), %rdi     # 0xaef3b
pushq $0xf
popq %rsi
callq 0x39e29
movq %rax, 0xcd735(%rip)     # 0xfa418
leaq 0x82261(%rip), %rdi     # 0xaef4b
pushq $0x12
popq %rsi
callq 0x39e29
movq %rax, 0xcd727(%rip)     # 0xfa420
leaq 0x8225e(%rip), %rdi     # 0xaef5e
pushq $0x11
popq %rsi
callq 0x39e29
movq %rax, 0xcd719(%rip)     # 0xfa428
leaq 0x8225a(%rip), %rdi     # 0xaef70
pushq $0x13
popq %rsi
callq 0x39e29
movq %rax, 0xcd70b(%rip)     # 0xfa430
leaq 0x82258(%rip), %rdi     # 0xaef84
pushq $0x3
popq %rsi
callq 0x39e29
movq %rax, 0xcd6fd(%rip)     # 0xfa438
leaq 0x82246(%rip), %rdi     # 0xaef88
pushq $0x4
popq %rbx
movq %rbx, %rsi
callq 0x39e29
movq %rax, 0xcd6ec(%rip)     # 0xfa440
leaq 0x82232(%rip), %rdi     # 0xaef8d
movq %rbx, %rsi
callq 0x39e29
movq %rax, 0xcd6de(%rip)     # 0xfa448
leaq 0x82221(%rip), %rdi     # 0xaef92
pushq $0x5
popq %rsi
callq 0x39e29
movq %rax, 0xcd6d0(%rip)     # 0xfa450
xorl %ebx, %ebx
movl $0xffffff0f, %ebp       # imm = 0xFFFFFF0F
cmpq $0x2710, %rbx           # imm = 0x2710
je 0x2cdb0
xorl %edi, %edi
movq %rbx, %rsi
callq 0x39d58
movq %rax, 0x1b0(%r13,%rbx,8)
movl (%rax), %ecx
andl %ebp, %ecx
orl $0x10, %ecx
movl %ecx, (%rax)
incq %rbx
jmp 0x2cd87
leaq 0x821e1(%rip), %rbx     # 0xaef98
leaq 0x821e0(%rip), %r14     # 0xaef9e
xorl %r15d, %r15d
cmpq $0x20, %r15
je 0x2ce1a
callq 0x3114c
movq %rax, %rdi
movq %rbx, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x31a38
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0x13a30(%r13,%r15,8)
callq 0x3114c
movq %rax, %rdi
movq %r14, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x31a38
xorl %edi, %edi
movq %rax, %rsi
callq 0x39d58
movq %rax, 0x13b30(%r13,%r15,8)
incq %r15
jmp 0x2cdc1
leaq 0x82183(%rip), %rdi     # 0xaefa4
pushq $0x9
popq %rbx
movq %rbx, %rsi
callq 0x39e29
movq %rax, 0xcd62d(%rip)     # 0xfa460
leaq 0x82174(%rip), %rdi     # 0xaefae
movq %rbx, %rsi
callq 0x39e29
movq %rax, 0xcd61f(%rip)     # 0xfa468
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq