// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r13
pushq $-0x1
popq %rsi
callq 0x60984
movl %eax, %edx
xorl $0x5, %edx
movl %ebp, %esi
xorl $0x10, %esi
xorl %ecx, %ecx
orl %edx, %esi
cmovnel %eax, %ecx
decl %ecx
cmpl $0x4, %ecx
ja 0x72869
leaq 0x260ec(%rip), %rax     # 0x98834
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
pushq $-0x1
popq %rsi
movq %r13, %rdi
callq 0x60b89
testl %eax, %eax
sete %al
xorb $-0x3d, %al
movq %rsp, %rsi
movb %al, (%rsi)
jmp 0x7286f
pushq $-0x1
popq %rsi
movq %rsp, %r12
movq %r13, %rdi
movq %r12, %rdx
callq 0x60bad
movq %rax, %r15
movq (%r12), %rcx
cmpq $0x1f, %rcx
ja 0x7288a
movq %rcx, %r14
movl %ecx, %eax
orb $-0x60, %al
movb %al, 0xb(%rsp)
pushq $0x1
jmp 0x72997
pushq $-0x1
popq %rsi
movq %r13, %rdi
callq 0x60b2b
movsd %xmm0, 0x10(%rsp)
callq 0x1fad0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jne 0x727c9
jnp 0x728ae
cvtsd2ss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm1
ucomisd %xmm1, %xmm2
leaq 0x1(%rsp), %rdi
jne 0x729b0
jp 0x729b0
movss %xmm0, 0x1(%rsp)
pushq $0x5
popq %r15
pushq $0x4
popq %rsi
movb $-0x36, %al
jmp 0x729bf
movq %rbx, 0x10(%rsp)
movq %r13, %rdi
callq 0x60d21
xorl %ebx, %ebx
pushq $-0x2
popq %r15
pushq $-0x1
popq %r12
xorl %r14d, %r14d
movq %r13, %rdi
movl %r15d, %esi
callq 0x616bd
testl %eax, %eax
je 0x728db
movq %r13, %rdi
movl %r15d, %esi
callq 0x60744
movq %r13, %rdi
movl %r12d, %esi
callq 0x60984
cmpl $0x3, %eax
jne 0x7287a
movq %r13, %rdi
movl %r12d, %esi
callq 0x60b2b
cvttsd2si %xmm0, %r14
testq %r14, %r14
jle 0x7287a
cvtsi2sd %r14, %xmm1
ucomisd %xmm1, %xmm0
jne 0x7287a
jp 0x7287a
incq %rbx
jmp 0x72814
movq %rsp, %rsi
movb $-0x40, (%rsi)
pushq $0x1
popq %rdx
movq %rbx, %rdi
jmp 0x729d4
pushq $-0x2
popq %rsi
movq %r13, %rdi
callq 0x60744
jmp 0x7290b
cmpq $0xffff, %rcx           # imm = 0xFFFF
ja 0x72973
movb $-0x26, 0xb(%rsp)
movb %ch, 0xc(%rsp)
movq %rcx, %r14
movb %cl, 0xd(%rsp)
pushq $0x3
jmp 0x72997
cvttsd2si %xmm2, %rax
testq %rax, %rax
js 0x72a63
cmpq $0x7f, %rax
jbe 0x72a69
cmpq $0xff, %rax
ja 0x72aa4
movb $-0x34, (%rsp)
jmp 0x72a99
cmpq %r14, %rbx
jne 0x7290b
pushq $-0x1
popq %rsi
movq %r13, %rdi
callq 0x60c1b
cmpq $0xf, %rax
movq 0x10(%rsp), %r14
movq %rax, %r12
jg 0x72a73
andb $0xf, %al
orb $-0x70, %al
movb %al, (%rsp)
pushq $0x1
jmp 0x72ad9
movq %r13, %rdi
callq 0x60d21
xorl %ebx, %ebx
pushq $-0x2
popq %r15
movq 0x10(%rsp), %r14
movq %r13, %rdi
movl %r15d, %esi
callq 0x616bd
testl %eax, %eax
je 0x7293d
movq %r13, %rdi
movl %r15d, %esi
callq 0x60744
incq %rbx
jmp 0x7291e
cmpq $0xf, %rbx
jg 0x72953
andb $0xf, %bl
orb $-0x80, %bl
movb %bl, (%rsp)
pushq $0x1
jmp 0x72a13
cmpq $0xffff, %rbx           # imm = 0xFFFF
ja 0x729f3
movb $-0x22, (%rsp)
movb %bh, 0x1(%rsp)
movb %bl, 0x2(%rsp)
pushq $0x3
jmp 0x72a13
movb $-0x25, 0xb(%rsp)
movl %ecx, %eax
shrl $0x18, %eax
movb %al, 0xc(%rsp)
movl %ecx, %eax
shrl $0x10, %eax
movb %al, 0xd(%rsp)
movb %ch, 0xe(%rsp)
movq %rcx, %r14
movb %cl, 0xf(%rsp)
pushq $0x5
popq %rdx
leaq 0xb(%rsp), %rsi
movq %rbx, %rdi
callq 0x72040
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
jmp 0x729d4
movsd %xmm2, 0x1(%rsp)
pushq $0x9
popq %r15
pushq $0x8
popq %rsi
movb $-0x35, %al
movq %rsp, %r12
movb %al, (%r12)
callq 0x72548
movq %rbx, %rdi
movq %r12, %rsi
movq %r15, %rdx
callq 0x72040
pushq $-0x2
popq %rsi
movq %r13, %rdi
callq 0x60744
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movb $-0x21, (%rsp)
movl %ebx, %eax
shrl $0x18, %eax
movb %al, 0x1(%rsp)
movl %ebx, %eax
shrl $0x10, %eax
movb %al, 0x2(%rsp)
movb %bh, 0x3(%rsp)
movb %bl, 0x4(%rsp)
pushq $0x5
popq %rdx
movq %rsp, %rsi
movq %r14, %rdi
callq 0x72040
movq %r13, %rdi
callq 0x60d21
incl %ebp
pushq $-0x2
popq %r15
movq %r13, %rdi
movl %r15d, %esi
callq 0x616bd
testl %eax, %eax
je 0x729d9
movq %r13, %rdi
movl %r15d, %esi
callq 0x60964
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x72707
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x72707
jmp 0x72a2d
cmpq $-0x20, %rax
jb 0x72a8b
movb %al, (%rsp)
pushq $0x1
jmp 0x72c04
cmpq $0xffff, %rax           # imm = 0xFFFF
ja 0x72ab9
movb $-0x24, (%rsp)
movb %ah, 0x1(%rsp)
movb %al, 0x2(%rsp)
pushq $0x3
jmp 0x72ad9
cmpq $-0x80, %rax
jb 0x72b3d
movb $-0x30, (%rsp)
movb %al, 0x1(%rsp)
pushq $0x2
jmp 0x72c04
cmpq $0xffff, %rax           # imm = 0xFFFF
ja 0x72b58
movb $-0x33, (%rsp)
jmp 0x72b49
movb $-0x23, (%rsp)
movl %eax, %ecx
shrl $0x18, %ecx
movb %cl, 0x1(%rsp)
movl %eax, %ecx
shrl $0x10, %ecx
movb %cl, 0x2(%rsp)
movb %ah, 0x3(%rsp)
movb %al, 0x4(%rsp)
pushq $0x5
popq %rdx
movq %rsp, %rsi
movq %r14, %rdi
callq 0x72040
incl %ebp
pushq $0x1
popq %rbx
pushq $-0x2
popq %r15
cmpq %r12, %rbx
ja 0x729d9
movq %rbx, %xmm1
punpckldq 0x2445c(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x24464(%rip), %xmm1    # 0x96f70
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %r13, %rdi
callq 0x60d32
movq %r13, %rdi
movl %r15d, %esi
callq 0x60fce
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x72707
incq %rbx
jmp 0x72aee
cmpq $-0x8000, %rax          # imm = 0x8000
jb 0x72b67
movb $-0x2f, (%rsp)
movb %ah, 0x1(%rsp)
movb %al, 0x2(%rsp)
pushq $0x3
jmp 0x72c04
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x72b91
movb $-0x32, (%rsp)
jmp 0x72b73
cmpq $-0x80000000, %rax      # imm = 0x80000000
jb 0x72bb8
movb $-0x2e, (%rsp)
movl %eax, %ecx
shrl $0x18, %ecx
movb %cl, 0x1(%rsp)
movl %eax, %ecx
shrl $0x10, %ecx
movb %cl, 0x2(%rsp)
movb %ah, 0x3(%rsp)
movb %al, 0x4(%rsp)
pushq $0x5
jmp 0x72c04
movb $-0x31, (%rsp)
movq %rax, %rdx
shrq $0x38, %rdx
movb %dl, 0x1(%rsp)
movq %rax, %rdx
shrq $0x30, %rdx
movb %dl, 0x2(%rsp)
movq %rax, %rdx
shrq $0x28, %rdx
movb %dl, 0x3(%rsp)
jmp 0x72be4
movb $-0x2d, (%rsp)
movq %rax, %rcx
shrq $0x38, %rcx
movb %cl, 0x1(%rsp)
movq %rax, %rcx
shrq $0x30, %rcx
movb %cl, 0x2(%rsp)
movq %rax, %rcx
shrq $0x28, %rcx
movb %cl, 0x3(%rsp)
movq %rax, %rcx
shrq $0x20, %rcx
movb %cl, 0x4(%rsp)
movl %eax, %ecx
shrl $0x18, %ecx
movb %cl, 0x5(%rsp)
movl %eax, %ecx
shrl $0x10, %ecx
movb %cl, 0x6(%rsp)
movb %ah, 0x7(%rsp)
movb %al, 0x8(%rsp)
pushq $0x9
popq %rdx
movq %rsp, %rsi
jmp 0x72872
nopl (%rax)