// File: /workspace/github_c_makefile_star2_O0/pali[P]bmfdec/bmf2mof.c
// Function: print_variable_type
static void print_variable_type(FILE *fout, struct mof_variable *variable) {
  char *type = NULL;
  switch (variable->variable_type) {
  case MOF_VARIABLE_BASIC:
  case MOF_VARIABLE_BASIC_ARRAY:
    switch (variable->type.basic) {
    case MOF_BASIC_TYPE_STRING: type = "string"; break;
    case MOF_BASIC_TYPE_REAL64: type = "real64"; break;
    case MOF_BASIC_TYPE_REAL32: type = "real32"; break;
    case MOF_BASIC_TYPE_SINT32: type = "sint32"; break;
    case MOF_BASIC_TYPE_UINT32: type = "uint32"; break;
    case MOF_BASIC_TYPE_SINT16: type = "sint16"; break;
    case MOF_BASIC_TYPE_UINT16: type = "uint16"; break;
    case MOF_BASIC_TYPE_SINT64: type = "sint64"; break;
    case MOF_BASIC_TYPE_UINT64: type = "uint64"; break;
    case MOF_BASIC_TYPE_SINT8: type = "sint8"; break;
    case MOF_BASIC_TYPE_UINT8: type = "uint8"; break;
    case MOF_BASIC_TYPE_DATETIME: type = "datetime"; break;
    case MOF_BASIC_TYPE_CHAR16: type = "char16"; break;
    case MOF_BASIC_TYPE_BOOLEAN: type = "boolean"; break;
    default: break;
    }
    break;
  case MOF_VARIABLE_OBJECT:
  case MOF_VARIABLE_OBJECT_ARRAY:
    type = variable->type.object;
    break;
  default:
    break;
  }
  fprintf(fout, "%s", type ? type : "unknown");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x3, %eax
ja 0x76a4
movq -0x20(%rbp), %rax
leaq 0xcad(%rip), %rcx       # 0x8248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0xd, %eax
ja 0x7692
movq -0x28(%rbp), %rax
leaq 0xc91(%rip), %rcx       # 0x8258
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1134(%rip), %rax      # 0x870b
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1590(%rip), %rax      # 0x8b77
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1587(%rip), %rax      # 0x8b7e
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x157e(%rip), %rax      # 0x8b85
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1575(%rip), %rax      # 0x8b8c
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x156f(%rip), %rax      # 0x8b93
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1569(%rip), %rax      # 0x8b9a
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1563(%rip), %rax      # 0x8ba1
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x155d(%rip), %rax      # 0x8ba8
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1557(%rip), %rax      # 0x8baf
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1550(%rip), %rax      # 0x8bb5
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1549(%rip), %rax      # 0x8bbb
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1545(%rip), %rax      # 0x8bc4
movq %rax, -0x18(%rbp)
jmp 0x7694
leaq 0x1059(%rip), %rax      # 0x86e5
movq %rax, -0x18(%rbp)
jmp 0x7694
jmp 0x7694
jmp 0x76a6
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x76a6
jmp 0x76a6
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x76bf
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x76cc
leaq 0xe8e(%rip), %rax       # 0x8554
movq %rax, -0x38(%rbp)
jmp 0x76cc
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x1452(%rip), %rsi      # 0x8b2d
movb $0x0, %al
callq 0x1100
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)