// File: /workspace/github_c_makefile_star2_O1/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 0x662f0
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 0x79505
leaq 0x29456(%rip), %rax     # 0xa2808
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x66508
testl %eax, %eax
sete %al
xorb $-0x3d, %al
movq %rsp, %rsi
movb %al, (%rsi)
jmp 0x7950b
movq %rsp, %r12
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movq %r12, %rdx
callq 0x6652e
movq %rax, %r15
movq (%r12), %rbx
cmpq $0x1f, %rbx
ja 0x79515
movl %ebx, %eax
orb $-0x60, %al
movb %al, 0xb(%rsp)
movl $0x1, %edx
jmp 0x79636
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x664aa
movsd %xmm0, 0x10(%rsp)
callq 0x1fad0
movsd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jne 0x79439
jnp 0x79548
xorps %xmm0, %xmm0
cvtsd2ss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm1
ucomisd %xmm1, %xmm2
leaq 0x1(%rsp), %rax
jne 0x79651
jp 0x79651
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 0x79468
movl $0x5, %edx
jmp 0x7981e
movq %r13, %rdi
callq 0x666bd
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
xorl %ebx, %ebx
testl %eax, %eax
je 0x79567
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x660a2
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x662f0
cmpl $0x3, %eax
jne 0x79539
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x664aa
cvttsd2si %xmm0, %r15
testq %r15, %r15
jle 0x79539
xorps %xmm1, %xmm1
cvtsi2sd %r15, %xmm1
ucomisd %xmm1, %xmm0
jne 0x79539
jp 0x79539
incq %rbx
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
testl %eax, %eax
jne 0x794a9
jmp 0x7956a
movq %rsp, %rsi
movb $-0x40, (%rsi)
movl $0x1, %edx
jmp 0x79821
cmpq $0xffff, %rbx           # imm = 0xFFFF
ja 0x79612
movb $-0x26, 0xb(%rsp)
movb %bh, 0xc(%rsp)
movb %bl, 0xd(%rsp)
movl $0x3, %edx
jmp 0x79636
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x660a2
jmp 0x7959c
cvttsd2si %xmm2, %rax
testq %rax, %rax
js 0x79728
cmpq $0x7f, %rax
jg 0x7973f
andb $0x7f, %al
jmp 0x79732
xorl %r15d, %r15d
cmpq %rbx, %r15
jne 0x7959c
movq %r13, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x6659f
movq %rax, %rbx
cmpq $0xf, %rax
jg 0x7970c
movl %ebx, %eax
andb $0xf, %al
orb $-0x70, %al
movb %al, (%rsp)
movl $0x1, %edx
jmp 0x79777
movq %r13, %rdi
callq 0x666bd
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
xorl %ebx, %ebx
testl %eax, %eax
je 0x795d6
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x660a2
incq %rbx
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
jmp 0x795b3
cmpq $0xf, %rbx
jg 0x795ef
andb $0xf, %bl
orb $-0x80, %bl
movb %bl, (%rsp)
movl $0x1, %edx
jmp 0x796a5
cmpq $0xffff, %rbx           # imm = 0xFFFF
jg 0x79682
movb $-0x22, (%rsp)
movb %bh, 0x1(%rsp)
movb %bl, 0x2(%rsp)
movl $0x3, %edx
jmp 0x796a5
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 0x78c94
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
jmp 0x79824
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 0x79660
movl $0x9, %edx
jmp 0x7981e
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
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78c94
movq %r13, %rdi
callq 0x666bd
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
testl %eax, %eax
je 0x79829
incl %ebp
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x662d0
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x7936f
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x7936f
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x67058
testl %eax, %eax
jne 0x796cf
jmp 0x79829
cmpq $0xffff, %rbx           # imm = 0xFFFF
jg 0x79754
movb $-0x24, (%rsp)
movb %bh, 0x1(%rsp)
movb %bl, 0x2(%rsp)
movl $0x3, %edx
jmp 0x79777
cmpq $-0x20, %rax
jl 0x797e2
movb %al, (%rsp)
movl $0x1, %edx
jmp 0x7981e
cmpq $0xff, %rax
jg 0x797f7
movb $-0x34, (%rsp)
jmp 0x797ec
movb $-0x23, (%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
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78c94
testq %rbx, %rbx
je 0x79829
movq %rbx, %r15
incl %ebp
movl $0x1, %ebx
movq %rbx, %xmm1
punpckldq 0x277be(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x277c6(%rip), %xmm1    # 0xa0f70
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movq %r13, %rdi
callq 0x666d1
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x6696e
movq %r13, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x7936f
incq %rbx
cmpq %r15, %rbx
jbe 0x79795
jmp 0x79829
cmpq $-0x80, %rax
jl 0x79805
movb $-0x30, (%rsp)
movb %al, 0x1(%rsp)
movl $0x2, %edx
jmp 0x7981e
cmpq $0xffff, %rax           # imm = 0xFFFF
jg 0x79845
movb $-0x33, (%rsp)
jmp 0x79811
cmpq $-0x8000, %rax          # imm = 0x8000
jl 0x79855
movb $-0x2f, (%rsp)
movb %ah, 0x1(%rsp)
movb %al, 0x2(%rsp)
movl $0x3, %edx
movq %rsp, %rsi
movq %r14, %rdi
callq 0x78c94
movq %r13, %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x660a2
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, %rax
jg 0x79880
movb $-0x32, (%rsp)
jmp 0x79861
cmpq $-0x80000000, %rax      # imm = 0x80000000
jl 0x79886
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 0x79480
movb $-0x31, (%rsp)
jmp 0x7988a
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 0x79678
nopl (%rax)