// File: /workspace/github_c_makefile_star2_O0/pali[P]bmfdec/bmfparse.c
// Function: print_variable_type
static void print_variable_type(FILE *fout, struct mof_variable *variable) {
  char *variable_type = "unknown";
  char *type = NULL;
  switch (variable->variable_type) {
  case MOF_VARIABLE_BASIC:
  case MOF_VARIABLE_BASIC_ARRAY:
    variable_type = "Basic";
    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: type = "unknown"; break;
    }
    break;
  case MOF_VARIABLE_OBJECT:
  case MOF_VARIABLE_OBJECT_ARRAY:
    variable_type = "Object";
    type = variable->type.object;
    break;
  default:
    break;
  }
  fprintf(fout, "%s", variable_type);
  if (type)
    fprintf(fout, ":%s", type);
  if (variable->variable_type == MOF_VARIABLE_BASIC_ARRAY || variable->variable_type == MOF_VARIABLE_OBJECT_ARRAY) {
    fprintf(fout, "[");
    if (variable->has_array_max)
      fprintf(fout, "%d", variable->array_max);
    fprintf(fout, "]");
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x15bd(%rip), %rax      # 0x8554
movq %rax, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x28(%rbp)
subl $0x3, %eax
ja 0x70f1
movq -0x28(%rbp), %rax
leaq 0x1282(%rip), %rcx      # 0x8248
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1c49(%rip), %rax      # 0x8c1f
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x30(%rbp)
subl $0xd, %eax
ja 0x70cb
movq -0x30(%rbp), %rax
leaq 0x125b(%rip), %rcx      # 0x8258
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1862(%rip), %rax      # 0x886f
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1859(%rip), %rax      # 0x8876
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1850(%rip), %rax      # 0x887d
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1847(%rip), %rax      # 0x8884
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x183e(%rip), %rax      # 0x888b
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1835(%rip), %rax      # 0x8892
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x182f(%rip), %rax      # 0x8899
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1829(%rip), %rax      # 0x88a0
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1823(%rip), %rax      # 0x88a7
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x181d(%rip), %rax      # 0x88ae
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1816(%rip), %rax      # 0x88b4
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x180f(%rip), %rax      # 0x88ba
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x180b(%rip), %rax      # 0x88c3
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1805(%rip), %rax      # 0x88ca
movq %rax, -0x20(%rbp)
jmp 0x70d6
leaq 0x1482(%rip), %rax      # 0x8554
movq %rax, -0x20(%rbp)
jmp 0x70f3
leaq 0x1b46(%rip), %rax      # 0x8c25
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x70f3
jmp 0x70f3
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq 0x1b2b(%rip), %rsi      # 0x8c2d
movb $0x0, %al
callq 0x10e0
cmpq $0x0, -0x20(%rbp)
je 0x7126
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x1b0d(%rip), %rsi      # 0x8c2c
movb $0x0, %al
callq 0x10e0
movq -0x10(%rbp), %rax
cmpl $0x3, 0x18(%rax)
je 0x713a
movq -0x10(%rbp), %rax
cmpl $0x4, 0x18(%rax)
jne 0x7181
movq -0x8(%rbp), %rdi
leaq 0x1aeb(%rip), %rsi      # 0x8c30
movb $0x0, %al
callq 0x10e0
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2c(%rax)
je 0x716f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x28(%rax), %edx
leaq 0x1aca(%rip), %rsi      # 0x8c32
movb $0x0, %al
callq 0x10e0
movq -0x8(%rbp), %rdi
leaq 0x1abb(%rip), %rsi      # 0x8c35
movb $0x0, %al
callq 0x10e0
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)