// File: /workspace/github_c_makefile_star2_O0/pali[P]bmfdec/./bmfparse.c
// Function: parse_class_variable
static struct mof_variable parse_class_variable(char *buf, uint32_t size, uint32_t offset) {
  struct mof_variable out;
  memset(&out, 0, sizeof(out));
  uint32_t *buf2 = (uint32_t *)buf;
  if (size < 20) error("Invalid size");
  uint32_t type = buf2[1];
  int is_array;
  switch (type >> 8) {
  case 0x00:
    is_array = 0;
    break;
  case 0x20:
    is_array = 1;
    break;
  default:
    fprintf(stderr, "Warning: unknown variable type 0x%x\n", type);
    fprintf(stderr, "Hexdump:\n");
    dump_bytes(buf, size);
    return out;
  }
  switch (type & 0xFF) {
  case 0x02:
    out.type.basic = MOF_BASIC_TYPE_SINT16;
    break;
  case 0x03:
    out.type.basic = MOF_BASIC_TYPE_SINT32;
    break;
  case 0x04:
    out.type.basic = MOF_BASIC_TYPE_REAL32;
    break;
  case 0x05:
    out.type.basic = MOF_BASIC_TYPE_REAL64;
    break;
  case 0x08:
    out.type.basic = MOF_BASIC_TYPE_STRING;
    break;
  case 0x0B:
    out.type.basic = MOF_BASIC_TYPE_BOOLEAN;
    break;
  case 0x10:
    out.type.basic = MOF_BASIC_TYPE_SINT8;
    break;
  case 0x11:
    out.type.basic = MOF_BASIC_TYPE_UINT8;
    break;
  case 0x12:
    out.type.basic = MOF_BASIC_TYPE_UINT16;
    break;
  case 0x13:
    out.type.basic = MOF_BASIC_TYPE_UINT32;
    break;
  case 0x14:
    out.type.basic = MOF_BASIC_TYPE_SINT64;
    break;
  case 0x15:
    out.type.basic = MOF_BASIC_TYPE_UINT64;
    break;
  case 0x65:
    out.type.basic = MOF_BASIC_TYPE_DATETIME;
    break;
  case 0x67:
    out.type.basic = MOF_BASIC_TYPE_CHAR16;
    break;
  case 0x0D:
    /* object */
    break;
  default:
    fprintf(stderr, "Warning: unknown variable type 0x%x\n", type);
    fprintf(stderr, "Hexdump:\n");
    dump_bytes(buf, size);
    return out;
  }
  if ((type & 0xFF) == 0x0D) {
    if (is_array)
      out.variable_type = MOF_VARIABLE_OBJECT_ARRAY;
    else
      out.variable_type = MOF_VARIABLE_OBJECT;
  } else {
    if (is_array)
      out.variable_type = MOF_VARIABLE_BASIC_ARRAY;
    else
      out.variable_type = MOF_VARIABLE_BASIC;
  }
  if (buf2[2] != 0x0) error("Invalid unknown");
  uint32_t len = buf2[4];
  if (!check_sum(20, len, size)) error("Invalid size");
  uint32_t slen = buf2[3];
  if (slen != 0xFFFFFFFF) {
    if (!check_sum(20, slen, size) || slen > len) error("Invalid size");
    out.name = parse_string(buf+20, slen);
    fprintf(stderr, "Warning: Variable value is not supported yet\n");
    dump_bytes(buf+20+slen, len-slen);
  } else {
    out.name = parse_string(buf+20, len);
  }
  if (!check_sum(20+8, len, size)) error("Invalid size");
  buf2 = (uint32_t *)(buf+20+len);
  uint32_t len1 = buf2[0];
  if (size < 20 || !check_sum(len, len1, size-20)) error("Invalid size");
  uint32_t count = buf2[1];
  uint32_t i;
  char *tmp = buf+20+len+8;
  out.qualifiers = calloc(count, sizeof(*out.qualifiers));
  if (!out.qualifiers) error("calloc failed");
  for (i=0; i<count; ++i) {
    if (tmp-buf <= 20+8 || tmp-buf >= UINT32_MAX) error("Invalid size");
    if (!check_sum(len, len1, UINT32_MAX) || !check_sum(20+8, len+len1, UINT32_MAX) || !check_sum(tmp-buf, 4, 20+len+8+len1)) error("Invalid size"); /* if (tmp+4 > buf+20+len+8+len1) */
    uint32_t len2 = ((uint32_t *)tmp)[0];
    if (len2 == 0 || len2 >= len1) error("Invalid size");
    if (!check_sum(tmp-buf, len2, 20+len+8+len1)) error("Invalid size"); /* if (tmp+len2 > buf+20+len+8+len1) */
    out.qualifiers[out.qualifiers_count] = parse_qualifier(tmp, len2, offset ? offset+tmp-buf : 0);
    if (out.qualifiers[out.qualifiers_count].name) {
      if (out.qualifiers[out.qualifiers_count].type == MOF_QUALIFIER_STRING && strcmp(out.qualifiers[out.qualifiers_count].name, "CIMTYPE") == 0) {
        if (out.variable_type == MOF_VARIABLE_OBJECT || out.variable_type == MOF_VARIABLE_OBJECT_ARRAY) {
          if (strncmp(out.qualifiers[out.qualifiers_count].value.string, "object:", strlen("object:")) != 0)
            error("object without 'object:' in CIMTYPE");
          out.type.object = strdup(out.qualifiers[out.qualifiers_count].value.string + strlen("object:"));
          free(out.qualifiers[out.qualifiers_count].name);
          free(out.qualifiers[out.qualifiers_count].value.string);
        } else {
          char *strtype = out.qualifiers[out.qualifiers_count].value.string;
          enum mof_basic_type basic_type;
          if (strcasecmp(strtype, "String") == 0)
            basic_type = MOF_BASIC_TYPE_STRING;
          else if (strcasecmp(strtype, "Real64") == 0)
            basic_type = MOF_BASIC_TYPE_REAL64;
          else if (strcasecmp(strtype, "Real32") == 0)
            basic_type = MOF_BASIC_TYPE_REAL32;
          else if (strcasecmp(strtype, "SInt32") == 0)
            basic_type = MOF_BASIC_TYPE_SINT32;
          else if (strcasecmp(strtype, "UInt32") == 0)
            basic_type = MOF_BASIC_TYPE_UINT32;
          else if (strcasecmp(strtype, "SInt16") == 0)
            basic_type = MOF_BASIC_TYPE_SINT16;
          else if (strcasecmp(strtype, "UInt16") == 0)
            basic_type = MOF_BASIC_TYPE_UINT16;
          else if (strcasecmp(strtype, "SInt64") == 0)
            basic_type = MOF_BASIC_TYPE_SINT64;
          else if (strcasecmp(strtype, "UInt64") == 0)
            basic_type = MOF_BASIC_TYPE_UINT64;
          else if (strcasecmp(strtype, "SInt8") == 0)
            basic_type = MOF_BASIC_TYPE_SINT8;
          else if (strcasecmp(strtype, "UInt8") == 0)
            basic_type = MOF_BASIC_TYPE_UINT8;
          else if (strcasecmp(strtype, "Datetime") == 0)
            basic_type = MOF_BASIC_TYPE_DATETIME;
          else if (strcasecmp(strtype, "Char16") == 0)
            basic_type = MOF_BASIC_TYPE_CHAR16;
          else if (strcasecmp(strtype, "Boolean") == 0)
            basic_type = MOF_BASIC_TYPE_BOOLEAN;
          else
            error("unknown basic type");
          free(out.qualifiers[out.qualifiers_count].value.string);
          free(out.qualifiers[out.qualifiers_count].name);
          if (basic_type != out.type.basic) error("basic type does not match");
        }
      } else if (out.qualifiers[out.qualifiers_count].type == MOF_QUALIFIER_SINT32 && strcmp(out.qualifiers[out.qualifiers_count].name, "MAX") == 0 && is_array) {
        out.array_max = out.qualifiers[out.qualifiers_count].value.sint32;
        out.has_array_max = 1;
        free(out.qualifiers[out.qualifiers_count].name);
      } else {
        out.qualifiers_count++;
      }
    }
    tmp += len2;
  }
  if (tmp != buf+size) error("Buffer not processed");
  return out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x88(%rbp)
movq %rdi, %rax
movq %rax, -0x80(%rbp)
movq %rsi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl %ecx, -0x10(%rbp)
xorl %esi, %esi
movl $0x30, %edx
callq 0x10c0
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpl $0x14, -0xc(%rbp)
jae 0x4985
jmp 0x494f
movq 0x66a2(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3b1b(%rip), %rsi      # 0x847b
leaq 0x3b58(%rip), %rdx      # 0x84bf
leaq 0x3e6d(%rip), %rcx      # 0x87db
movl $0x116, %r8d            # imm = 0x116
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
shrl $0x8, %eax
movl %eax, -0x8c(%rbp)
testl %eax, %eax
je 0x49ae
jmp 0x49a1
movl -0x8c(%rbp), %eax
subl $0x20, %eax
je 0x49b7
jmp 0x49c0
movl $0x0, -0x20(%rbp)
jmp 0x4a04
movl $0x1, -0x20(%rbp)
jmp 0x4a04
movq 0x6631(%rip), %rax      # 0xaff8
movq (%rax), %rdi
movl -0x1c(%rbp), %edx
leaq 0x3e1c(%rip), %rsi      # 0x87f0
movb $0x0, %al
callq 0x1100
movq 0x6616(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3c98(%rip), %rsi      # 0x8684
movb $0x0, %al
callq 0x1100
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x5790
jmp 0x55fc
movzbl -0x1c(%rbp), %eax
addl $-0x2, %eax
movl %eax, %ecx
movq %rcx, -0x98(%rbp)
subl $0x65, %eax
ja 0x4b34
movq -0x98(%rbp), %rax
leaq 0x3675(%rip), %rcx      # 0x80a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x88(%rbp), %rax
movl $0x6, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x4, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x3, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x2, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x1, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0xe, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0xa, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0xb, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x7, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x5, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x8, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0x9, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0xc, 0x20(%rax)
jmp 0x4b78
movq -0x88(%rbp), %rax
movl $0xd, 0x20(%rax)
jmp 0x4b78
jmp 0x4b78
movq 0x64bd(%rip), %rax      # 0xaff8
movq (%rax), %rdi
movl -0x1c(%rbp), %edx
leaq 0x3ca8(%rip), %rsi      # 0x87f0
movb $0x0, %al
callq 0x1100
movq 0x64a2(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3b24(%rip), %rsi      # 0x8684
movb $0x0, %al
callq 0x1100
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x5790
jmp 0x55fc
movl -0x1c(%rbp), %eax
andl $0xff, %eax
cmpl $0xd, %eax
jne 0x4bab
cmpl $0x0, -0x20(%rbp)
je 0x4b9b
movq -0x88(%rbp), %rax
movl $0x4, 0x18(%rax)
jmp 0x4ba9
movq -0x88(%rbp), %rax
movl $0x2, 0x18(%rax)
jmp 0x4bd1
cmpl $0x0, -0x20(%rbp)
je 0x4bc1
movq -0x88(%rbp), %rax
movl $0x3, 0x18(%rax)
jmp 0x4bcf
movq -0x88(%rbp), %rax
movl $0x1, 0x18(%rax)
jmp 0x4bd1
movq -0x18(%rbp), %rax
cmpl $0x0, 0x8(%rax)
je 0x4c13
jmp 0x4bdd
movq 0x6414(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x388d(%rip), %rsi      # 0x847b
leaq 0x3957(%rip), %rdx      # 0x854c
leaq 0x3bdf(%rip), %rcx      # 0x87db
movl $0x165, %r8d            # imm = 0x165
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x18(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0x24(%rbp)
movl $0xffffffeb, %eax       # imm = 0xFFFFFFEB
cmpl -0x24(%rbp), %eax
jb 0x4c32
movl -0x24(%rbp), %eax
addl $0x14, %eax
cmpl -0xc(%rbp), %eax
jbe 0x4c6a
jmp 0x4c34
movq 0x63bd(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3836(%rip), %rsi      # 0x847b
leaq 0x3873(%rip), %rdx      # 0x84bf
leaq 0x3b88(%rip), %rcx      # 0x87db
movl $0x167, %r8d            # imm = 0x167
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x18(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
je 0x4d24
movl $0xffffffeb, %eax       # imm = 0xFFFFFFEB
cmpl -0x28(%rbp), %eax
jb 0x4c9b
movl -0x28(%rbp), %eax
addl $0x14, %eax
cmpl -0xc(%rbp), %eax
ja 0x4c9b
movl -0x28(%rbp), %eax
cmpl -0x24(%rbp), %eax
jbe 0x4cd3
jmp 0x4c9d
movq 0x6354(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x37cd(%rip), %rsi      # 0x847b
leaq 0x380a(%rip), %rdx      # 0x84bf
leaq 0x3b1f(%rip), %rcx      # 0x87db
movl $0x16a, %r8d            # imm = 0x16A
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x8(%rbp), %rdi
addq $0x14, %rdi
movl -0x28(%rbp), %esi
callq 0x5900
movq %rax, %rcx
movq -0x88(%rbp), %rax
movq %rcx, 0x10(%rax)
movq 0x6300(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3b13(%rip), %rsi      # 0x8815
movb $0x0, %al
callq 0x1100
movq -0x8(%rbp), %rdi
addq $0x14, %rdi
movl -0x28(%rbp), %eax
addq %rax, %rdi
movl -0x24(%rbp), %esi
subl -0x28(%rbp), %esi
callq 0x5790
jmp 0x4d42
movq -0x8(%rbp), %rdi
addq $0x14, %rdi
movl -0x24(%rbp), %esi
callq 0x5900
movq %rax, %rcx
movq -0x88(%rbp), %rax
movq %rcx, 0x10(%rax)
movl $0xffffffe3, %eax       # imm = 0xFFFFFFE3
cmpl -0x24(%rbp), %eax
jb 0x4d57
movl -0x24(%rbp), %eax
addl $0x1c, %eax
cmpl -0xc(%rbp), %eax
jbe 0x4d8f
jmp 0x4d59
movq 0x6298(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3711(%rip), %rsi      # 0x847b
leaq 0x374e(%rip), %rdx      # 0x84bf
leaq 0x3a63(%rip), %rcx      # 0x87db
movl $0x171, %r8d            # imm = 0x171
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x8(%rbp), %rax
addq $0x14, %rax
movl -0x24(%rbp), %ecx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
cmpl $0x14, -0xc(%rbp)
jb 0x4dcd
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
subl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jb 0x4dcd
movl -0x24(%rbp), %eax
addl -0x2c(%rbp), %eax
movl -0xc(%rbp), %ecx
subl $0x14, %ecx
cmpl %ecx, %eax
jbe 0x4e05
jmp 0x4dcf
movq 0x6222(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x369b(%rip), %rsi      # 0x847b
leaq 0x36d8(%rip), %rdx      # 0x84bf
leaq 0x39ed(%rip), %rcx      # 0x87db
movl $0x174, %r8d            # imm = 0x174
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x30(%rbp)
movq -0x8(%rbp), %rax
addq $0x14, %rax
movl -0x24(%rbp), %ecx
addq %rcx, %rax
addq $0x8, %rax
movq %rax, -0x40(%rbp)
movl -0x30(%rbp), %eax
movl %eax, %edi
movl $0x20, %esi
callq 0x10e0
movq %rax, %rcx
movq -0x88(%rbp), %rax
movq %rcx, 0x8(%rax)
cmpq $0x0, 0x8(%rax)
jne 0x4e81
jmp 0x4e4b
movq 0x61a6(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x361f(%rip), %rsi      # 0x847b
leaq 0x36f9(%rip), %rdx      # 0x855c
leaq 0x3971(%rip), %rcx      # 0x87db
movl $0x179, %r8d            # imm = 0x179
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x30(%rbp), %eax
jae 0x55af
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
cmpq $0x1c, %rax
jle 0x4eba
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, %rax
jl 0x4ef2
jmp 0x4ebc
movq 0x6135(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x35ae(%rip), %rsi      # 0x847b
leaq 0x35eb(%rip), %rdx      # 0x84bf
leaq 0x3900(%rip), %rcx      # 0x87db
movl $0x17b, %r8d            # imm = 0x17B
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
subl -0x24(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jb 0x4f5e
movl -0x24(%rbp), %eax
addl -0x2c(%rbp), %eax
cmpl $-0x1, %eax
ja 0x4f5e
movl -0x24(%rbp), %ecx
addl -0x2c(%rbp), %ecx
movl $0xffffffe3, %eax       # imm = 0xFFFFFFE3
cmpl %ecx, %eax
jb 0x4f5e
movl -0x24(%rbp), %eax
addl -0x2c(%rbp), %eax
addl $0x1c, %eax
cmpl $-0x1, %eax
ja 0x4f5e
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
subl %ecx, %eax
cmpl $0x4, %eax
jb 0x4f5e
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
addl $0x4, %eax
movl -0x24(%rbp), %ecx
addl $0x14, %ecx
addl $0x8, %ecx
addl -0x2c(%rbp), %ecx
cmpl %ecx, %eax
jbe 0x4f96
jmp 0x4f60
movq 0x6091(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x350a(%rip), %rsi      # 0x847b
leaq 0x3547(%rip), %rdx      # 0x84bf
leaq 0x385c(%rip), %rcx      # 0x87db
movl $0x17c, %r8d            # imm = 0x17C
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x40(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
je 0x4fad
movl -0x44(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jb 0x4fe5
jmp 0x4faf
movq 0x6042(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x34bb(%rip), %rsi      # 0x847b
leaq 0x34f8(%rip), %rdx      # 0x84bf
leaq 0x380d(%rip), %rcx      # 0x87db
movl $0x17e, %r8d            # imm = 0x17E
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
subl %ecx, %eax
cmpl -0x44(%rbp), %eax
jb 0x501c
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
addl -0x44(%rbp), %eax
movl -0x24(%rbp), %ecx
addl $0x14, %ecx
addl $0x8, %ecx
addl -0x2c(%rbp), %ecx
cmpl %ecx, %eax
jbe 0x5054
jmp 0x501e
movq 0x5fd3(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x344c(%rip), %rsi      # 0x847b
leaq 0x3489(%rip), %rdx      # 0x84bf
leaq 0x379e(%rip), %rcx      # 0x87db
movl $0x17f, %r8d            # imm = 0x17F
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq %rax, -0xb0(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0xa8(%rbp)
movl -0x44(%rbp), %eax
movl %eax, -0x9c(%rbp)
cmpl $0x0, -0x10(%rbp)
je 0x50a5
movl -0x10(%rbp), %ecx
movq -0x40(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0xb8(%rbp)
jmp 0x50b0
xorl %eax, %eax
movq %rax, -0xb8(%rbp)
jmp 0x50b0
movl -0x9c(%rbp), %edx
movq -0xa8(%rbp), %rsi
movq -0xb8(%rbp), %rax
movl %eax, %ecx
leaq -0x68(%rbp), %rdi
callq 0x40a0
movq -0xb0(%rbp), %rax
movq -0x88(%rbp), %rcx
movq -0x68(%rbp), %rdx
movq %rdx, (%rax)
movq -0x60(%rbp), %rdx
movq %rdx, 0x8(%rax)
movq -0x58(%rbp), %rdx
movq %rdx, 0x10(%rax)
movq -0x50(%rbp), %rdx
movq %rdx, 0x18(%rax)
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x5591
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
cmpl $0x3, (%rax)
jne 0x5501
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
leaq 0x3717(%rip), %rsi      # 0x8867
callq 0x10f0
cmpl $0x0, %eax
jne 0x5501
movq -0x88(%rbp), %rax
cmpl $0x2, 0x18(%rax)
je 0x517c
movq -0x88(%rbp), %rax
cmpl $0x4, 0x18(%rax)
jne 0x5246
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
leaq 0x36a8(%rip), %rsi      # 0x8843
movl $0x7, %edx
callq 0x1060
cmpl $0x0, %eax
je 0x51e2
jmp 0x51ac
movq 0x5e45(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x32be(%rip), %rsi      # 0x847b
leaq 0x3687(%rip), %rdx      # 0x884b
leaq 0x3610(%rip), %rcx      # 0x87db
movl $0x185, %r8d            # imm = 0x185
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
addq $0x7, %rdi
callq 0x1190
movq -0x88(%rbp), %rcx
movq %rax, 0x20(%rcx)
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0x1030
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
callq 0x1030
jmp 0x54fc
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
leaq 0x3602(%rip), %rsi      # 0x886f
callq 0x1040
cmpl $0x0, %eax
jne 0x5283
movl $0x1, -0x74(%rbp)
jmp 0x5479
movq -0x70(%rbp), %rdi
leaq 0x35e8(%rip), %rsi      # 0x8876
callq 0x1040
cmpl $0x0, %eax
jne 0x52a4
movl $0x2, -0x74(%rbp)
jmp 0x5477
movq -0x70(%rbp), %rdi
leaq 0x35ce(%rip), %rsi      # 0x887d
callq 0x1040
cmpl $0x0, %eax
jne 0x52c5
movl $0x3, -0x74(%rbp)
jmp 0x5475
movq -0x70(%rbp), %rdi
leaq 0x35b4(%rip), %rsi      # 0x8884
callq 0x1040
cmpl $0x0, %eax
jne 0x52e6
movl $0x4, -0x74(%rbp)
jmp 0x5473
movq -0x70(%rbp), %rdi
leaq 0x359a(%rip), %rsi      # 0x888b
callq 0x1040
cmpl $0x0, %eax
jne 0x5307
movl $0x5, -0x74(%rbp)
jmp 0x5471
movq -0x70(%rbp), %rdi
leaq 0x3580(%rip), %rsi      # 0x8892
callq 0x1040
cmpl $0x0, %eax
jne 0x5328
movl $0x6, -0x74(%rbp)
jmp 0x546f
movq -0x70(%rbp), %rdi
leaq 0x3566(%rip), %rsi      # 0x8899
callq 0x1040
cmpl $0x0, %eax
jne 0x5349
movl $0x7, -0x74(%rbp)
jmp 0x546d
movq -0x70(%rbp), %rdi
leaq 0x354c(%rip), %rsi      # 0x88a0
callq 0x1040
cmpl $0x0, %eax
jne 0x536a
movl $0x8, -0x74(%rbp)
jmp 0x546b
movq -0x70(%rbp), %rdi
leaq 0x3532(%rip), %rsi      # 0x88a7
callq 0x1040
cmpl $0x0, %eax
jne 0x538b
movl $0x9, -0x74(%rbp)
jmp 0x5469
movq -0x70(%rbp), %rdi
leaq 0x3518(%rip), %rsi      # 0x88ae
callq 0x1040
cmpl $0x0, %eax
jne 0x53ac
movl $0xa, -0x74(%rbp)
jmp 0x5467
movq -0x70(%rbp), %rdi
leaq 0x34fd(%rip), %rsi      # 0x88b4
callq 0x1040
cmpl $0x0, %eax
jne 0x53cd
movl $0xb, -0x74(%rbp)
jmp 0x5465
movq -0x70(%rbp), %rdi
leaq 0x34e2(%rip), %rsi      # 0x88ba
callq 0x1040
cmpl $0x0, %eax
jne 0x53eb
movl $0xc, -0x74(%rbp)
jmp 0x5463
movq -0x70(%rbp), %rdi
leaq 0x34cd(%rip), %rsi      # 0x88c3
callq 0x1040
cmpl $0x0, %eax
jne 0x5409
movl $0xd, -0x74(%rbp)
jmp 0x5461
movq -0x70(%rbp), %rdi
leaq 0x34b6(%rip), %rsi      # 0x88ca
callq 0x1040
cmpl $0x0, %eax
jne 0x5427
movl $0xe, -0x74(%rbp)
jmp 0x545f
jmp 0x5429
movq 0x5bc8(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x3041(%rip), %rsi      # 0x847b
leaq 0x3491(%rip), %rdx      # 0x88d2
leaq 0x3393(%rip), %rcx      # 0x87db
movl $0x1a9, %r8d            # imm = 0x1A9
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x5461
jmp 0x5463
jmp 0x5465
jmp 0x5467
jmp 0x5469
jmp 0x546b
jmp 0x546d
jmp 0x546f
jmp 0x5471
jmp 0x5473
jmp 0x5475
jmp 0x5477
jmp 0x5479
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rdi
callq 0x1030
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0x1030
movq -0x88(%rbp), %rcx
movl -0x74(%rbp), %eax
cmpl 0x20(%rcx), %eax
je 0x54fa
jmp 0x54c4
movq 0x5b2d(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x2fa6(%rip), %rsi      # 0x847b
leaq 0x3409(%rip), %rdx      # 0x88e5
leaq 0x32f8(%rip), %rcx      # 0x87db
movl $0x1ac, %r8d            # imm = 0x1AC
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x54fc
jmp 0x558f
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
cmpl $0x2, (%rax)
jne 0x557f
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
leaq 0x33c6(%rip), %rsi      # 0x88ff
callq 0x10f0
cmpl $0x0, %eax
jne 0x557f
cmpl $0x0, -0x20(%rbp)
je 0x557f
movq -0x88(%rbp), %rcx
movq 0x8(%rcx), %rax
movl (%rcx), %edx
shlq $0x5, %rdx
addq %rdx, %rax
movl 0x18(%rax), %eax
movl %eax, 0x28(%rcx)
movb $0x1, 0x2c(%rcx)
movq 0x8(%rcx), %rax
movl (%rcx), %ecx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
callq 0x1030
jmp 0x558d
movq -0x88(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
jmp 0x558f
jmp 0x5591
movl -0x44(%rbp), %ecx
movq -0x40(%rbp), %rax
movl %ecx, %ecx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x4e88
movq -0x40(%rbp), %rax
movq -0x8(%rbp), %rcx
movl -0xc(%rbp), %edx
addq %rdx, %rcx
cmpq %rcx, %rax
je 0x55fa
jmp 0x55c4
movq 0x5a2d(%rip), %rax      # 0xaff8
movq (%rax), %rdi
leaq 0x2ea6(%rip), %rsi      # 0x847b
leaq 0x2f8e(%rip), %rdx      # 0x856a
leaq 0x31f8(%rip), %rcx      # 0x87db
movl $0x1b8, %r8d            # imm = 0x1B8
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x55fc
movq -0x80(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)