// File: /workspace/github_c_makefile_star2_O0/aerospike[P]aerospike-common/src/main/aerospike/as_msgpack.c
// Function: msgpack_compare_type
static inline msgpack_compare_t
msgpack_compare_type(as_unpacker *pk1, as_unpacker *pk2, as_val_t type,
		size_t depth)
{
	switch (type) {
	case AS_NIL:
		pk1->offset++;
		pk2->offset++;

		break;
	case AS_BOOLEAN: {
		unsigned char byte1 = pk1->buffer[pk1->offset++];
		unsigned char byte2 = pk2->buffer[pk2->offset++];

		if (byte1 < byte2) {
			return MSGPACK_COMPARE_LESS;
		}

		if (byte1 > byte2) {
			return MSGPACK_COMPARE_GREATER;
		}

		break;
	}
	case AS_INTEGER:
		return msgpack_compare_int(pk1, pk2);
	case AS_STRING:
		return msgpack_compare_blob(pk1, pk2);
	case AS_LIST:
		return msgpack_compare_list(pk1, pk2, depth);
	case AS_MAP:
		return msgpack_compare_map(pk1, pk2, depth);
	case AS_BYTES:
		return msgpack_compare_blob(pk1, pk2);
	case AS_DOUBLE:
		return msgpack_compare_double(pk1, pk2);
	case AS_GEOJSON:
		return msgpack_compare_blob(pk1, pk2);
	case AS_CMP_WILDCARD:
	case AS_CMP_INF:
		pk1->offset += 3;
		pk2->offset += 3;
		break;
	default:
		return MSGPACK_COMPARE_ERROR;
	}

	return MSGPACK_COMPARE_EQUAL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq %rcx, -0x28(%rbp)
movzbl -0x19(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0xd, %eax
ja 0x1237a
movq -0x38(%rbp), %rax
leaq 0x150bf(%rip), %rcx     # 0x272f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
jmp 0x12383
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rdx
movl 0x8(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x8(%rdx)
movl %ecx, %ecx
movb (%rax,%rcx), %al
movb %al, -0x29(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x18(%rbp), %rdx
movl 0x8(%rdx), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, 0x8(%rdx)
movl %ecx, %ecx
movb (%rax,%rcx), %al
movb %al, -0x2a(%rbp)
movzbl -0x29(%rbp), %eax
movzbl -0x2a(%rbp), %ecx
cmpl %ecx, %eax
jge 0x122b5
movl $0x0, -0x4(%rbp)
jmp 0x1238a
movzbl -0x29(%rbp), %eax
movzbl -0x2a(%rbp), %ecx
cmpl %ecx, %eax
jle 0x122cd
movl $0x2, -0x4(%rbp)
jmp 0x1238a
jmp 0x12383
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x123a0
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x12430
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x124a0
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x126e0
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x12430
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x129e0
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x12430
movl %eax, -0x4(%rbp)
jmp 0x1238a
movq -0x10(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x3, %ecx
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x3, %ecx
movl %ecx, 0x8(%rax)
jmp 0x12383
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x1238a
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)