LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_pack
static int mp_pack(lua_State *L) {
    mp_buf *buf = mp_buf_new();

    mp_encode_lua_type(L,buf,0);
    lua_pushlstring(L,(char*)buf->b,buf->len);
    mp_buf_free(buf);
    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
callq 0xabda0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0xabdf0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x8c510
movq -0x10(%rbp), %rdi
callq 0xaae90
movl $0x1, %eax
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_unpack
static int mp_unpack(lua_State *L) {
    size_t len;
    const unsigned char *s;
    mp_cur *c;

    if (!lua_isstring(L,-1)) {
        lua_pushstring(L,"MessagePack decoding needs a string as input.");
        lua_error(L);
    }

    s = (const unsigned char*) lua_tolstring(L,-1,&len);
    c = mp_cur_new(s,len);
    mp_decode_to_lua_type(L,c);
    
    if (c->err == MP_CUR_ERROR_EOF) {
        mp_cur_free(c);
        lua_pushstring(L,"Missing bytes in input.");
        lua_error(L);
    } else if (c->err == MP_CUR_ERROR_BADFMT) {
        mp_cur_free(c);
        lua_pushstring(L,"Bad data format in input.");
        lua_error(L);
    } else if (c->left != 0) {
        mp_cur_free(c);
        lua_pushstring(L,"Extra bytes in input.");
        lua_error(L);
    }
    mp_cur_free(c);
    return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8bd60
cmpl $0x0, %eax
jne 0xabcc8
movq -0x8(%rbp), %rdi
leaq 0x411cb(%rip), %rsi     # 0xece85
callq 0x8c590
movq -0x8(%rbp), %rdi
callq 0x8d7f0
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq -0x10(%rbp), %rdx
callq 0x8c0e0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xac910
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xaaf50
movq -0x20(%rbp), %rax
cmpl $0x1, 0x10(%rax)
jne 0xabd2a
movq -0x20(%rbp), %rdi
callq 0xac960
movq -0x8(%rbp), %rdi
leaq 0x41199(%rip), %rsi     # 0xeceb3
callq 0x8c590
movq -0x8(%rbp), %rdi
callq 0x8d7f0
jmp 0xabd89
movq -0x20(%rbp), %rax
cmpl $0x2, 0x10(%rax)
jne 0xabd58
movq -0x20(%rbp), %rdi
callq 0xac960
movq -0x8(%rbp), %rdi
leaq 0x41183(%rip), %rsi     # 0xececb
callq 0x8c590
movq -0x8(%rbp), %rdi
callq 0x8d7f0
jmp 0xabd87
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xabd85
movq -0x20(%rbp), %rdi
callq 0xac960
movq -0x8(%rbp), %rdi
leaq 0x4116e(%rip), %rsi     # 0xecee5
callq 0x8c590
movq -0x8(%rbp), %rdi
callq 0x8d7f0
jmp 0xabd87
jmp 0xabd89
movq -0x20(%rbp), %rdi
callq 0xac960
movl $0x1, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_lua_type
static void mp_encode_lua_type(lua_State *L, mp_buf *buf, int level) {
    int t = lua_type(L,-1);

    /* Limit the encoding of nested tables to a specfiied maximum depth, so that
     * we survive when called against circular references in tables. */
    if (t == LUA_TTABLE && level == LUACMSGPACK_MAX_NESTING) t = LUA_TNIL;
    switch(t) {
    case LUA_TSTRING: mp_encode_lua_string(L,buf); break;
    case LUA_TBOOLEAN: mp_encode_lua_bool(L,buf); break;
    case LUA_TNUMBER: mp_encode_lua_number(L,buf); break;
    case LUA_TTABLE: mp_encode_lua_table(L,buf,level); break;
    default: mp_encode_lua_null(L,buf); break;
    }
    lua_pop(L,1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8bc20
movl %eax, -0x18(%rbp)
cmpl $0x5, -0x18(%rbp)
jne 0xabe27
cmpl $0x10, -0x14(%rbp)
jne 0xabe27
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x4, %eax
ja 0xabe8a
movq -0x20(%rbp), %rax
leaq 0x40fb6(%rip), %rcx     # 0xecdf8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xabeb0
jmp 0xabe97
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xabef0
jmp 0xabe97
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xabf40
jmp 0xabe97
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
callq 0xabfa0
jmp 0xabe97
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xabff0
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8b6f0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_lua_number
static void mp_encode_lua_number(lua_State *L, mp_buf *buf) {
    lua_Number n = lua_tonumber(L,-1);

    if (floor(n) != n) {
        mp_encode_double(buf,(double)n);
    } else {
        mp_encode_int(buf,(int64_t)n);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8bf90
movsd %xmm0, -0x18(%rbp)
movsd -0x18(%rbp), %xmm0
callq 0x1faf0
ucomisd -0x18(%rbp), %xmm0
jne 0xabf78
jp 0xabf78
jmp 0xabf88
movq -0x10(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
callq 0xac110
jmp 0xabf97
movq -0x10(%rbp), %rdi
cvttsd2si -0x18(%rbp), %rsi
callq 0xac1b0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_bytes
static void mp_encode_bytes(mp_buf *buf, const unsigned char *s, size_t len) {
    unsigned char hdr[5];
    int hdrlen;

    if (len < 32) {
        hdr[0] = 0xa0 | (len&0xff); /* fix raw */
        hdrlen = 1;
    } else if (len <= 0xffff) {
        hdr[0] = 0xda;
        hdr[1] = (len&0xff00)>>8;
        hdr[2] = len&0xff;
        hdrlen = 3;
    } else {
        hdr[0] = 0xdb;
        hdr[1] = (len&0xff000000)>>24;
        hdr[2] = (len&0xff0000)>>16;
        hdr[3] = (len&0xff00)>>8;
        hdr[4] = len&0xff;
        hdrlen = 5;
    }
    mp_buf_append(buf,hdr,hdrlen);
    mp_buf_append(buf,s,len);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x20, -0x18(%rbp)
jae 0xac05a
movq -0x18(%rbp), %rax
andq $0xff, %rax
orq $0xa0, %rax
movb %al, -0x1d(%rbp)
movl $0x1, -0x24(%rbp)
jmp 0xac0e0
cmpq $0xffff, -0x18(%rbp)    # imm = 0xFFFF
ja 0xac08f
movb $-0x26, -0x1d(%rbp)
movq -0x18(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
shrq $0x8, %rax
movb %al, -0x1c(%rbp)
movq -0x18(%rbp), %rax
andq $0xff, %rax
movb %al, -0x1b(%rbp)
movl $0x3, -0x24(%rbp)
jmp 0xac0de
movb $-0x25, -0x1d(%rbp)
movabsq $0xff000000, %rax       # imm = 0xFF000000
andq -0x18(%rbp), %rax
shrq $0x18, %rax
movb %al, -0x1c(%rbp)
movq -0x18(%rbp), %rax
andq $0xff0000, %rax         # imm = 0xFF0000
shrq $0x10, %rax
movb %al, -0x1b(%rbp)
movq -0x18(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
shrq $0x8, %rax
movb %al, -0x1a(%rbp)
movq -0x18(%rbp), %rax
andq $0xff, %rax
movb %al, -0x19(%rbp)
movl $0x5, -0x24(%rbp)
jmp 0xac0e0
movq -0x8(%rbp), %rdi
leaq -0x1d(%rbp), %rsi
movslq -0x24(%rbp), %rdx
callq 0xaadf0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xaadf0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_double
static void mp_encode_double(mp_buf *buf, double d) {
    unsigned char b[9];
    float f = d;

    assert(sizeof(f) == 4 && sizeof(d) == 8);
    if (d == (double)f) {
        b[0] = 0xca;    /* float IEEE 754 */
        memcpy(b+1,&f,4);
        memrevifle(b+1,4);
        mp_buf_append(buf,b,5);
    } else if (sizeof(d) == 8) {
        b[0] = 0xcb;    /* double IEEE 754 */
        memcpy(b+1,&d,8);
        memrevifle(b+1,8);
        mp_buf_append(buf,b,9);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x20(%rbp)
movsd -0x10(%rbp), %xmm0
movss -0x20(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0xac175
jp 0xac175
movb $-0x36, -0x19(%rbp)
movl -0x20(%rbp), %eax
movl %eax, -0x18(%rbp)
leaq -0x19(%rbp), %rdi
addq $0x1, %rdi
movl $0x4, %esi
callq 0xabaf0
movq -0x8(%rbp), %rdi
leaq -0x19(%rbp), %rsi
movl $0x5, %edx
callq 0xaadf0
jmp 0xac1a5
movb $-0x35, -0x19(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x19(%rbp), %rdi
addq $0x1, %rdi
movl $0x8, %esi
callq 0xabaf0
movq -0x8(%rbp), %rdi
leaq -0x19(%rbp), %rsi
movl $0x9, %edx
callq 0xaadf0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: table_is_an_array
static int table_is_an_array(lua_State *L) {
    long count = 0, max = 0, idx = 0;
    lua_Number n;

    lua_pushnil(L);
    while(lua_next(L,-2)) {
        /* Stack: ... key value */
        lua_pop(L,1); /* Stack: ... key */
        if (lua_type(L,-1) != LUA_TNUMBER) goto not_array;
        n = lua_tonumber(L,-1);
        idx = n;
        if (idx != n || idx < 1) goto not_array;
        count++;
        max = idx;
    }
    /* We have the total number of elements in "count". Also we have
     * the max index encountered in "idx". We can't reach this code
     * if there are indexes <= 0. If you also note that there can not be
     * repeated keys into a table, you have that if idx==count you are sure
     * that there are all the keys form 1 to count (both included). */
    return idx == count;

not_array:
    lua_pop(L,1);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x10(%rbp), %rdi
callq 0x8c440
movq -0x10(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8d810
cmpl $0x0, %eax
je 0xac5a1
movq -0x10(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8b6f0
movq -0x10(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8bc20
cmpl $0x3, %eax
je 0xac553
jmp 0xac5b6
movq -0x10(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8bf90
movsd %xmm0, -0x30(%rbp)
cvttsd2si -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
cvtsi2sdq -0x28(%rbp), %xmm0
ucomisd -0x30(%rbp), %xmm0
jne 0xac586
jp 0xac586
cmpq $0x1, -0x28(%rbp)
jge 0xac588
jmp 0xac5b6
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0xac51d
movq -0x28(%rbp), %rax
cmpq -0x18(%rbp), %rax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xac5cb
movq -0x10(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8b6f0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_lua_table_as_array
static void mp_encode_lua_table_as_array(lua_State *L, mp_buf *buf, int level) {
    size_t len = lua_objlen(L,-1), j;

    mp_encode_array(buf,len);
    for (j = 1; j <= len; j++) {
        lua_pushnumber(L,j);
        lua_gettable(L,-2);
        mp_encode_lua_type(L,buf,level+1);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x8c1a0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xac750
movq $0x1, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x20(%rbp), %rax
ja 0xac683
movq -0x8(%rbp), %rdi
movaps 0x31c81(%rip), %xmm1    # 0xde2b0
movq -0x28(%rbp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x31c80(%rip), %xmm1    # 0xde2c0
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x8c470
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8c980
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
addl $0x1, %edx
callq 0xabdf0
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0xac61a
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_lua_table_as_map
static void mp_encode_lua_table_as_map(lua_State *L, mp_buf *buf, int level) {
    size_t len = 0;

    /* First step: count keys into table. No other way to do it with the
     * Lua API, we need to iterate a first time. Note that an alternative
     * would be to do a single run, and then hack the buffer to insert the
     * map opcodes for message pack. Too hachish for this lib. */
    lua_pushnil(L);
    while(lua_next(L,-2)) {
        lua_pop(L,1); /* remove value, keep key for next iteration. */
        len++;
    }

    /* Step two: actually encoding of the map. */
    mp_encode_map(buf,len);
    lua_pushnil(L);
    while(lua_next(L,-2)) {
        /* Stack: ... key value */
        lua_pushvalue(L,-2); /* Stack: ... key value key */
        mp_encode_lua_type(L,buf,level+1); /* encode key */
        mp_encode_lua_type(L,buf,level+1); /* encode val */
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8c440
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8d810
cmpl $0x0, %eax
je 0xac6e3
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8b6f0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0xac6b4
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xac830
movq -0x8(%rbp), %rdi
callq 0x8c440
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8d810
cmpl $0x0, %eax
je 0xac742
movq -0x8(%rbp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x8bbc0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
addl $0x1, %edx
callq 0xabdf0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
addl $0x1, %edx
callq 0xabdf0
jmp 0xac6f9
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_array
static void mp_encode_array(mp_buf *buf, int64_t n) {
    unsigned char b[5];
    int enclen;

    if (n <= 15) {
        b[0] = 0x90 | (n & 0xf);    /* fix array */
        enclen = 1;
    } else if (n <= 65535) {
        b[0] = 0xdc;                /* array 16 */
        b[1] = (n & 0xff00) >> 8;
        b[2] = n & 0xff;
        enclen = 3;
    } else {
        b[0] = 0xdd;                /* array 32 */
        b[1] = (n & 0xff000000) >> 24;
        b[2] = (n & 0xff0000) >> 16;
        b[3] = (n & 0xff00) >> 8;
        b[4] = n & 0xff;
        enclen = 5;
    }
    mp_buf_append(buf,b,enclen);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0xf, -0x10(%rbp)
jg 0xac784
movq -0x10(%rbp), %rax
andq $0xf, %rax
orq $0x90, %rax
movb %al, -0x15(%rbp)
movl $0x1, -0x1c(%rbp)
jmp 0xac80a
cmpq $0xffff, -0x10(%rbp)    # imm = 0xFFFF
jg 0xac7b9
movb $-0x24, -0x15(%rbp)
movq -0x10(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
sarq $0x8, %rax
movb %al, -0x14(%rbp)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, -0x13(%rbp)
movl $0x3, -0x1c(%rbp)
jmp 0xac808
movb $-0x23, -0x15(%rbp)
movabsq $0xff000000, %rax       # imm = 0xFF000000
andq -0x10(%rbp), %rax
sarq $0x18, %rax
movb %al, -0x14(%rbp)
movq -0x10(%rbp), %rax
andq $0xff0000, %rax         # imm = 0xFF0000
sarq $0x10, %rax
movb %al, -0x13(%rbp)
movq -0x10(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
sarq $0x8, %rax
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, -0x11(%rbp)
movl $0x5, -0x1c(%rbp)
jmp 0xac80a
movq -0x8(%rbp), %rdi
leaq -0x15(%rbp), %rsi
movslq -0x1c(%rbp), %rdx
callq 0xaadf0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_encode_map
static void mp_encode_map(mp_buf *buf, int64_t n) {
    unsigned char b[5];
    int enclen;

    if (n <= 15) {
        b[0] = 0x80 | (n & 0xf);    /* fix map */
        enclen = 1;
    } else if (n <= 65535) {
        b[0] = 0xde;                /* map 16 */
        b[1] = (n & 0xff00) >> 8;
        b[2] = n & 0xff;
        enclen = 3;
    } else {
        b[0] = 0xdf;                /* map 32 */
        b[1] = (n & 0xff000000) >> 24;
        b[2] = (n & 0xff0000) >> 16;
        b[3] = (n & 0xff00) >> 8;
        b[4] = n & 0xff;
        enclen = 5;
    }
    mp_buf_append(buf,b,enclen);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0xf, -0x10(%rbp)
jg 0xac864
movq -0x10(%rbp), %rax
andq $0xf, %rax
orq $0x80, %rax
movb %al, -0x15(%rbp)
movl $0x1, -0x1c(%rbp)
jmp 0xac8ea
cmpq $0xffff, -0x10(%rbp)    # imm = 0xFFFF
jg 0xac899
movb $-0x22, -0x15(%rbp)
movq -0x10(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
sarq $0x8, %rax
movb %al, -0x14(%rbp)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, -0x13(%rbp)
movl $0x3, -0x1c(%rbp)
jmp 0xac8e8
movb $-0x21, -0x15(%rbp)
movabsq $0xff000000, %rax       # imm = 0xFF000000
andq -0x10(%rbp), %rax
sarq $0x18, %rax
movb %al, -0x14(%rbp)
movq -0x10(%rbp), %rax
andq $0xff0000, %rax         # imm = 0xFF0000
sarq $0x10, %rax
movb %al, -0x13(%rbp)
movq -0x10(%rbp), %rax
andq $0xff00, %rax           # imm = 0xFF00
sarq $0x8, %rax
movb %al, -0x12(%rbp)
movq -0x10(%rbp), %rax
andq $0xff, %rax
movb %al, -0x11(%rbp)
movl $0x5, -0x1c(%rbp)
jmp 0xac8ea
movq -0x8(%rbp), %rdi
leaq -0x15(%rbp), %rsi
movslq -0x1c(%rbp), %rdx
callq 0xaadf0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/lua/src/lua_cmsgpack.c
// Function: mp_cur_new
static mp_cur *mp_cur_new(const unsigned char *s, size_t len) {
    mp_cur *cursor = malloc(sizeof(*cursor));

    cursor->p = s;
    cursor->left = len;
    cursor->err = MP_CUR_ERROR_NONE;
    return cursor;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x18, %edi
callq 0x1f350
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: arenas_extend
arena_t *
arenas_extend(unsigned ind)
{
	arena_t *ret;

	ret = (arena_t *)base_alloc(sizeof(arena_t));
	if (ret != NULL && arena_new(ret, ind) == false) {
		arenas[ind] = ret;
		return (ret);
	}
	/* Only reached if there is an OOM error. */

	/*
	 * OOM here is quite inconvenient to propagate, since dealing with it
	 * would require a check for failure in the fast path.  Instead, punt
	 * by using arenas[0].  In practice, this is an extremely unlikely
	 * failure.
	 */
	malloc_write("<jemalloc>: Error initializing arena\n");
	if (opt_abort)
		abort();

	return (arenas[0]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0xc(%rbp)
movl $0x11c0, %edi           # imm = 0x11C0
callq 0xbfc90
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0xb11f2
movq -0x18(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xb8700
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0xb11f2
movq -0x18(%rbp), %rdx
movq 0x772e7(%rip), %rax     # 0x1284c8
movl -0xc(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xb121a
leaq 0x3c293(%rip), %rdi     # 0xed48c
callq 0xd7210
testb $0x1, 0x772a5(%rip)     # 0x1284aa
je 0xb120c
callq 0x1f1b0
movq 0x772b5(%rip), %rax     # 0x1284c8
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: arenas_cleanup
void
arenas_cleanup(void *arg)
{
	arena_t *arena = *(arena_t **)arg;

	malloc_mutex_lock(&arenas_lock);
	arena->nthreads--;
	malloc_mutex_unlock(&arenas_lock);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
leaq 0x7708a(%rip), %rdi     # 0x1284d8
callq 0xb1380
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x4(%rax)
leaq 0x77071(%rip), %rdi     # 0x1284d8
callq 0xb13a0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_malloc
void *
je_malloc(size_t size)
{
	void *ret;
	size_t usize JEMALLOC_CC_SILENCE_INIT(0);
	prof_thr_cnt_t *cnt JEMALLOC_CC_SILENCE_INIT(NULL);

	if (malloc_init()) {
		ret = NULL;
		goto label_oom;
	}

	if (size == 0)
		size = 1;

	if (config_prof && opt_prof) {
		usize = s2u(size);
		PROF_ALLOC_PREP(1, usize, cnt);
		if (cnt == NULL) {
			ret = NULL;
			goto label_oom;
		}
		if (prof_promote && (uintptr_t)cnt != (uintptr_t)1U && usize <=
		    SMALL_MAXCLASS) {
			ret = imalloc(SMALL_MAXCLASS+1);
			if (ret != NULL)
				arena_prof_promoted(ret, usize);
		} else
			ret = imalloc(size);
	} else {
		if (config_stats || (config_valgrind && opt_valgrind))
			usize = s2u(size);
		ret = imalloc(size);
	}

label_oom:
	if (ret == NULL) {
		if (config_xmalloc && opt_xmalloc) {
			malloc_write("<jemalloc>: Error in malloc(): "
			    "out of memory\n");
			abort();
		}
		set_errno(ENOMEM);
	}
	if (config_prof && opt_prof && ret != NULL)
		prof_malloc(ret, usize, cnt);
	if (config_stats && ret != NULL) {
		assert(usize == isalloc(ret, config_prof));
		thread_allocated_tsd_get()->allocated += usize;
	}
	UTRACE(0, size, ret);
	JEMALLOC_VALGRIND_MALLOC(ret != NULL, ret, usize, false);
	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
callq 0xb1590
testb $0x1, %al
jne 0xb14a7
jmp 0xb14b1
movq $0x0, -0x10(%rbp)
jmp 0xb14da
cmpq $0x0, -0x8(%rbp)
jne 0xb14c0
movq $0x1, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb15d0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb1670
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0xb14eb
movl $0xc, %edi
callq 0xb16a0
cmpq $0x0, -0x10(%rbp)
je 0xb150d
jmp 0xb14f4
jmp 0xb14f6
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
callq 0xb16d0
movq -0x68(%rbp), %rcx
addq (%rax), %rcx
movq %rcx, (%rax)
jmp 0xb150f
testb $0x1, 0x76fa4(%rip)     # 0x1284ba
je 0xb157f
cmpq $0x0, -0x10(%rbp)
je 0xb157f
jmp 0xb1521
movq $0x1301, -0x50(%rbp)    # imm = 0x1301
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
leaq -0x50(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0xb157f
jmp 0xb1581
movq -0x10(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/include/jemalloc/internal/jemalloc_internal.h
// Function: s2u
size_t
s2u(size_t size)
{

	if (size <= SMALL_MAXCLASS)
		return (arena_bin_info[SMALL_SIZE2BIN(size)].reg_size);
	if (size <= arena_maxclass)
		return (PAGE_CEILING(size));
	return (CHUNK_CEILING(size));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
cmpq $0xe00, -0x10(%rbp)     # imm = 0xE00
ja 0xb1612
movq -0x10(%rbp), %rcx
subq $0x1, %rcx
shrq $0x3, %rcx
leaq 0x3c08b(%rip), %rax     # 0xed680
movzbl (%rax,%rcx), %eax
movl %eax, %ecx
leaq 0x76f4e(%rip), %rax     # 0x128550
imulq $0x68, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0xb165b
movq -0x10(%rbp), %rax
leaq 0x77c63(%rip), %rcx     # 0x129280
cmpq (%rcx), %rax
ja 0xb1638
movq -0x10(%rbp), %rax
addq $0xfff, %rax            # imm = 0xFFF
andq $-0x1000, %rax          # imm = 0xF000
movq %rax, -0x8(%rbp)
jmp 0xb165b
movq -0x10(%rbp), %rax
leaq 0x77b8d(%rip), %rcx     # 0x1291d0
addq (%rcx), %rax
leaq 0x77b83(%rip), %rcx     # 0x1291d0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/include/jemalloc/internal/jemalloc_internal.h
// Function: isalloc
JEMALLOC_INLINE size_t
isalloc(const void *ptr, bool demote)
{
	size_t ret;
	arena_chunk_t *chunk;

	assert(ptr != NULL);
	/* Demotion only makes sense if config_prof is true. */
	assert(config_prof || demote == false);

	chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr);
	if (chunk != ptr)
		ret = arena_salloc(ptr, demote);
	else
		ret = huge_salloc(ptr);

	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
andb $0x1, %al
movb %al, -0x9(%rbp)
jmp 0xb18f6
jmp 0xb18f8
jmp 0xb18fa
movq -0x8(%rbp), %rax
leaq 0x778cb(%rip), %rcx     # 0x1291d0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq -0x8(%rbp), %rax
je 0xb1934
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xb5850
movq %rax, -0x18(%rbp)
jmp 0xb1941
movq -0x8(%rbp), %rdi
callq 0xcd420
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_aligned_alloc
void *
je_aligned_alloc(size_t alignment, size_t size)
{
	void *ret;
	int err;

	if ((err = imemalign(&ret, alignment, size, 1)) != 0) {
		ret = NULL;
		set_errno(err);
	}
	JEMALLOC_VALGRIND_MALLOC(err == 0, ret, isalloc(ret, config_prof),
	    false);
	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x18(%rbp), %rdi
movl $0x1, %ecx
callq 0xb17e0
movl %eax, -0x1c(%rbp)
cmpl $0x0, %eax
je 0xb198e
movq $0x0, -0x18(%rbp)
movl -0x1c(%rbp), %edi
callq 0xb16a0
jmp 0xb1990
testb $0x1, 0x76b23(%rip)     # 0x1284ba
je 0xb1a06
cmpl $0x0, -0x1c(%rbp)
jne 0xb1a06
jmp 0xb19a1
movq $0x1301, -0x50(%rbp)    # imm = 0x1301
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0xb18e0
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
leaq -0x50(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0xb1a06
jmp 0xb1a08
movq -0x18(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/include/jemalloc/internal/jemalloc_internal.h
// Function: u2rz
JEMALLOC_INLINE size_t
u2rz(size_t usize)
{
	size_t ret;

	if (usize <= SMALL_MAXCLASS) {
		size_t binind = SMALL_SIZE2BIN(usize);
		ret = arena_bin_info[binind].redzone_size;
	} else
		ret = 0;

	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
cmpq $0xe00, -0x8(%rbp)      # imm = 0xE00
ja 0xb2006
movq -0x8(%rbp), %rcx
subq $0x1, %rcx
shrq $0x3, %rcx
leaq 0x3b69b(%rip), %rax     # 0xed680
movzbl (%rax,%rcx), %eax
movq %rax, -0x18(%rbp)
leaq 0x7655c(%rip), %rax     # 0x128550
imulq $0x68, -0x18(%rbp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0xb200e
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_free
void
je_free(void *ptr)
{

	UTRACE(ptr, 0, 0);
	if (ptr != NULL) {
		size_t usize;
		size_t rzsize JEMALLOC_CC_SILENCE_INIT(0);

		assert(malloc_initialized || IS_INITIALIZER);

		if (config_prof && opt_prof) {
			usize = isalloc(ptr, config_prof);
			prof_free(ptr, usize);
		} else if (config_stats || config_valgrind)
			usize = isalloc(ptr, config_prof);
		if (config_stats)
			thread_allocated_tsd_get()->deallocated += usize;
		if (config_valgrind && opt_valgrind)
			rzsize = p2rz(ptr);
		iqalloc(ptr);
		JEMALLOC_VALGRIND_FREE(ptr, rzsize);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xb21b0
movq $0x0, -0x18(%rbp)
jmp 0xb2101
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0xb18e0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
callq 0xb16d0
movq -0x68(%rbp), %rcx
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
testb $0x1, 0x7638a(%rip)     # 0x1284ba
je 0xb213f
movq -0x8(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xb2020
testb $0x1, 0x7636b(%rip)     # 0x1284ba
je 0xb21ac
jmp 0xb2153
movq $0x1302, -0x50(%rbp)    # imm = 0x1302
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
leaq -0x50(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0xb21ac
jmp 0xb21ae
jmp 0xb21b0
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_memalign
void *
je_memalign(size_t alignment, size_t size)
{
	void *ret JEMALLOC_CC_SILENCE_INIT(NULL);
	imemalign(&ret, alignment, size, 1);
	JEMALLOC_VALGRIND_MALLOC(ret != NULL, ret, size, false);
	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
leaq -0x18(%rbp), %rdi
movl $0x1, %ecx
callq 0xb17e0
testb $0x1, 0x762c5(%rip)     # 0x1284ba
je 0xb225e
cmpq $0x0, -0x18(%rbp)
je 0xb225e
jmp 0xb2200
movq $0x1301, -0x50(%rbp)    # imm = 0x1301
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
leaq -0x50(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0xb225e
jmp 0xb2260
movq -0x18(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_valloc
void *
je_valloc(size_t size)
{
	void *ret JEMALLOC_CC_SILENCE_INIT(NULL);
	imemalign(&ret, PAGE, size, 1);
	JEMALLOC_VALGRIND_MALLOC(ret != NULL, ret, size, false);
	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rdx
leaq -0x10(%rbp), %rdi
movl $0x1000, %esi           # imm = 0x1000
movl $0x1, %ecx
callq 0xb17e0
testb $0x1, 0x76218(%rip)     # 0x1284ba
je 0xb230b
cmpq $0x0, -0x10(%rbp)
je 0xb230b
jmp 0xb22ad
movq $0x1301, -0x40(%rbp)    # imm = 0x1301
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x28(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x18(%rbp)
leaq -0x40(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x50(%rbp)
jmp 0xb230b
jmp 0xb230d
movq -0x10(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_malloc_usable_size
size_t
je_malloc_usable_size(JEMALLOC_USABLE_SIZE_CONST void *ptr)
{
	size_t ret;

	assert(malloc_initialized || IS_INITIALIZER);

	if (config_ivsalloc)
		ret = ivsalloc(ptr, config_prof);
	else
		ret = (ptr != NULL) ? isalloc(ptr, config_prof) : 0;

	return (ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
jmp 0xb232e
cmpq $0x0, -0x8(%rbp)
je 0xb2346
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0xb18e0
movq %rax, -0x18(%rbp)
jmp 0xb234e
xorl %eax, %eax
movq %rax, -0x18(%rbp)
jmp 0xb234e
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: iallocm
JEMALLOC_INLINE void *
iallocm(size_t usize, size_t alignment, bool zero, bool try_tcache,
    arena_t *arena)
{

	assert(usize == ((alignment == 0) ? s2u(usize) : sa2u(usize,
	    alignment)));

	if (alignment != 0)
		return (ipallocx(usize, alignment, zero, try_tcache, arena));
	else if (zero)
		return (icallocx(usize, try_tcache, arena));
	else
		return (imallocx(usize, try_tcache, arena));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %cl, %al
movb %dl, %cl
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
andb $0x1, %cl
movb %cl, -0x19(%rbp)
andb $0x1, %al
movb %al, -0x1a(%rbp)
movq %r8, -0x28(%rbp)
jmp 0xb2815
cmpq $0x0, -0x18(%rbp)
je 0xb2844
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movb -0x19(%rbp), %cl
movb -0x1a(%rbp), %al
movq -0x28(%rbp), %r8
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %edx
movzbl %al, %ecx
callq 0xb5760
movq %rax, -0x8(%rbp)
jmp 0xb287e
testb $0x1, -0x19(%rbp)
je 0xb2865
movq -0x10(%rbp), %rdi
movb -0x1a(%rbp), %al
movq -0x28(%rbp), %rdx
andb $0x1, %al
movzbl %al, %esi
callq 0xb5a20
movq %rax, -0x8(%rbp)
jmp 0xb287e
movq -0x10(%rbp), %rdi
movb -0x1a(%rbp), %al
movq -0x28(%rbp), %rdx
andb $0x1, %al
movzbl %al, %esi
callq 0xb4ea0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_sallocm
int
je_sallocm(const void *ptr, size_t *rsize, int flags)
{
	size_t sz;

	assert(malloc_initialized || IS_INITIALIZER);

	if (config_ivsalloc)
		sz = ivsalloc(ptr, config_prof);
	else {
		assert(ptr != NULL);
		sz = isalloc(ptr, config_prof);
	}
	assert(rsize != NULL);
	*rsize = sz;

	return (ALLOCM_SUCCESS);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
jmp 0xb3145
jmp 0xb3147
jmp 0xb3149
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0xb18e0
movq %rax, -0x20(%rbp)
jmp 0xb315a
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
xorl %eax, %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_dallocm
int
je_dallocm(void *ptr, int flags)
{
	size_t usize;
	size_t rzsize JEMALLOC_CC_SILENCE_INIT(0);
	unsigned arena_ind = ((unsigned)(flags >> 8)) - 1;
	bool try_tcache;

	assert(ptr != NULL);
	assert(malloc_initialized || IS_INITIALIZER);

	if (arena_ind != UINT_MAX) {
		arena_chunk_t *chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr);
		try_tcache = (chunk == ptr || chunk->arena !=
		    arenas[arena_ind]);
	} else
		try_tcache = true;

	UTRACE(ptr, 0, 0);
	if (config_stats || config_valgrind)
		usize = isalloc(ptr, config_prof);
	if (config_prof && opt_prof) {
		if (config_stats == false && config_valgrind == false)
			usize = isalloc(ptr, config_prof);
		prof_free(ptr, usize);
	}
	if (config_stats)
		thread_allocated_tsd_get()->deallocated += usize;
	if (config_valgrind && opt_valgrind)
		rzsize = p2rz(ptr);
	iqallocx(ptr, try_tcache);
	JEMALLOC_VALGRIND_FREE(ptr, rzsize);

	return (ALLOCM_SUCCESS);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq $0x0, -0x20(%rbp)
movl -0xc(%rbp), %eax
sarl $0x8, %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xb3198
jmp 0xb319a
jmp 0xb319c
cmpl $-0x1, -0x24(%rbp)
je 0xb31ef
movq -0x8(%rbp), %rax
leaq 0x76023(%rip), %rcx     # 0x1291d0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rcx
movb $0x1, %al
cmpq -0x8(%rbp), %rcx
movb %al, -0x71(%rbp)
je 0xb31e5
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq 0x752f0(%rip), %rcx     # 0x1284c8
movl -0x24(%rbp), %edx
cmpq (%rcx,%rdx,8), %rax
setne %al
movb %al, -0x71(%rbp)
movb -0x71(%rbp), %al
andb $0x1, %al
movb %al, -0x25(%rbp)
jmp 0xb31f3
movb $0x1, -0x25(%rbp)
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0xb18e0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x80(%rbp)
callq 0xb16d0
movq -0x80(%rbp), %rcx
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
testb $0x1, 0x75298(%rip)     # 0x1284ba
je 0xb3231
movq -0x8(%rbp), %rdi
callq 0xb16f0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movb -0x25(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xb32c0
testb $0x1, 0x75271(%rip)     # 0x1284ba
je 0xb32a6
jmp 0xb324d
movq $0x1302, -0x60(%rbp)    # imm = 0x1302
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x38(%rbp)
leaq -0x60(%rbp), %rax
xorl %ecx, %ecx
movl %ecx, %edx
rolq $0x3, %rdi
rolq $0xd, %rdi
rolq $0x3d, %rdi
rolq $0x33, %rdi
xchgq %rbx, %rbx
movq %rdx, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x70(%rbp)
jmp 0xb32a6
jmp 0xb32a8
xorl %eax, %eax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: je_nallocm
int
je_nallocm(size_t *rsize, size_t size, int flags)
{
	size_t usize;
	size_t alignment = (ZU(1) << (flags & ALLOCM_LG_ALIGN_MASK)
	    & (SIZE_T_MAX-1));

	assert(size != 0);

	if (malloc_init())
		return (ALLOCM_ERR_OOM);

	usize = (alignment == 0) ? s2u(size) : sa2u(size, alignment);
	if (usize == 0)
		return (ALLOCM_ERR_OOM);

	if (rsize != NULL)
		*rsize = usize;
	return (ALLOCM_SUCCESS);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
andl $0x3f, %eax
movl %eax, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
andq $-0x2, %rax
movq %rax, -0x30(%rbp)
jmp 0xb332f
callq 0xb1590
testb $0x1, %al
jne 0xb333a
jmp 0xb3343
movl $0x1, -0x4(%rbp)
jmp 0xb339b
cmpq $0x0, -0x30(%rbp)
jne 0xb3359
movq -0x18(%rbp), %rdi
callq 0xb15d0
movq %rax, -0x38(%rbp)
jmp 0xb336a
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xb2690
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xb3382
movl $0x1, -0x4(%rbp)
jmp 0xb339b
cmpq $0x0, -0x10(%rbp)
je 0xb3394
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: jemalloc_prefork
void
jemalloc_prefork(void)
#else
JEMALLOC_EXPORT void
_malloc_prefork(void)
#endif
{
	unsigned i;

#ifdef JEMALLOC_MUTEX_INIT_CB
	if (malloc_initialized == false)
		return;
#endif
	assert(malloc_initialized);

	/* Acquire all mutexes in a safe order. */
	ctl_prefork();
	malloc_mutex_prefork(&arenas_lock);
	for (i = 0; i < narenas_total; i++) {
		if (arenas[i] != NULL)
			arena_prefork(arenas[i]);
	}
	prof_prefork();
	chunk_prefork();
	base_prefork();
	huge_prefork();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
jmp 0xb33ca
callq 0xc19a0
leaq 0x75102(%rip), %rdi     # 0x1284d8
callq 0xcded0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl 0x75115(%rip), %eax     # 0x128500
jae 0xb341e
movq 0x750d4(%rip), %rax     # 0x1284c8
movl -0x4(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
je 0xb3411
movq 0x750c3(%rip), %rax     # 0x1284c8
movl -0x4(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0xb9260
jmp 0xb3413
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0xb33e2
callq 0xcf720
callq 0xc0a80
callq 0xbff80
callq 0xcd5a0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: jemalloc_postfork_parent
void
jemalloc_postfork_parent(void)
#else
JEMALLOC_EXPORT void
_malloc_postfork(void)
#endif
{
	unsigned i;

#ifdef JEMALLOC_MUTEX_INIT_CB
	if (malloc_initialized == false)
		return;
#endif
	assert(malloc_initialized);

	/* Release all mutexes, now that fork() has completed. */
	huge_postfork_parent();
	base_postfork_parent();
	chunk_postfork_parent();
	prof_postfork_parent();
	for (i = 0; i < narenas_total; i++) {
		if (arenas[i] != NULL)
			arena_postfork_parent(arenas[i]);
	}
	malloc_mutex_postfork_parent(&arenas_lock);
	ctl_postfork_parent();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
jmp 0xb344a
callq 0xcd5c0
callq 0xbffa0
callq 0xc0aa0
callq 0xcf790
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
cmpl 0x75092(%rip), %eax     # 0x128500
jae 0xb34a1
movq 0x75051(%rip), %rax     # 0x1284c8
movl -0x4(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
je 0xb3494
movq 0x75040(%rip), %rax     # 0x1284c8
movl -0x4(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0xb92c0
jmp 0xb3496
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0xb3465
leaq 0x75030(%rip), %rdi     # 0x1284d8
callq 0xcdf10
callq 0xc19e0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: a0alloc
static void *
a0alloc(size_t size, bool zero)
{

	if (malloc_init())
		return (NULL);

	if (size == 0)
		size = 1;

	if (size <= arena_maxclass)
		return (arena_malloc(arenas[0], size, zero, false));
	else
		return (huge_malloc(size, zero));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
callq 0xb1590
testb $0x1, %al
jne 0xb357f
jmp 0xb3589
movq $0x0, -0x8(%rbp)
jmp 0xb35e0
cmpq $0x0, -0x10(%rbp)
jne 0xb3598
movq $0x1, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x75cdd(%rip), %rcx     # 0x129280
cmpq (%rcx), %rax
ja 0xb35cb
movq 0x74f19(%rip), %rax     # 0x1284c8
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movb -0x11(%rbp), %al
xorl %ecx, %ecx
andb $0x1, %al
movzbl %al, %edx
callq 0xb4f00
movq %rax, -0x8(%rbp)
jmp 0xb35e0
movq -0x10(%rbp), %rdi
movb -0x11(%rbp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0xccdb0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/src/jemalloc.c
// Function: a0free
void
a0free(void *ptr)
{
	arena_chunk_t *chunk;

	if (ptr == NULL)
		return;

	chunk = (arena_chunk_t *)CHUNK_ADDR2BASE(ptr);
	if (chunk != ptr)
		arena_dalloc(chunk->arena, chunk, ptr, false);
	else
		huge_dalloc(ptr, true);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0xb3635
jmp 0xb367e
movq -0x8(%rbp), %rax
leaq 0x75b90(%rip), %rcx     # 0x1291d0
movq (%rcx), %rcx
xorq $-0x1, %rcx
andq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x8(%rbp), %rax
je 0xb3670
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x8(%rbp), %rdx
xorl %ecx, %ecx
callq 0xb3690
jmp 0xb367e
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0xcd2f0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/include/jemalloc/internal/arena.h
// Function: arena_dalloc
JEMALLOC_INLINE void
arena_dalloc(arena_t *arena, arena_chunk_t *chunk, void *ptr, bool try_tcache)
{
	size_t pageind, mapbits;
	tcache_t *tcache;

	assert(arena != NULL);
	assert(chunk->arena == arena);
	assert(ptr != NULL);
	assert(CHUNK_ADDR2BASE(ptr) != ptr);

	pageind = ((uintptr_t)ptr - (uintptr_t)chunk) >> LG_PAGE;
	mapbits = arena_mapbits_get(chunk, pageind);
	assert(arena_mapbits_allocated_get(chunk, pageind) != 0);
	if ((mapbits & CHUNK_MAP_LARGE) == 0) {
		/* Small allocation. */
		if (try_tcache && (tcache = tcache_get(false)) != NULL) {
			size_t binind;

			binind = arena_ptr_small_binind_get(ptr, mapbits);
			tcache_dalloc_small(tcache, ptr, binind);
		} else
			arena_dalloc_small(arena, chunk, ptr, pageind);
	} else {
		size_t size = arena_mapbits_large_size_get(chunk, pageind);

		assert(((uintptr_t)ptr & PAGE_MASK) == 0);

		if (try_tcache && size <= tcache_maxclass && (tcache =
		    tcache_get(false)) != NULL) {
			tcache_dalloc_large(tcache, ptr, size);
		} else
			arena_dalloc_large(arena, chunk, ptr);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
jmp 0xb36ad
jmp 0xb36af
jmp 0xb36b1
jmp 0xb36b3
jmp 0xb36b5
jmp 0xb36b7
jmp 0xb36b9
movq -0x18(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
shrq $0xc, %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xb5980
movq %rax, -0x30(%rbp)
jmp 0xb36df
movq -0x30(%rbp), %rax
andq $0x2, %rax
cmpq $0x0, %rax
jne 0xb373f
testb $0x1, -0x19(%rbp)
je 0xb3728
xorl %edi, %edi
callq 0xb5000
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0xb3728
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xb5b00
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0xb5b30
jmp 0xb373d
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0xb7380
jmp 0xb379f
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xb5940
movq %rax, -0x48(%rbp)
jmp 0xb3752
testb $0x1, -0x19(%rbp)
je 0xb378c
movq -0x48(%rbp), %rax
leaq 0x86d9d(%rip), %rcx     # 0x13a500
cmpq (%rcx), %rax
ja 0xb378c
xorl %edi, %edi
callq 0xb5000
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0xb378c
movq -0x38(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0xb5c00
jmp 0xb379d
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0xb79c0
jmp 0xb379f
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/nilyang[P]redis-tdd-annotation/deps/jemalloc/include/jemalloc/internal/jemalloc_internal.h
// Function: imallocx
JEMALLOC_INLINE void *
imallocx(size_t size, bool try_tcache, arena_t *arena)
{

	assert(size != 0);

	if (size <= arena_maxclass)
		return (arena_malloc(arena, size, false, try_tcache));
	else
		return (huge_malloc(size, false));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
jmp 0xb4eba
movq -0x10(%rbp), %rax
leaq 0x743bb(%rip), %rcx     # 0x129280
cmpq (%rcx), %rax
ja 0xb4ee7
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
movb -0x11(%rbp), %al
xorl %edx, %edx
andb $0x1, %al
movzbl %al, %ecx
callq 0xb4f00
movq %rax, -0x8(%rbp)
jmp 0xb4ef6
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0xccdb0
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq