// File: /workspace/github_c_makefile_star2_O3/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, %r14
movq %rdi, %r13
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x65e4e
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 0x79600
leaq 0x29461(%rip), %rax     # 0xa28b8
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x66066
testl %eax, %eax
sete %al
xorb $-0x3d, %al
movq %rsp, %rsi
movb %al, (%rsi)
jmp 0x79606
movq %rsp, %r12
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r12, %rdx
callq 0x6608c
movq %rax, %r15
movq (%r12), %rbx
cmpq $0x1f, %rbx
ja 0x79610
movl %ebx, %eax
orb $-0x60, %al
movb %al, 0xb(%rsp)
movl $0x1, %edx
jmp 0x7974d
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x66008
movsd %xmm0, 0x10(%rsp)
callq 0x1fad0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jne 0x794de
jnp 0x796fc
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm1
ucomisd %xmm1, %xmm2
leaq 0x1(%rsp), %rax
jne 0x7978c
jp 0x7978c
movb $-0x36, (%rsp)
movss %xmm0, 0x1(%rsp)
movl $0x4, %ecx
movb (%rax), %dl
movb (%rsp,%rcx), %sil
movb %sil, (%rax)
movb %dl, (%rsp,%rcx)
incq %rax
decq %rcx
cmpq $0x2, %rcx
jne 0x7950d
movl $0x5, %edx
jmp 0x798e1
movq %r13, %rdi
callq 0x6621b
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
testl %eax, %eax
je 0x795bd
xorl %ebx, %ebx
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x65aed
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x65e4e
cmpl $0x3, %eax
jne 0x79634
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x66008
cvttsd2si %xmm0, %r15
testq %r15, %r15
jle 0x79634
xorps %xmm1, %xmm1
cvtsi2sd %r15, %xmm1
ucomisd %xmm1, %xmm0
jne 0x79634
jp 0x79634
incq %rbx
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
testl %eax, %eax
jne 0x7954a
cmpq %r15, %rbx
jne 0x79641
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x660fd
movq %rax, %rbx
cmpq $0x10, %rax
jge 0x79768
movl %ebx, %eax
andb $0xf, %al
orb $-0x70, %al
movq %rsp, %rsi
movb %al, (%rsi)
movl $0x1, %edx
movq %r14, %rdi
callq 0x78d48
testq %rbx, %rbx
movq %rbx, %r15
jne 0x79829
jmp 0x798ec
movq %rsp, %rsi
movb $-0x40, (%rsi)
movl $0x1, %edx
jmp 0x798e4
cmpq $0xffff, %rbx           # imm = 0xFFFF
ja 0x79729
movb $-0x26, 0xb(%rsp)
movb %bh, 0xc(%rsp)
movb %bl, 0xd(%rsp)
movl $0x3, %edx
jmp 0x7974d
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x65aed
movq %r13, %rdi
callq 0x6621b
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
xorl %ebx, %ebx
testl %eax, %eax
je 0x79687
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x65aed
incq %rbx
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
testl %eax, %eax
jne 0x7965c
cmpq $0xf, %rbx
jg 0x797bd
andb $0xf, %bl
orb $-0x80, %bl
movb %bl, (%rsp)
movl $0x1, %edx
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78d48
movq %r13, %rdi
callq 0x6621b
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
testl %eax, %eax
je 0x798ec
incl %ebp
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x65e2e
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x79414
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x79414
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x66bc7
testl %eax, %eax
jne 0x796bf
jmp 0x798ec
cvttsd2si %xmm2, %rax
testq %rax, %rax
js 0x797e0
cmpq $0x7f, %rax
jbe 0x797ea
cmpq $0xff, %rax
ja 0x798ba
movb $-0x34, (%rsp)
jmp 0x798af
movb $-0x25, 0xb(%rsp)
movl %ebx, %eax
shrl $0x18, %eax
movb %al, 0xc(%rsp)
movl %ebx, %eax
shrl $0x10, %eax
movb %al, 0xd(%rsp)
movb %bh, 0xe(%rsp)
movb %bl, 0xf(%rsp)
movl $0x5, %edx
leaq 0xb(%rsp), %rsi
movq %r14, %rdi
callq 0x78d48
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
jmp 0x798e7
cmpq $0xffff, %rbx           # imm = 0xFFFF
ja 0x797f7
leaq 0x2(%rsp), %rax
movb $-0x24, -0x2(%rax)
movb %bh, 0x1(%rsp)
movl $0x3, %edx
jmp 0x79819
movb $-0x35, (%rsp)
movsd %xmm2, 0x1(%rsp)
movl $0x8, %ecx
movb (%rax), %dl
movb (%rsp,%rcx), %sil
movb %sil, (%rax)
movb %dl, (%rsp,%rcx)
incq %rax
decq %rcx
cmpq $0x4, %rcx
jne 0x7979b
movl $0x9, %edx
jmp 0x798e1
cmpq $0xffff, %rbx           # imm = 0xFFFF
ja 0x7987d
movb $-0x22, (%rsp)
movb %bh, 0x1(%rsp)
movb %bl, 0x2(%rsp)
movl $0x3, %edx
jmp 0x79695
cmpq $-0x20, %rax
jb 0x798a5
movb %al, (%rsp)
movl $0x1, %edx
jmp 0x798e1
leaq 0x4(%rsp), %rax
movb $-0x23, -0x4(%rax)
movl %ebx, %ecx
shrl $0x18, %ecx
movb %cl, -0x3(%rax)
movl %ebx, %ecx
shrl $0x10, %ecx
movb %cl, -0x2(%rax)
movb %bh, 0x3(%rsp)
movl $0x5, %edx
movb %bl, (%rax)
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78d48
movq %rbx, %r15
incl %ebp
movl $0x1, %ebx
movq %rbx, %xmm1
punpckldq 0x27793(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x2779b(%rip), %xmm1    # 0xa0fe0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %r13, %rdi
callq 0x6622f
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x664d3
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x79414
incq %rbx
cmpq %r15, %rbx
jbe 0x79830
jmp 0x798ec
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)
movl $0x5, %edx
jmp 0x79695
cmpq $-0x80, %rax
jb 0x798c8
movb $-0x30, (%rsp)
movb %al, 0x1(%rsp)
movl $0x2, %edx
jmp 0x798e1
cmpq $0xffff, %rax           # imm = 0xFFFF
ja 0x79908
movb $-0x33, (%rsp)
jmp 0x798d4
cmpq $-0x8000, %rax          # imm = 0x8000
jb 0x79917
movb $-0x2f, (%rsp)
movb %ah, 0x1(%rsp)
movb %al, 0x2(%rsp)
movl $0x3, %edx
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78d48
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x65aed
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rcx
shrq $0x20, %rcx
jne 0x79942
movb $-0x32, (%rsp)
jmp 0x79923
cmpq $-0x80000000, %rax      # imm = 0x80000000
jb 0x79969
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)
jmp 0x79525
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 0x79995
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)
jmp 0x797b3