
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00021d80) */
/* WARNING: Unknown calling convention */

void ecoff_directive_type(int ignore)

{
  tq_t tVar1;
  uint uVar2;
  char *format;
  tq_t *ptVar3;
  tq_t *ptVar4;
  char *pcVar5;
  tq_t *ptVar6;
  uint uVar7;
  tq_t *ptVar8;
  ulonglong uVar9;
  
  if (coff_sym_name == (char *)0x0) {
    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);
    as_warn(pcVar5);
    demand_empty_rest_of_line();
    return;
  }
  uVar9 = get_absolute_expression();
  uVar2 = (uint)uVar9;
  ptVar6 = coff_type.type_qualifiers + 5;
  coff_type.orig_type = uVar2 & 0xf;
  coff_type.basic_type = map_coff_types[coff_type.orig_type];
  if ((uVar9 & 0xfffffff0) == 0) {
LAB_00021d72:
    coff_type.type_qualifiers[0] = tq_Nil;
    ptVar4 = coff_type.type_qualifiers + 1;
  }
  else {
    do {
      uVar7 = uVar2 & 0x30;
      if (uVar7 == 0x10) {
        *ptVar6 = tq_Ptr;
      }
      else if (uVar7 == 0x20) {
        *ptVar6 = tq_Proc;
      }
      else {
        if (uVar7 != 0x30) {
          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);
                    /* WARNING: Subroutine does not return */
          as_fatal(pcVar5);
        }
        *ptVar6 = tq_Array;
      }
      pcVar5 = coff_sym_name;
      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;
      uVar2 = uVar2 & 0xf | uVar7;
      if (uVar7 == 0) {
        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;
        goto LAB_00021d0b;
      }
      ptVar6 = ptVar6 + -1;
    } while (ptVar6 != (tq_t *)&coff_type.bitfield);
    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);
    ptVar6 = coff_type.type_qualifiers;
    as_warn(format,pcVar5);
LAB_00021d0b:
    ptVar4 = ptVar6;
    ptVar8 = coff_type.type_qualifiers;
    do {
      ptVar3 = ptVar4 + 1;
      tVar1 = *ptVar4;
      *ptVar8 = tVar1;
      ptVar4 = ptVar3;
      ptVar8 = ptVar8 + 1;
    } while (ptVar3 != coff_type.dimensions);
    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);
    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;
    if (tVar1 == tq_Proc) {
      coff_is_function = 1;
      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;
    }
    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;
  }
  do {
    ptVar6 = ptVar4 + 1;
    *ptVar4 = tq_Nil;
    ptVar4 = ptVar6;
  } while (ptVar6 != coff_type.dimensions);
LAB_00021d4e:
  demand_empty_rest_of_line();
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00021d80) */

void FUN_00021c20(void)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 *puVar6;
  int *piVar8;
  uint uVar9;
  int *piVar10;
  int *piVar5;
  undefined4 *puVar7;
  
  if (DAT_000809d0 == 0) {
    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);
    FUN_00031540(uVar3);
    FUN_00033c40();
    return;
  }
  uVar2 = FUN_00032f30();
  piVar8 = &DAT_00080994;
  DAT_00080964 = uVar2 & 0xf;
  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);
  if ((uVar2 & 0xfffffff0) == 0) {
LAB_00021d72:
    DAT_00080980 = 0;
    puVar6 = &DAT_00080984;
  }
  else {
    do {
      uVar9 = uVar2 & 0x30;
      if (uVar9 == 0x10) {
        *piVar8 = 1;
      }
      else if (uVar9 == 0x20) {
        *piVar8 = 2;
      }
      else {
        if (uVar9 != 0x30) {
          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);
                    /* WARNING: Subroutine does not return */
          FUN_000316c0(uVar3);
        }
        *piVar8 = 3;
      }
      iVar1 = DAT_000809d0;
      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;
      uVar2 = uVar2 & 0xf | uVar9;
      if (uVar9 == 0) {
        if (piVar8 == &DAT_00080998) goto LAB_00021d72;
        goto LAB_00021d0b;
      }
      piVar8 = piVar8 + -1;
    } while (piVar8 != &DAT_0008097c);
    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);
    piVar8 = &DAT_00080980;
    FUN_00031540(uVar3,iVar1);
LAB_00021d0b:
    piVar4 = piVar8;
    piVar10 = &DAT_00080980;
    do {
      piVar5 = piVar4 + 1;
      iVar1 = *piVar4;
      *piVar10 = iVar1;
      piVar4 = piVar5;
      piVar10 = piVar10 + 1;
    } while (piVar5 != &DAT_00080998);
    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);
    if (puVar6 == &DAT_00080980) goto LAB_00021d72;
    if (iVar1 == 2) {
      DAT_0008094c = 1;
      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;
    }
    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;
  }
  do {
    puVar7 = puVar6 + 1;
    *puVar6 = 0;
    puVar6 = puVar7;
  } while (puVar7 != &DAT_00080998);
LAB_00021d4e:
  FUN_00033c40();
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016070
ADD EBX,0x563d7
SUB ESP,0xc
MOV ESI,dword ptr [EBX + 0x89d0]
TEST ESI,ESI
JZ 0x00021da0
CALL 0x00032f30
LEA EDI,[EBX + 0x897c]
LEA ECX,[EBX + 0x8994]
MOV EDX,EAX
AND EDX,0xf
MOV dword ptr [EBX + 0x8964],EDX
MOV EDX,dword ptr [EBX + EDX*0x4 + 0xfffe0720]
MOV dword ptr [EBX + 0x8960],EDX
TEST EAX,0xfffffff0
JNZ 0x00021cad
JMP 0x00021d5b
CMP EDX,0x20
JZ 0x00021cc8
CMP EDX,0x30
JNZ 0x00021de8
MOV dword ptr [ECX],0x3
MOV ESI,ECX
MOV EDX,EAX
AND EAX,0xf
SAR EDX,0x2
AND EDX,0xfffffff0
OR EAX,EDX
TEST EAX,0xfffffff0
JZ 0x00021dd0
SUB ECX,0x4
CMP ECX,EDI
JZ 0x00021cd8
MOV EDX,EAX
AND EDX,0x30
CMP EDX,0x10
JNZ 0x00021c78
MOV ESI,ECX
MOV dword ptr [ECX],0x1
JMP 0x00021c8e
MOV ESI,ECX
MOV dword ptr [ECX],0x2
JMP 0x00021c8e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdff38]
MOV ESI,dword ptr [EBX + 0x89d0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
LEA ESI,[EBX + 0x8980]
MOV EDI,ESI
CALL 0x00031540
ADD ESP,0x10
LEA EDX,[EBX + 0x8998]
MOV EAX,ESI
MOV EBP,EDI
NOP
ADD EAX,0x4
MOV ECX,dword ptr [EAX + -0x4]
ADD EBP,0x4
MOV dword ptr [EBP + -0x4],ECX
CMP EAX,EDX
JNZ 0x00021d10
LEA EAX,[EDX + -0x4]
SUB EAX,ESI
SHR EAX,0x2
LEA EAX,[EDI + EAX*0x4 + 0x4]
CMP EAX,EDI
JZ 0x00021d70
CMP ECX,0x2
JZ 0x00021d88
CMP EAX,EDX
JZ 0x00021d4e
LEA ESI,[ESI]
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],0x0
CMP EAX,EDX
JNZ 0x00021d40
CALL 0x00033c40
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EDI,[EBX + 0x8980]
LEA EDX,[EBX + 0x8998]
LEA ESI,[ESI]
NOP
MOV EAX,EDI
ADD EAX,0x4
MOV dword ptr [EAX + -0x4],0x0
CMP EAX,EDX
JNZ 0x00021d40
JMP 0x00021d4e
MOV dword ptr [EBX + 0x894c],0x1
MOV dword ptr [EAX + -0x4],0x0
CMP EAX,EDX
JNZ 0x00021d40
JMP 0x00021d4e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdff00]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
CALL 0x00033c40
ADD ESP,0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EDX,[EBX + 0x8998]
LEA EDI,[EBX + 0x8980]
CMP ECX,EDX
JNZ 0x00021d0b
MOV EAX,EDI
JMP 0x00021d72
PUSH EAX
LEA EAX,[EBX + 0xfffdfb11]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x000316c0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00021d80) */\n\nvoid FUN_00021c20(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}\n\n" comment comment (function_definition "void FUN_00021c20(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" primitive_type (function_declarator "FUN_00021c20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (if_statement "if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" if (parenthesized_expression "(DAT_000809d0 == 0)" ( (binary_expression "DAT_000809d0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);" (assignment_expression "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier = (call_expression "dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier (argument_list "(0,".type pseudo-op used outside of .def/.endef; ignored",5)" ( number_literal , (string_literal "".type pseudo-op used outside of .def/.endef; ignored"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar3);" (call_expression "FUN_00031540(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = FUN_00032f30();" (assignment_expression "uVar2 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8 = &DAT_00080994;" (assignment_expression "piVar8 = &DAT_00080994" identifier = (pointer_expression "&DAT_00080994" & identifier)) ;) (expression_statement "DAT_00080964 = uVar2 & 0xf;" (assignment_expression "DAT_00080964 = uVar2 & 0xf" identifier = (binary_expression "uVar2 & 0xf" identifier & number_literal)) ;) (expression_statement "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);" (assignment_expression "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" * (cast_expression "(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00058720 + DAT_00080964 * 4)" ( (binary_expression "&DAT_00058720 + DAT_00080964 * 4" (pointer_expression "&DAT_00058720" & identifier) + (binary_expression "DAT_00080964 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" if (parenthesized_expression "((uVar2 & 0xfffffff0) == 0)" ( (binary_expression "(uVar2 & 0xfffffff0) == 0" (parenthesized_expression "(uVar2 & 0xfffffff0)" ( (binary_expression "uVar2 & 0xfffffff0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }" { (labeled_statement "LAB_00021d72:\n    DAT_00080980 = 0;" statement_identifier : (expression_statement "DAT_00080980 = 0;" (assignment_expression "DAT_00080980 = 0" identifier = number_literal) ;)) (expression_statement "puVar6 = &DAT_00080984;" (assignment_expression "puVar6 = &DAT_00080984" identifier = (pointer_expression "&DAT_00080984" & identifier)) ;) }) (else_clause "else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" else (compound_statement "{\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" { (do_statement "do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);" do (compound_statement "{\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    }" { (expression_statement "uVar9 = uVar2 & 0x30;" (assignment_expression "uVar9 = uVar2 & 0x30" identifier = (binary_expression "uVar2 & 0x30" identifier & number_literal)) ;) (if_statement "if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" if (parenthesized_expression "(uVar9 == 0x10)" ( (binary_expression "uVar9 == 0x10" identifier == number_literal) )) (compound_statement "{\n        *piVar8 = 1;\n      }" { (expression_statement "*piVar8 = 1;" (assignment_expression "*piVar8 = 1" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" else (if_statement "if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" if (parenthesized_expression "(uVar9 == 0x20)" ( (binary_expression "uVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n        *piVar8 = 2;\n      }" { (expression_statement "*piVar8 = 2;" (assignment_expression "*piVar8 = 2" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" else (compound_statement "{\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" { (if_statement "if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }" if (parenthesized_expression "(uVar9 != 0x30)" ( (binary_expression "uVar9 != 0x30" identifier != number_literal) )) (compound_statement "{\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          FUN_000316c0(uVar3);\n        }" { (expression_statement "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier = (call_expression "dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier (argument_list "(0,"Unrecognized .type argument",5,uVar2)" ( number_literal , (string_literal ""Unrecognized .type argument"" " string_content ") , number_literal , identifier )))) ;) comment (expression_statement "FUN_000316c0(uVar3);" (call_expression "FUN_000316c0(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) })) (expression_statement "*piVar8 = 3;" (assignment_expression "*piVar8 = 3" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }))))) (expression_statement "iVar1 = DAT_000809d0;" (assignment_expression "iVar1 = DAT_000809d0" identifier = identifier) ;) (expression_statement "uVar9 = (int)uVar2 >> 2 & 0xfffffff0;" (assignment_expression "uVar9 = (int)uVar2 >> 2 & 0xfffffff0" identifier = (binary_expression "(int)uVar2 >> 2 & 0xfffffff0" (binary_expression "(int)uVar2 >> 2" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar2 = uVar2 & 0xf | uVar9;" (assignment_expression "uVar2 = uVar2 & 0xf | uVar9" identifier = (binary_expression "uVar2 & 0xf | uVar9" (binary_expression "uVar2 & 0xf" identifier & number_literal) | identifier)) ;) (if_statement "if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" { (if_statement "if (piVar8 == &DAT_00080998) goto LAB_00021d72;" if (parenthesized_expression "(piVar8 == &DAT_00080998)" ( (binary_expression "piVar8 == &DAT_00080998" identifier == (pointer_expression "&DAT_00080998" & identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (goto_statement "goto LAB_00021d0b;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + -1;" (assignment_expression "piVar8 = piVar8 + -1" identifier = (binary_expression "piVar8 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != &DAT_0008097c)" ( (binary_expression "piVar8 != &DAT_0008097c" identifier != (pointer_expression "&DAT_0008097c" & identifier)) )) ;) (expression_statement "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);" (assignment_expression "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier = (call_expression "dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier (argument_list "(0,"the type of %s is too complex; it will be simplified",5)" ( number_literal , (string_literal ""the type of %s is too complex; it will be simplified"" " string_content ") , number_literal )))) ;) (expression_statement "piVar8 = &DAT_00080980;" (assignment_expression "piVar8 = &DAT_00080980" identifier = (pointer_expression "&DAT_00080980" & identifier)) ;) (expression_statement "FUN_00031540(uVar3,iVar1);" (call_expression "FUN_00031540(uVar3,iVar1)" identifier (argument_list "(uVar3,iVar1)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00021d0b:\n    piVar4 = piVar8;" statement_identifier : (expression_statement "piVar4 = piVar8;" (assignment_expression "piVar4 = piVar8" identifier = identifier) ;)) (expression_statement "piVar10 = &DAT_00080980;" (assignment_expression "piVar10 = &DAT_00080980" identifier = (pointer_expression "&DAT_00080980" & identifier)) ;) (do_statement "do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);" do (compound_statement "{\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    }" { (expression_statement "piVar5 = piVar4 + 1;" (assignment_expression "piVar5 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *piVar4;" (assignment_expression "iVar1 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*piVar10 = iVar1;" (assignment_expression "*piVar10 = iVar1" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != &DAT_00080998)" ( (binary_expression "piVar5 != &DAT_00080998" identifier != (pointer_expression "&DAT_00080998" & identifier)) )) ;) (expression_statement "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);" (assignment_expression "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318)" identifier = (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101318)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)piVar8 + 0x101318)" ( (binary_expression "-(int)piVar8 + 0x101318" (unary_expression "-(int)piVar8" - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) (if_statement "if (puVar6 == &DAT_00080980) goto LAB_00021d72;" if (parenthesized_expression "(puVar6 == &DAT_00080980)" ( (binary_expression "puVar6 == &DAT_00080980" identifier == (pointer_expression "&DAT_00080980" & identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (if_statement "if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" { (expression_statement "DAT_0008094c = 1;" (assignment_expression "DAT_0008094c = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0;" (assignment_expression "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0" (pointer_expression "*(undefined4 *)(-(int)piVar8 + 0x101314)" * (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101314)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)piVar8 + 0x101314)" ( (binary_expression "-(int)piVar8 + 0x101314" (unary_expression "-(int)piVar8" - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) = number_literal) ;) })) (if_statement "if (puVar6 == &DAT_00080998) goto LAB_00021d4e;" if (parenthesized_expression "(puVar6 == &DAT_00080998)" ( (binary_expression "puVar6 == &DAT_00080998" identifier == (pointer_expression "&DAT_00080998" & identifier)) )) (goto_statement "goto LAB_00021d4e;" goto statement_identifier ;)) }))) (do_statement "do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);" do (compound_statement "{\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  }" { (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != &DAT_00080998)" ( (binary_expression "puVar7 != &DAT_00080998" identifier != (pointer_expression "&DAT_00080998" & identifier)) )) ;) (labeled_statement "LAB_00021d4e:\n  FUN_00033c40();" statement_identifier : (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00021d80) */\n/* WARNING: Unknown calling convention */\n\nvoid ecoff_directive_type(int ignore)\n\n{\n  tq_t tVar1;\n  uint uVar2;\n  char *format;\n  tq_t *ptVar3;\n  tq_t *ptVar4;\n  char *pcVar5;\n  tq_t *ptVar6;\n  uint uVar7;\n  tq_t *ptVar8;\n  ulonglong uVar9;\n  \n  if (coff_sym_name == (char *)0x0) {\n    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    as_warn(pcVar5);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = get_absolute_expression();\n  uVar2 = (uint)uVar9;\n  ptVar6 = coff_type.type_qualifiers + 5;\n  coff_type.orig_type = uVar2 & 0xf;\n  coff_type.basic_type = map_coff_types[coff_type.orig_type];\n  if ((uVar9 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;\n    ptVar4 = coff_type.type_qualifiers + 1;\n  }\n  else {\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }\n  do {\n    ptVar6 = ptVar4 + 1;\n    *ptVar4 = tq_Nil;\n    ptVar4 = ptVar6;\n  } while (ptVar6 != coff_type.dimensions);\nLAB_00021d4e:\n  demand_empty_rest_of_line();\n  return;\n}\n\n" comment comment comment (function_definition "void ecoff_directive_type(int ignore)\n\n{\n  tq_t tVar1;\n  uint uVar2;\n  char *format;\n  tq_t *ptVar3;\n  tq_t *ptVar4;\n  char *pcVar5;\n  tq_t *ptVar6;\n  uint uVar7;\n  tq_t *ptVar8;\n  ulonglong uVar9;\n  \n  if (coff_sym_name == (char *)0x0) {\n    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    as_warn(pcVar5);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = get_absolute_expression();\n  uVar2 = (uint)uVar9;\n  ptVar6 = coff_type.type_qualifiers + 5;\n  coff_type.orig_type = uVar2 & 0xf;\n  coff_type.basic_type = map_coff_types[coff_type.orig_type];\n  if ((uVar9 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;\n    ptVar4 = coff_type.type_qualifiers + 1;\n  }\n  else {\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }\n  do {\n    ptVar6 = ptVar4 + 1;\n    *ptVar4 = tq_Nil;\n    ptVar4 = ptVar6;\n  } while (ptVar6 != coff_type.dimensions);\nLAB_00021d4e:\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "ecoff_directive_type(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  tq_t tVar1;\n  uint uVar2;\n  char *format;\n  tq_t *ptVar3;\n  tq_t *ptVar4;\n  char *pcVar5;\n  tq_t *ptVar6;\n  uint uVar7;\n  tq_t *ptVar8;\n  ulonglong uVar9;\n  \n  if (coff_sym_name == (char *)0x0) {\n    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    as_warn(pcVar5);\n    demand_empty_rest_of_line();\n    return;\n  }\n  uVar9 = get_absolute_expression();\n  uVar2 = (uint)uVar9;\n  ptVar6 = coff_type.type_qualifiers + 5;\n  coff_type.orig_type = uVar2 & 0xf;\n  coff_type.basic_type = map_coff_types[coff_type.orig_type];\n  if ((uVar9 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;\n    ptVar4 = coff_type.type_qualifiers + 1;\n  }\n  else {\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }\n  do {\n    ptVar6 = ptVar4 + 1;\n    *ptVar4 = tq_Nil;\n    ptVar4 = ptVar6;\n  } while (ptVar6 != coff_type.dimensions);\nLAB_00021d4e:\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "tq_t tVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "tq_t *ptVar3;" type_identifier (pointer_declarator "*ptVar3" * identifier) ;) (declaration "tq_t *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "tq_t *ptVar6;" type_identifier (pointer_declarator "*ptVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "tq_t *ptVar8;" type_identifier (pointer_declarator "*ptVar8" * identifier) ;) (declaration "ulonglong uVar9;" type_identifier identifier ;) (if_statement "if (coff_sym_name == (char *)0x0) {\n    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    as_warn(pcVar5);\n    demand_empty_rest_of_line();\n    return;\n  }" if (parenthesized_expression "(coff_sym_name == (char *)0x0)" ( (binary_expression "coff_sym_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    as_warn(pcVar5);\n    demand_empty_rest_of_line();\n    return;\n  }" { (expression_statement "pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier = (cast_expression "(char *)dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier (argument_list "(0,".type pseudo-op used outside of .def/.endef; ignored",5)" ( number_literal , (string_literal "".type pseudo-op used outside of .def/.endef; ignored"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5);" (call_expression "as_warn(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar9 = get_absolute_expression();" (assignment_expression "uVar9 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (uint)uVar9;" (assignment_expression "uVar2 = (uint)uVar9" identifier = (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "ptVar6 = coff_type.type_qualifiers + 5;" (assignment_expression "ptVar6 = coff_type.type_qualifiers + 5" identifier = (binary_expression "coff_type.type_qualifiers + 5" (field_expression "coff_type.type_qualifiers" identifier . field_identifier) + number_literal)) ;) (expression_statement "coff_type.orig_type = uVar2 & 0xf;" (assignment_expression "coff_type.orig_type = uVar2 & 0xf" (field_expression "coff_type.orig_type" identifier . field_identifier) = (binary_expression "uVar2 & 0xf" identifier & number_literal)) ;) (expression_statement "coff_type.basic_type = map_coff_types[coff_type.orig_type];" (assignment_expression "coff_type.basic_type = map_coff_types[coff_type.orig_type]" (field_expression "coff_type.basic_type" identifier . field_identifier) = (subscript_expression "map_coff_types[coff_type.orig_type]" identifier [ (field_expression "coff_type.orig_type" identifier . field_identifier) ])) ;) (if_statement "if ((uVar9 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;\n    ptVar4 = coff_type.type_qualifiers + 1;\n  }\n  else {\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }" if (parenthesized_expression "((uVar9 & 0xfffffff0) == 0)" ( (binary_expression "(uVar9 & 0xfffffff0) == 0" (parenthesized_expression "(uVar9 & 0xfffffff0)" ( (binary_expression "uVar9 & 0xfffffff0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;\n    ptVar4 = coff_type.type_qualifiers + 1;\n  }" { (labeled_statement "LAB_00021d72:\n    coff_type.type_qualifiers[0] = tq_Nil;" statement_identifier : (expression_statement "coff_type.type_qualifiers[0] = tq_Nil;" (assignment_expression "coff_type.type_qualifiers[0] = tq_Nil" (subscript_expression "coff_type.type_qualifiers[0]" (field_expression "coff_type.type_qualifiers" identifier . field_identifier) [ number_literal ]) = identifier) ;)) (expression_statement "ptVar4 = coff_type.type_qualifiers + 1;" (assignment_expression "ptVar4 = coff_type.type_qualifiers + 1" identifier = (binary_expression "coff_type.type_qualifiers + 1" (field_expression "coff_type.type_qualifiers" identifier . field_identifier) + number_literal)) ;) }) (else_clause "else {\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }" else (compound_statement "{\n    do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);\n    format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    ptVar6 = coff_type.type_qualifiers;\n    as_warn(format,pcVar5);\nLAB_00021d0b:\n    ptVar4 = ptVar6;\n    ptVar8 = coff_type.type_qualifiers;\n    do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);\n    ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);\n    if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;\n    if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }\n    if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;\n  }" { (do_statement "do {\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    } while (ptVar6 != (tq_t *)&coff_type.bitfield);" do (compound_statement "{\n      uVar7 = uVar2 & 0x30;\n      if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }\n      pcVar5 = coff_sym_name;\n      uVar7 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar7;\n      if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      ptVar6 = ptVar6 + -1;\n    }" { (expression_statement "uVar7 = uVar2 & 0x30;" (assignment_expression "uVar7 = uVar2 & 0x30" identifier = (binary_expression "uVar2 & 0x30" identifier & number_literal)) ;) (if_statement "if (uVar7 == 0x10) {\n        *ptVar6 = tq_Ptr;\n      }\n      else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }" if (parenthesized_expression "(uVar7 == 0x10)" ( (binary_expression "uVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n        *ptVar6 = tq_Ptr;\n      }" { (expression_statement "*ptVar6 = tq_Ptr;" (assignment_expression "*ptVar6 = tq_Ptr" (pointer_expression "*ptVar6" * identifier) = identifier) ;) }) (else_clause "else if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }" else (if_statement "if (uVar7 == 0x20) {\n        *ptVar6 = tq_Proc;\n      }\n      else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }" if (parenthesized_expression "(uVar7 == 0x20)" ( (binary_expression "uVar7 == 0x20" identifier == number_literal) )) (compound_statement "{\n        *ptVar6 = tq_Proc;\n      }" { (expression_statement "*ptVar6 = tq_Proc;" (assignment_expression "*ptVar6 = tq_Proc" (pointer_expression "*ptVar6" * identifier) = identifier) ;) }) (else_clause "else {\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }" else (compound_statement "{\n        if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }\n        *ptVar6 = tq_Array;\n      }" { (if_statement "if (uVar7 != 0x30) {\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }" if (parenthesized_expression "(uVar7 != 0x30)" ( (binary_expression "uVar7 != 0x30" identifier != number_literal) )) (compound_statement "{\n          pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    /* WARNING: Subroutine does not return */\n          as_fatal(pcVar5);\n        }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier = (cast_expression "(char *)dcgettext(0,"Unrecognized .type argument",5,uVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier (argument_list "(0,"Unrecognized .type argument",5,uVar2)" ( number_literal , (string_literal ""Unrecognized .type argument"" " string_content ") , number_literal , identifier ))))) ;) comment (expression_statement "as_fatal(pcVar5);" (call_expression "as_fatal(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) (expression_statement "*ptVar6 = tq_Array;" (assignment_expression "*ptVar6 = tq_Array" (pointer_expression "*ptVar6" * identifier) = identifier) ;) }))))) (expression_statement "pcVar5 = coff_sym_name;" (assignment_expression "pcVar5 = coff_sym_name" identifier = identifier) ;) (expression_statement "uVar7 = (int)uVar2 >> 2 & 0xfffffff0;" (assignment_expression "uVar7 = (int)uVar2 >> 2 & 0xfffffff0" identifier = (binary_expression "(int)uVar2 >> 2 & 0xfffffff0" (binary_expression "(int)uVar2 >> 2" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar2 = uVar2 & 0xf | uVar7;" (assignment_expression "uVar2 = uVar2 & 0xf | uVar7" identifier = (binary_expression "uVar2 & 0xf | uVar7" (binary_expression "uVar2 & 0xf" identifier & number_literal) | identifier)) ;) (if_statement "if (uVar7 == 0) {\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" { (if_statement "if (ptVar6 == coff_type.dimensions) goto LAB_00021d72;" if (parenthesized_expression "(ptVar6 == coff_type.dimensions)" ( (binary_expression "ptVar6 == coff_type.dimensions" identifier == (field_expression "coff_type.dimensions" identifier . field_identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (goto_statement "goto LAB_00021d0b;" goto statement_identifier ;) })) (expression_statement "ptVar6 = ptVar6 + -1;" (assignment_expression "ptVar6 = ptVar6 + -1" identifier = (binary_expression "ptVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ptVar6 != (tq_t *)&coff_type.bitfield)" ( (binary_expression "ptVar6 != (tq_t *)&coff_type.bitfield" identifier != (cast_expression "(tq_t *)&coff_type.bitfield" ( (type_descriptor "tq_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&coff_type.bitfield" & (field_expression "coff_type.bitfield" identifier . field_identifier)))) )) ;) (expression_statement "format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5);" (assignment_expression "format = (char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier = (cast_expression "(char *)dcgettext(0,"the type of %s is too complex; it will be simplified",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier (argument_list "(0,"the type of %s is too complex; it will be simplified",5)" ( number_literal , (string_literal ""the type of %s is too complex; it will be simplified"" " string_content ") , number_literal ))))) ;) (expression_statement "ptVar6 = coff_type.type_qualifiers;" (assignment_expression "ptVar6 = coff_type.type_qualifiers" identifier = (field_expression "coff_type.type_qualifiers" identifier . field_identifier)) ;) (expression_statement "as_warn(format,pcVar5);" (call_expression "as_warn(format,pcVar5)" identifier (argument_list "(format,pcVar5)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00021d0b:\n    ptVar4 = ptVar6;" statement_identifier : (expression_statement "ptVar4 = ptVar6;" (assignment_expression "ptVar4 = ptVar6" identifier = identifier) ;)) (expression_statement "ptVar8 = coff_type.type_qualifiers;" (assignment_expression "ptVar8 = coff_type.type_qualifiers" identifier = (field_expression "coff_type.type_qualifiers" identifier . field_identifier)) ;) (do_statement "do {\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    } while (ptVar3 != coff_type.dimensions);" do (compound_statement "{\n      ptVar3 = ptVar4 + 1;\n      tVar1 = *ptVar4;\n      *ptVar8 = tVar1;\n      ptVar4 = ptVar3;\n      ptVar8 = ptVar8 + 1;\n    }" { (expression_statement "ptVar3 = ptVar4 + 1;" (assignment_expression "ptVar3 = ptVar4 + 1" identifier = (binary_expression "ptVar4 + 1" identifier + number_literal)) ;) (expression_statement "tVar1 = *ptVar4;" (assignment_expression "tVar1 = *ptVar4" identifier = (pointer_expression "*ptVar4" * identifier)) ;) (expression_statement "*ptVar8 = tVar1;" (assignment_expression "*ptVar8 = tVar1" (pointer_expression "*ptVar8" * identifier) = identifier) ;) (expression_statement "ptVar4 = ptVar3;" (assignment_expression "ptVar4 = ptVar3" identifier = identifier) ;) (expression_statement "ptVar8 = ptVar8 + 1;" (assignment_expression "ptVar8 = ptVar8 + 1" identifier = (binary_expression "ptVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ptVar3 != coff_type.dimensions)" ( (binary_expression "ptVar3 != coff_type.dimensions" identifier != (field_expression "coff_type.dimensions" identifier . field_identifier)) )) ;) (expression_statement "ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318);" (assignment_expression "ptVar4 = (tq_t *)(-(int)ptVar6 + 0x101318)" identifier = (cast_expression "(tq_t *)(-(int)ptVar6 + 0x101318)" ( (type_descriptor "tq_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)ptVar6 + 0x101318)" ( (binary_expression "-(int)ptVar6 + 0x101318" (unary_expression "-(int)ptVar6" - (cast_expression "(int)ptVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) (if_statement "if (ptVar4 == coff_type.type_qualifiers) goto LAB_00021d72;" if (parenthesized_expression "(ptVar4 == coff_type.type_qualifiers)" ( (binary_expression "ptVar4 == coff_type.type_qualifiers" identifier == (field_expression "coff_type.type_qualifiers" identifier . field_identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (if_statement "if (tVar1 == tq_Proc) {\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }" if (parenthesized_expression "(tVar1 == tq_Proc)" ( (binary_expression "tVar1 == tq_Proc" identifier == identifier) )) (compound_statement "{\n      coff_is_function = 1;\n      *(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;\n    }" { (expression_statement "coff_is_function = 1;" (assignment_expression "coff_is_function = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(-(int)ptVar6 + 0x101314) = 0;" (assignment_expression "*(undefined4 *)(-(int)ptVar6 + 0x101314) = 0" (pointer_expression "*(undefined4 *)(-(int)ptVar6 + 0x101314)" * (cast_expression "(undefined4 *)(-(int)ptVar6 + 0x101314)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)ptVar6 + 0x101314)" ( (binary_expression "-(int)ptVar6 + 0x101314" (unary_expression "-(int)ptVar6" - (cast_expression "(int)ptVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) = number_literal) ;) })) (if_statement "if (ptVar4 == coff_type.dimensions) goto LAB_00021d4e;" if (parenthesized_expression "(ptVar4 == coff_type.dimensions)" ( (binary_expression "ptVar4 == coff_type.dimensions" identifier == (field_expression "coff_type.dimensions" identifier . field_identifier)) )) (goto_statement "goto LAB_00021d4e;" goto statement_identifier ;)) }))) (do_statement "do {\n    ptVar6 = ptVar4 + 1;\n    *ptVar4 = tq_Nil;\n    ptVar4 = ptVar6;\n  } while (ptVar6 != coff_type.dimensions);" do (compound_statement "{\n    ptVar6 = ptVar4 + 1;\n    *ptVar4 = tq_Nil;\n    ptVar4 = ptVar6;\n  }" { (expression_statement "ptVar6 = ptVar4 + 1;" (assignment_expression "ptVar6 = ptVar4 + 1" identifier = (binary_expression "ptVar4 + 1" identifier + number_literal)) ;) (expression_statement "*ptVar4 = tq_Nil;" (assignment_expression "*ptVar4 = tq_Nil" (pointer_expression "*ptVar4" * identifier) = identifier) ;) (expression_statement "ptVar4 = ptVar6;" (assignment_expression "ptVar4 = ptVar6" identifier = identifier) ;) }) while (parenthesized_expression "(ptVar6 != coff_type.dimensions)" ( (binary_expression "ptVar6 != coff_type.dimensions" identifier != (field_expression "coff_type.dimensions" identifier . field_identifier)) )) ;) (labeled_statement "LAB_00021d4e:\n  demand_empty_rest_of_line();" statement_identifier : (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00021c20(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}\n\n" (function_definition "void FUN_00021c20(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" primitive_type (function_declarator "FUN_00021c20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (if_statement "if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" if (parenthesized_expression "(DAT_000809d0 == 0)" ( (binary_expression "DAT_000809d0 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" { (expression_statement "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);" (assignment_expression "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier = (call_expression "dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" identifier (argument_list "(0,".type pseudo-op used outside of .def/.endef; ignored",5)" ( number_literal , (string_literal "".type pseudo-op used outside of .def/.endef; ignored"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00031540(uVar3);" (call_expression "FUN_00031540(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = FUN_00032f30();" (assignment_expression "uVar2 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8 = &DAT_00080994;" (assignment_expression "piVar8 = &DAT_00080994" identifier = (pointer_expression "&DAT_00080994" & identifier)) ;) (expression_statement "DAT_00080964 = uVar2 & 0xf;" (assignment_expression "DAT_00080964 = uVar2 & 0xf" identifier = (binary_expression "uVar2 & 0xf" identifier & number_literal)) ;) (expression_statement "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);" (assignment_expression "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" identifier = (pointer_expression "*(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" * (cast_expression "(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00058720 + DAT_00080964 * 4)" ( (binary_expression "&DAT_00058720 + DAT_00080964 * 4" (pointer_expression "&DAT_00058720" & identifier) + (binary_expression "DAT_00080964 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" if (parenthesized_expression "((uVar2 & 0xfffffff0) == 0)" ( (binary_expression "(uVar2 & 0xfffffff0) == 0" (parenthesized_expression "(uVar2 & 0xfffffff0)" ( (binary_expression "uVar2 & 0xfffffff0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }" { (labeled_statement "LAB_00021d72:\n    DAT_00080980 = 0;" statement_identifier : (expression_statement "DAT_00080980 = 0;" (assignment_expression "DAT_00080980 = 0" identifier = number_literal) ;)) (expression_statement "puVar6 = &DAT_00080984;" (assignment_expression "puVar6 = &DAT_00080984" identifier = (pointer_expression "&DAT_00080984" & identifier)) ;) }) (else_clause "else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" else (compound_statement "{\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" { (do_statement "do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);" do (compound_statement "{\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    }" { (expression_statement "uVar9 = uVar2 & 0x30;" (assignment_expression "uVar9 = uVar2 & 0x30" identifier = (binary_expression "uVar2 & 0x30" identifier & number_literal)) ;) (if_statement "if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" if (parenthesized_expression "(uVar9 == 0x10)" ( (binary_expression "uVar9 == 0x10" identifier == number_literal) )) (compound_statement "{\n        *piVar8 = 1;\n      }" { (expression_statement "*piVar8 = 1;" (assignment_expression "*piVar8 = 1" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" else (if_statement "if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" if (parenthesized_expression "(uVar9 == 0x20)" ( (binary_expression "uVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n        *piVar8 = 2;\n      }" { (expression_statement "*piVar8 = 2;" (assignment_expression "*piVar8 = 2" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" else (compound_statement "{\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" { (if_statement "if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }" if (parenthesized_expression "(uVar9 != 0x30)" ( (binary_expression "uVar9 != 0x30" identifier != number_literal) )) (compound_statement "{\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }" { (expression_statement "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier = (call_expression "dcgettext(0,"Unrecognized .type argument",5,uVar2)" identifier (argument_list "(0,"Unrecognized .type argument",5,uVar2)" ( number_literal , (string_literal ""Unrecognized .type argument"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_000316c0(uVar3);" (call_expression "FUN_000316c0(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) })) (expression_statement "*piVar8 = 3;" (assignment_expression "*piVar8 = 3" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }))))) (expression_statement "iVar1 = DAT_000809d0;" (assignment_expression "iVar1 = DAT_000809d0" identifier = identifier) ;) (expression_statement "uVar9 = (int)uVar2 >> 2 & 0xfffffff0;" (assignment_expression "uVar9 = (int)uVar2 >> 2 & 0xfffffff0" identifier = (binary_expression "(int)uVar2 >> 2 & 0xfffffff0" (binary_expression "(int)uVar2 >> 2" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal)) ;) (expression_statement "uVar2 = uVar2 & 0xf | uVar9;" (assignment_expression "uVar2 = uVar2 & 0xf | uVar9" identifier = (binary_expression "uVar2 & 0xf | uVar9" (binary_expression "uVar2 & 0xf" identifier & number_literal) | identifier)) ;) (if_statement "if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" { (if_statement "if (piVar8 == &DAT_00080998) goto LAB_00021d72;" if (parenthesized_expression "(piVar8 == &DAT_00080998)" ( (binary_expression "piVar8 == &DAT_00080998" identifier == (pointer_expression "&DAT_00080998" & identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (goto_statement "goto LAB_00021d0b;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + -1;" (assignment_expression "piVar8 = piVar8 + -1" identifier = (binary_expression "piVar8 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != &DAT_0008097c)" ( (binary_expression "piVar8 != &DAT_0008097c" identifier != (pointer_expression "&DAT_0008097c" & identifier)) )) ;) (expression_statement "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);" (assignment_expression "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier = (call_expression "dcgettext(0,"the type of %s is too complex; it will be simplified",5)" identifier (argument_list "(0,"the type of %s is too complex; it will be simplified",5)" ( number_literal , (string_literal ""the type of %s is too complex; it will be simplified"" " string_content ") , number_literal )))) ;) (expression_statement "piVar8 = &DAT_00080980;" (assignment_expression "piVar8 = &DAT_00080980" identifier = (pointer_expression "&DAT_00080980" & identifier)) ;) (expression_statement "FUN_00031540(uVar3,iVar1);" (call_expression "FUN_00031540(uVar3,iVar1)" identifier (argument_list "(uVar3,iVar1)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00021d0b:\n    piVar4 = piVar8;" statement_identifier : (expression_statement "piVar4 = piVar8;" (assignment_expression "piVar4 = piVar8" identifier = identifier) ;)) (expression_statement "piVar10 = &DAT_00080980;" (assignment_expression "piVar10 = &DAT_00080980" identifier = (pointer_expression "&DAT_00080980" & identifier)) ;) (do_statement "do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);" do (compound_statement "{\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    }" { (expression_statement "piVar5 = piVar4 + 1;" (assignment_expression "piVar5 = piVar4 + 1" identifier = (binary_expression "piVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = *piVar4;" (assignment_expression "iVar1 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "*piVar10 = iVar1;" (assignment_expression "*piVar10 = iVar1" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != &DAT_00080998)" ( (binary_expression "piVar5 != &DAT_00080998" identifier != (pointer_expression "&DAT_00080998" & identifier)) )) ;) (expression_statement "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);" (assignment_expression "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318)" identifier = (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101318)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)piVar8 + 0x101318)" ( (binary_expression "-(int)piVar8 + 0x101318" (unary_expression "-(int)piVar8" - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) (if_statement "if (puVar6 == &DAT_00080980) goto LAB_00021d72;" if (parenthesized_expression "(puVar6 == &DAT_00080980)" ( (binary_expression "puVar6 == &DAT_00080980" identifier == (pointer_expression "&DAT_00080980" & identifier)) )) (goto_statement "goto LAB_00021d72;" goto statement_identifier ;)) (if_statement "if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" { (expression_statement "DAT_0008094c = 1;" (assignment_expression "DAT_0008094c = 1" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0;" (assignment_expression "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0" (pointer_expression "*(undefined4 *)(-(int)piVar8 + 0x101314)" * (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101314)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)piVar8 + 0x101314)" ( (binary_expression "-(int)piVar8 + 0x101314" (unary_expression "-(int)piVar8" - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) = number_literal) ;) })) (if_statement "if (puVar6 == &DAT_00080998) goto LAB_00021d4e;" if (parenthesized_expression "(puVar6 == &DAT_00080998)" ( (binary_expression "puVar6 == &DAT_00080998" identifier == (pointer_expression "&DAT_00080998" & identifier)) )) (goto_statement "goto LAB_00021d4e;" goto statement_identifier ;)) }))) (do_statement "do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);" do (compound_statement "{\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  }" { (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" identifier = identifier) ;) }) while (parenthesized_expression "(puVar7 != &DAT_00080998)" ( (binary_expression "puVar7 != &DAT_00080998" identifier != (pointer_expression "&DAT_00080998" & identifier)) )) ;) (labeled_statement "LAB_00021d4e:\n  FUN_00033c40();" statement_identifier : (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_00021c20(void)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00021c20(void)" (identifier "FUN_00021c20") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  int *piVar4;\n  undefined4 *puVar6;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int *piVar5;\n  undefined4 *puVar7;\n  \n  if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }\n  uVar2 = FUN_00032f30();\n  piVar8 = &DAT_00080994;\n  DAT_00080964 = uVar2 & 0xf;\n  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);\n  if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }\n  do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);\nLAB_00021d4e:\n  FUN_00033c40();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (if_statement "if (DAT_000809d0 == 0) {\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_000809d0 == 0)" (( "(") (binary_expression "DAT_000809d0 == 0" (identifier "DAT_000809d0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);\n    FUN_00031540(uVar3);\n    FUN_00033c40();\n    return;\n  }" ({ "{") (expression_statement "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);" (assignment_expression "uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5)" (identifier "dcgettext") (argument_list "(0,".type pseudo-op used outside of .def/.endef; ignored",5)" (( "(") (number_literal "0") (, ",") (string_literal "".type pseudo-op used outside of .def/.endef; ignored"" (" """) (string_content ".type pseudo-op used outside of .def/.endef; ignored") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar3);" (call_expression "FUN_00031540(uVar3)" (identifier "FUN_00031540") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" (identifier "FUN_00033c40") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_00032f30();" (assignment_expression "uVar2 = FUN_00032f30()" (identifier "uVar2") (= "=") (call_expression "FUN_00032f30()" (identifier "FUN_00032f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8 = &DAT_00080994;" (assignment_expression "piVar8 = &DAT_00080994" (identifier "piVar8") (= "=") (pointer_expression "&DAT_00080994" (& "&") (identifier "DAT_00080994"))) (; ";")) (expression_statement "DAT_00080964 = uVar2 & 0xf;" (assignment_expression "DAT_00080964 = uVar2 & 0xf" (identifier "DAT_00080964") (= "=") (binary_expression "uVar2 & 0xf" (identifier "uVar2") (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);" (assignment_expression "DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" (identifier "DAT_00080960") (= "=") (pointer_expression "*(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" (* "*") (cast_expression "(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00058720 + DAT_00080964 * 4)" (( "(") (binary_expression "&DAT_00058720 + DAT_00080964 * 4" (pointer_expression "&DAT_00058720" (& "&") (identifier "DAT_00058720")) (+ "+") (binary_expression "DAT_00080964 * 4" (identifier "DAT_00080964") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if ((uVar2 & 0xfffffff0) == 0) {\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }\n  else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" (if "if") (parenthesized_expression "((uVar2 & 0xfffffff0) == 0)" (( "(") (binary_expression "(uVar2 & 0xfffffff0) == 0" (parenthesized_expression "(uVar2 & 0xfffffff0)" (( "(") (binary_expression "uVar2 & 0xfffffff0" (identifier "uVar2") (& "&") (number_literal "0xfffffff0")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00021d72:\n    DAT_00080980 = 0;\n    puVar6 = &DAT_00080984;\n  }" ({ "{") (labeled_statement "LAB_00021d72:\n    DAT_00080980 = 0;" (statement_identifier "LAB_00021d72") (: ":") (expression_statement "DAT_00080980 = 0;" (assignment_expression "DAT_00080980 = 0" (identifier "DAT_00080980") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar6 = &DAT_00080984;" (assignment_expression "puVar6 = &DAT_00080984" (identifier "puVar6") (= "=") (pointer_expression "&DAT_00080984" (& "&") (identifier "DAT_00080984"))) (; ";")) (} "}")) (else_clause "else {\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" (else "else") (compound_statement "{\n    do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);\n    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);\n    piVar8 = &DAT_00080980;\n    FUN_00031540(uVar3,iVar1);\nLAB_00021d0b:\n    piVar4 = piVar8;\n    piVar10 = &DAT_00080980;\n    do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);\n    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);\n    if (puVar6 == &DAT_00080980) goto LAB_00021d72;\n    if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }\n    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;\n  }" ({ "{") (do_statement "do {\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    } while (piVar8 != &DAT_0008097c);" (do "do") (compound_statement "{\n      uVar9 = uVar2 & 0x30;\n      if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }\n      iVar1 = DAT_000809d0;\n      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;\n      uVar2 = uVar2 & 0xf | uVar9;\n      if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }\n      piVar8 = piVar8 + -1;\n    }" ({ "{") (expression_statement "uVar9 = uVar2 & 0x30;" (assignment_expression "uVar9 = uVar2 & 0x30" (identifier "uVar9") (= "=") (binary_expression "uVar2 & 0x30" (identifier "uVar2") (& "&") (number_literal "0x30"))) (; ";")) (if_statement "if (uVar9 == 0x10) {\n        *piVar8 = 1;\n      }\n      else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0x10)" (( "(") (binary_expression "uVar9 == 0x10" (identifier "uVar9") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        *piVar8 = 1;\n      }" ({ "{") (expression_statement "*piVar8 = 1;" (assignment_expression "*piVar8 = 1" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" (else "else") (if_statement "if (uVar9 == 0x20) {\n        *piVar8 = 2;\n      }\n      else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0x20)" (( "(") (binary_expression "uVar9 == 0x20" (identifier "uVar9") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        *piVar8 = 2;\n      }" ({ "{") (expression_statement "*piVar8 = 2;" (assignment_expression "*piVar8 = 2" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" (else "else") (compound_statement "{\n        if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }\n        *piVar8 = 3;\n      }" ({ "{") (if_statement "if (uVar9 != 0x30) {\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }" (if "if") (parenthesized_expression "(uVar9 != 0x30)" (( "(") (binary_expression "uVar9 != 0x30" (identifier "uVar9") (!= "!=") (number_literal "0x30")) () ")")) (compound_statement "{\n          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);\n                    \n          FUN_000316c0(uVar3);\n        }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);" (assignment_expression "uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Unrecognized .type argument",5,uVar2)" (identifier "dcgettext") (argument_list "(0,"Unrecognized .type argument",5,uVar2)" (( "(") (number_literal "0") (, ",") (string_literal ""Unrecognized .type argument"" (" """) (string_content "Unrecognized .type argument") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "FUN_000316c0(uVar3);" (call_expression "FUN_000316c0(uVar3)" (identifier "FUN_000316c0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "*piVar8 = 3;" (assignment_expression "*piVar8 = 3" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "3")) (; ";")) (} "}")))))) (expression_statement "iVar1 = DAT_000809d0;" (assignment_expression "iVar1 = DAT_000809d0" (identifier "iVar1") (= "=") (identifier "DAT_000809d0")) (; ";")) (expression_statement "uVar9 = (int)uVar2 >> 2 & 0xfffffff0;" (assignment_expression "uVar9 = (int)uVar2 >> 2 & 0xfffffff0" (identifier "uVar9") (= "=") (binary_expression "(int)uVar2 >> 2 & 0xfffffff0" (binary_expression "(int)uVar2 >> 2" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (number_literal "2")) (& "&") (number_literal "0xfffffff0"))) (; ";")) (expression_statement "uVar2 = uVar2 & 0xf | uVar9;" (assignment_expression "uVar2 = uVar2 & 0xf | uVar9" (identifier "uVar2") (= "=") (binary_expression "uVar2 & 0xf | uVar9" (binary_expression "uVar2 & 0xf" (identifier "uVar2") (& "&") (number_literal "0xf")) (| "|") (identifier "uVar9"))) (; ";")) (if_statement "if (uVar9 == 0) {\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (piVar8 == &DAT_00080998) goto LAB_00021d72;\n        goto LAB_00021d0b;\n      }" ({ "{") (if_statement "if (piVar8 == &DAT_00080998) goto LAB_00021d72;" (if "if") (parenthesized_expression "(piVar8 == &DAT_00080998)" (( "(") (binary_expression "piVar8 == &DAT_00080998" (identifier "piVar8") (== "==") (pointer_expression "&DAT_00080998" (& "&") (identifier "DAT_00080998"))) () ")")) (goto_statement "goto LAB_00021d72;" (goto "goto") (statement_identifier "LAB_00021d72") (; ";"))) (goto_statement "goto LAB_00021d0b;" (goto "goto") (statement_identifier "LAB_00021d0b") (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + -1;" (assignment_expression "piVar8 = piVar8 + -1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + -1" (identifier "piVar8") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != &DAT_0008097c)" (( "(") (binary_expression "piVar8 != &DAT_0008097c" (identifier "piVar8") (!= "!=") (pointer_expression "&DAT_0008097c" (& "&") (identifier "DAT_0008097c"))) () ")")) (; ";")) (expression_statement "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);" (assignment_expression "uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"the type of %s is too complex; it will be simplified",5)" (identifier "dcgettext") (argument_list "(0,"the type of %s is too complex; it will be simplified",5)" (( "(") (number_literal "0") (, ",") (string_literal ""the type of %s is too complex; it will be simplified"" (" """) (string_content "the type of %s is too complex; it will be simplified") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "piVar8 = &DAT_00080980;" (assignment_expression "piVar8 = &DAT_00080980" (identifier "piVar8") (= "=") (pointer_expression "&DAT_00080980" (& "&") (identifier "DAT_00080980"))) (; ";")) (expression_statement "FUN_00031540(uVar3,iVar1);" (call_expression "FUN_00031540(uVar3,iVar1)" (identifier "FUN_00031540") (argument_list "(uVar3,iVar1)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar1") () ")"))) (; ";")) (labeled_statement "LAB_00021d0b:\n    piVar4 = piVar8;" (statement_identifier "LAB_00021d0b") (: ":") (expression_statement "piVar4 = piVar8;" (assignment_expression "piVar4 = piVar8" (identifier "piVar4") (= "=") (identifier "piVar8")) (; ";"))) (expression_statement "piVar10 = &DAT_00080980;" (assignment_expression "piVar10 = &DAT_00080980" (identifier "piVar10") (= "=") (pointer_expression "&DAT_00080980" (& "&") (identifier "DAT_00080980"))) (; ";")) (do_statement "do {\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    } while (piVar5 != &DAT_00080998);" (do "do") (compound_statement "{\n      piVar5 = piVar4 + 1;\n      iVar1 = *piVar4;\n      *piVar10 = iVar1;\n      piVar4 = piVar5;\n      piVar10 = piVar10 + 1;\n    }" ({ "{") (expression_statement "piVar5 = piVar4 + 1;" (assignment_expression "piVar5 = piVar4 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = *piVar4;" (assignment_expression "iVar1 = *piVar4" (identifier "iVar1") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "*piVar10 = iVar1;" (assignment_expression "*piVar10 = iVar1" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" (identifier "piVar4") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar5 != &DAT_00080998)" (( "(") (binary_expression "piVar5 != &DAT_00080998" (identifier "piVar5") (!= "!=") (pointer_expression "&DAT_00080998" (& "&") (identifier "DAT_00080998"))) () ")")) (; ";")) (expression_statement "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);" (assignment_expression "puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101318)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(-(int)piVar8 + 0x101318)" (( "(") (binary_expression "-(int)piVar8 + 0x101318" (unary_expression "-(int)piVar8" (- "-") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (+ "+") (number_literal "0x101318")) () ")")))) (; ";")) (if_statement "if (puVar6 == &DAT_00080980) goto LAB_00021d72;" (if "if") (parenthesized_expression "(puVar6 == &DAT_00080980)" (( "(") (binary_expression "puVar6 == &DAT_00080980" (identifier "puVar6") (== "==") (pointer_expression "&DAT_00080980" (& "&") (identifier "DAT_00080980"))) () ")")) (goto_statement "goto LAB_00021d72;" (goto "goto") (statement_identifier "LAB_00021d72") (; ";"))) (if_statement "if (iVar1 == 2) {\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 2)" (( "(") (binary_expression "iVar1 == 2" (identifier "iVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      DAT_0008094c = 1;\n      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;\n    }" ({ "{") (expression_statement "DAT_0008094c = 1;" (assignment_expression "DAT_0008094c = 1" (identifier "DAT_0008094c") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0;" (assignment_expression "*(undefined4 *)(-(int)piVar8 + 0x101314) = 0" (pointer_expression "*(undefined4 *)(-(int)piVar8 + 0x101314)" (* "*") (cast_expression "(undefined4 *)(-(int)piVar8 + 0x101314)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(-(int)piVar8 + 0x101314)" (( "(") (binary_expression "-(int)piVar8 + 0x101314" (unary_expression "-(int)piVar8" (- "-") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (+ "+") (number_literal "0x101314")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (puVar6 == &DAT_00080998) goto LAB_00021d4e;" (if "if") (parenthesized_expression "(puVar6 == &DAT_00080998)" (( "(") (binary_expression "puVar6 == &DAT_00080998" (identifier "puVar6") (== "==") (pointer_expression "&DAT_00080998" (& "&") (identifier "DAT_00080998"))) () ")")) (goto_statement "goto LAB_00021d4e;" (goto "goto") (statement_identifier "LAB_00021d4e") (; ";"))) (} "}")))) (do_statement "do {\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  } while (puVar7 != &DAT_00080998);" (do "do") (compound_statement "{\n    puVar7 = puVar6 + 1;\n    *puVar6 = 0;\n    puVar6 = puVar7;\n  }" ({ "{") (expression_statement "puVar7 = puVar6 + 1;" (assignment_expression "puVar7 = puVar6 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6 = puVar7;" (assignment_expression "puVar6 = puVar7" (identifier "puVar6") (= "=") (identifier "puVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != &DAT_00080998)" (( "(") (binary_expression "puVar7 != &DAT_00080998" (identifier "puVar7") (!= "!=") (pointer_expression "&DAT_00080998" (& "&") (identifier "DAT_00080998"))) () ")")) (; ";")) (labeled_statement "LAB_00021d4e:\n  FUN_00033c40();" (statement_identifier "LAB_00021d4e") (: ":") (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" (identifier "FUN_00033c40") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00021d80) */
/* WARNING: Unknown calling convention */

void function_1(int ignore)

{
  type_1 var_14;
  type_2 var_6;
  char *format;
  type_1 *var_13;
  type_1 *var_11;
  char *pcVar5;
  type_1 *var_10;
  type_2 var_8;
  type_1 *var_12;
  type_3 var_7;
  
  if (var_1 == (char *)0x0) {
    pcVar5 = (char *)var_2(0,".type pseudo-op used outside of .def/.endef; ignored",5);
    var_3(pcVar5);
    var_4();
    return;
  }
  var_7 = var_5();
  var_6 = (type_2)var_7;
  var_10 = coff_type.type_qualifiers + 5;
  coff_type.orig_type = var_6 & 0xf;
  coff_type.basic_type = map_coff_types[coff_type.orig_type];
  if ((var_7 & 0xfffffff0) == 0) {
LAB_00021d72:
    coff_type.type_qualifiers[0] = tq_Nil;
    var_11 = coff_type.type_qualifiers + 1;
  }
  else {
    do {
      var_8 = var_6 & 0x30;
      if (var_8 == 0x10) {
        *var_10 = tq_Ptr;
      }
      else if (var_8 == 0x20) {
        *var_10 = var_15;
      }
      else {
        if (var_8 != 0x30) {
          pcVar5 = (char *)var_2(0,"Unrecognized .type argument",5,var_6);
                    /* WARNING: Subroutine does not return */
          var_9(pcVar5);
        }
        *var_10 = tq_Array;
      }
      pcVar5 = var_1;
      var_8 = (int)var_6 >> 2 & 0xfffffff0;
      var_6 = var_6 & 0xf | var_8;
      if (var_8 == 0) {
        if (var_10 == coff_type.dimensions) goto LAB_00021d72;
        goto LAB_00021d0b;
      }
      var_10 = var_10 + -1;
    } while (var_10 != (type_1 *)&coff_type.bitfield);
    format = (char *)var_2(0,"the type of %s is too complex; it will be simplified",5);
    var_10 = coff_type.type_qualifiers;
    var_3(format,pcVar5);
LAB_00021d0b:
    var_11 = var_10;
    var_12 = coff_type.type_qualifiers;
    do {
      var_13 = var_11 + 1;
      var_14 = *var_11;
      *var_12 = var_14;
      var_11 = var_13;
      var_12 = var_12 + 1;
    } while (var_13 != coff_type.dimensions);
    var_11 = (type_1 *)(-(int)var_10 + 0x101318);
    if (var_11 == coff_type.type_qualifiers) goto LAB_00021d72;
    if (var_14 == var_15) {
      coff_is_function = 1;
      *(type_4 *)(-(int)var_10 + 0x101314) = 0;
    }
    if (var_11 == coff_type.dimensions) goto LAB_00021d4e;
  }
  do {
    var_10 = var_11 + 1;
    *var_11 = tq_Nil;
    var_11 = var_10;
  } while (var_10 != coff_type.dimensions);
LAB_00021d4e:
  var_4();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00021d80) */

void MASKED(void)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  int *piVar4;
  undefined4 *puVar6;
  int *piVar8;
  uint uVar9;
  int *piVar10;
  int *piVar5;
  undefined4 *puVar7;
  
  if (DAT_000809d0 == 0) {
    uVar3 = dcgettext(0,".type pseudo-op used outside of .def/.endef; ignored",5);
    FUN_00031540(uVar3);
    FUN_00033c40();
    return;
  }
  uVar2 = FUN_00032f30();
  piVar8 = &DAT_00080994;
  DAT_00080964 = uVar2 & 0xf;
  DAT_00080960 = *(undefined4 *)(&DAT_00058720 + DAT_00080964 * 4);
  if ((uVar2 & 0xfffffff0) == 0) {
LAB_00021d72:
    DAT_00080980 = 0;
    puVar6 = &DAT_00080984;
  }
  else {
    do {
      uVar9 = uVar2 & 0x30;
      if (uVar9 == 0x10) {
        *piVar8 = 1;
      }
      else if (uVar9 == 0x20) {
        *piVar8 = 2;
      }
      else {
        if (uVar9 != 0x30) {
          uVar3 = dcgettext(0,"Unrecognized .type argument",5,uVar2);
                    /* WARNING: Subroutine does not return */
          FUN_000316c0(uVar3);
        }
        *piVar8 = 3;
      }
      iVar1 = DAT_000809d0;
      uVar9 = (int)uVar2 >> 2 & 0xfffffff0;
      uVar2 = uVar2 & 0xf | uVar9;
      if (uVar9 == 0) {
        if (piVar8 == &DAT_00080998) goto LAB_00021d72;
        goto LAB_00021d0b;
      }
      piVar8 = piVar8 + -1;
    } while (piVar8 != &DAT_0008097c);
    uVar3 = dcgettext(0,"the type of %s is too complex; it will be simplified",5);
    piVar8 = &DAT_00080980;
    FUN_00031540(uVar3,iVar1);
LAB_00021d0b:
    piVar4 = piVar8;
    piVar10 = &DAT_00080980;
    do {
      piVar5 = piVar4 + 1;
      iVar1 = *piVar4;
      *piVar10 = iVar1;
      piVar4 = piVar5;
      piVar10 = piVar10 + 1;
    } while (piVar5 != &DAT_00080998);
    puVar6 = (undefined4 *)(-(int)piVar8 + 0x101318);
    if (puVar6 == &DAT_00080980) goto LAB_00021d72;
    if (iVar1 == 2) {
      DAT_0008094c = 1;
      *(undefined4 *)(-(int)piVar8 + 0x101314) = 0;
    }
    if (puVar6 == &DAT_00080998) goto LAB_00021d4e;
  }
  do {
    puVar7 = puVar6 + 1;
    *puVar6 = 0;
    puVar6 = puVar7;
  } while (puVar7 != &DAT_00080998);
LAB_00021d4e:
  FUN_00033c40();
  return;
}

