// File: /workspace/github_c_makefile_star2_O0/BatchLabs[P]msgpack-dump/src/cmp.c
// Function: type_marker_to_cmp_type
static bool type_marker_to_cmp_type(uint8_t type_marker, uint8_t *cmp_type) {
  if (type_marker <= 0x7F) {
    *cmp_type = CMP_TYPE_POSITIVE_FIXNUM;
    return true;
  }

  if (type_marker <= 0x8F) {
    *cmp_type = CMP_TYPE_FIXMAP;
    return true;
  }

  if (type_marker <= 0x9F) {
    *cmp_type = CMP_TYPE_FIXARRAY;
    return true;
  }

  if (type_marker <= 0xBF) {
    *cmp_type = CMP_TYPE_FIXSTR;
    return true;
  }

  if (type_marker >= 0xE0) {
    *cmp_type = CMP_TYPE_NEGATIVE_FIXNUM;
    return true;
  }

  switch (type_marker) {
    case NIL_MARKER:
      *cmp_type = CMP_TYPE_NIL;
      return true;
    case FALSE_MARKER:
      *cmp_type = CMP_TYPE_BOOLEAN;
      return true;
    case TRUE_MARKER:
      *cmp_type = CMP_TYPE_BOOLEAN;
      return true;
    case BIN8_MARKER:
      *cmp_type = CMP_TYPE_BIN8;
      return true;
    case BIN16_MARKER:
      *cmp_type = CMP_TYPE_BIN16;
      return true;
    case BIN32_MARKER:
      *cmp_type = CMP_TYPE_BIN32;
      return true;
    case EXT8_MARKER:
      *cmp_type = CMP_TYPE_EXT8;
      return true;
    case EXT16_MARKER:
      *cmp_type = CMP_TYPE_EXT16;
      return true;
    case EXT32_MARKER:
      *cmp_type = CMP_TYPE_EXT32;
      return true;
    case FLOAT_MARKER:
      *cmp_type = CMP_TYPE_FLOAT;
      return true;
    case DOUBLE_MARKER:
      *cmp_type = CMP_TYPE_DOUBLE;
      return true;
    case U8_MARKER:
      *cmp_type = CMP_TYPE_UINT8;
      return true;
    case U16_MARKER:
      *cmp_type = CMP_TYPE_UINT16;
      return true;
    case U32_MARKER:
      *cmp_type = CMP_TYPE_UINT32;
      return true;
    case U64_MARKER:
      *cmp_type = CMP_TYPE_UINT64;
      return true;
    case S8_MARKER:
      *cmp_type = CMP_TYPE_SINT8;
      return true;
    case S16_MARKER:
      *cmp_type = CMP_TYPE_SINT16;
      return true;
    case S32_MARKER:
      *cmp_type = CMP_TYPE_SINT32;
      return true;
    case S64_MARKER:
      *cmp_type = CMP_TYPE_SINT64;
      return true;
    case FIXEXT1_MARKER:
      *cmp_type = CMP_TYPE_FIXEXT1;
      return true;
    case FIXEXT2_MARKER:
      *cmp_type = CMP_TYPE_FIXEXT2;
      return true;
    case FIXEXT4_MARKER:
      *cmp_type = CMP_TYPE_FIXEXT4;
      return true;
    case FIXEXT8_MARKER:
      *cmp_type = CMP_TYPE_FIXEXT8;
      return true;
    case FIXEXT16_MARKER:
      *cmp_type = CMP_TYPE_FIXEXT16;
      return true;
    case STR8_MARKER:
      *cmp_type = CMP_TYPE_STR8;
      return true;
    case STR16_MARKER:
      *cmp_type = CMP_TYPE_STR16;
      return true;
    case STR32_MARKER:
      *cmp_type = CMP_TYPE_STR32;
      return true;
    case ARRAY16_MARKER:
      *cmp_type = CMP_TYPE_ARRAY16;
      return true;
    case ARRAY32_MARKER:
      *cmp_type = CMP_TYPE_ARRAY32;
      return true;
    case MAP16_MARKER:
      *cmp_type = CMP_TYPE_MAP16;
      return true;
    case MAP32_MARKER:
      *cmp_type = CMP_TYPE_MAP32;
      return true;
    default:
      return false;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %dil, %al
movb %al, -0x2(%rbp)
movq %rsi, -0x10(%rbp)
movzbl -0x2(%rbp), %eax
cmpl $0x7f, %eax
jg 0x5857
movq -0x10(%rbp), %rax
movb $0x0, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movzbl -0x2(%rbp), %eax
cmpl $0x8f, %eax
jg 0x5872
movq -0x10(%rbp), %rax
movb $0x1, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movzbl -0x2(%rbp), %eax
cmpl $0x9f, %eax
jg 0x588d
movq -0x10(%rbp), %rax
movb $0x2, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movzbl -0x2(%rbp), %eax
cmpl $0xbf, %eax
jg 0x58a8
movq -0x10(%rbp), %rax
movb $0x3, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movzbl -0x2(%rbp), %eax
cmpl $0xe0, %eax
jl 0x58c3
movq -0x10(%rbp), %rax
movb $0x22, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movzbl -0x2(%rbp), %eax
addl $0xffffff40, %eax       # imm = 0xFFFFFF40
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x1f, %eax
ja 0x5ac1
movq -0x18(%rbp), %rax
leaq 0x3cd6(%rip), %rcx      # 0x95bc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movb $0x4, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x5, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x5, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x6, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x7, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x8, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x9, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xa, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xb, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xc, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xd, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xe, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0xf, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x10, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x11, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x12, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x13, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x14, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x15, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x16, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x17, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x18, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x19, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1a, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1b, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1c, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1d, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1e, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x1f, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x20, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movq -0x10(%rbp), %rax
movb $0x21, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x5ac5
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
popq %rbp
retq
nopl (%rax)