
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

_Bool validate_qualified_name(char *token)

{
  char cVar1;
  _Bool _Var2;
  char *pcVar3;
  
  pcVar3 = strchr(token,0x3a);
  _Var2 = true;
  if (pcVar3 != (char *)0x0) {
    if (((byte)do_flags & 0x30) == 0) {
      if (pcVar3[1] == ':') {
        cVar1 = pcVar3[2];
        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))
        {
          pcVar3 = "qualified identifier `%s\' is badly formed";
        }
        else {
          pcVar3 = strchr(pcVar3 + 2,0x3a);
          if (pcVar3 == (char *)0x0) {
            return true;
          }
          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";
        }
      }
      else {
        pcVar3 = "identifier %s: namespace separator is two colons, not one";
      }
    }
    else {
      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";
    }
    pcVar3 = (char *)dcgettext(0,pcVar3,5);
    error_ln(sourceline,pcVar3,token);
    _Var2 = false;
  }
  return _Var2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 FUN_0001f2f0(char *param_1)

{
  char cVar1;
  char *pcVar2;
  undefined4 uVar3;
  
  pcVar2 = strchr(param_1,0x3a);
  uVar3 = 1;
  if (pcVar2 != (char *)0x0) {
    if ((DAT_000c3760 & 0x30) == 0) {
      if (pcVar2[1] == ':') {
        cVar1 = pcVar2[2];
        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))
        {
          pcVar2 = "qualified identifier `%s\' is badly formed";
        }
        else {
          pcVar2 = strchr(pcVar2 + 2,0x3a);
          if (pcVar2 == (char *)0x0) {
            return 1;
          }
          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";
        }
      }
      else {
        pcVar2 = "identifier %s: namespace separator is two colons, not one";
      }
    }
    else {
      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";
    }
    uVar3 = dcgettext(0,pcVar2,5);
    FUN_0001b070(DAT_000c3794,uVar3,param_1);
    uVar3 = 0;
  }
  return uVar3;
}


PUSH ESI
PUSH EBX
CALL 0x00016f50
ADD EBX,0x9f9ed
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x18]
PUSH 0x3a
PUSH ESI
CALL 0x00014220
MOV EDX,EAX
ADD ESP,0x10
MOV EAX,0x1
TEST EDX,EDX
JZ 0x0001f382
LEA EAX,[EBX + 0x4a7c]
TEST byte ptr [EAX],0x30
JNZ 0x0001f3c0
CMP byte ptr [EDX + 0x1],0x3a
JNZ 0x0001f358
MOVZX EAX,byte ptr [EDX + 0x2]
CMP AL,0x41
JL 0x0001f343
CMP AL,0x5a
JLE 0x0001f390
LEA ECX,[EAX + -0x61]
CMP CL,0x19
JBE 0x0001f390
CMP AL,0x5f
JZ 0x0001f390
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc9f04]
PUSH 0x5
JMP 0x0001f363
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc9ec8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
ADD ESP,0xc
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0x4ab0]
PUSH dword ptr [EAX]
CALL 0x0001b070
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x8
ADD EDX,0x2
PUSH 0x3a
PUSH EDX
CALL 0x00014220
MOV EDX,EAX
ADD ESP,0x10
MOV EAX,0x1
TEST EDX,EDX
JZ 0x0001f382
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc9f30]
PUSH 0x5
JMP 0x0001f363
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc9e80]
PUSH 0x5
JMP 0x0001f363
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_0001f2f0(char *param_1)\n\n{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}\n\n" comment (function_definition "undefined4 FUN_0001f2f0(char *param_1)\n\n{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_0001f2f0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "pcVar2 = strchr(param_1,0x3a);" (assignment_expression "pcVar2 = strchr(param_1,0x3a)" identifier = (call_expression "strchr(param_1,0x3a)" identifier (argument_list "(param_1,0x3a)" ( identifier , number_literal )))) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" { (if_statement "if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" if (parenthesized_expression "((DAT_000c3760 & 0x30) == 0)" ( (binary_expression "(DAT_000c3760 & 0x30) == 0" (parenthesized_expression "(DAT_000c3760 & 0x30)" ( (binary_expression "DAT_000c3760 & 0x30" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }" { (if_statement "if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" if (parenthesized_expression "(pcVar2[1] == ':')" ( (binary_expression "pcVar2[1] == ':'" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }" { (expression_statement "cVar1 = pcVar2[2];" (assignment_expression "cVar1 = pcVar2[2]" identifier = (subscript_expression "pcVar2[2]" identifier [ number_literal ])) ;) (if_statement "if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" if (parenthesized_expression "(((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))" ( (binary_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_')" (parenthesized_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))))" ( (binary_expression "(cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "(('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" ( (parenthesized_expression "('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))" ( (binary_expression "'Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))" (binary_expression "'Z' < cVar1" (char_literal "'Z'" ' character ') < identifier) && (parenthesized_expression "(0x19 < (byte)(cVar1 + 0x9fU))" ( (binary_expression "0x19 < (byte)(cVar1 + 0x9fU)" number_literal < (call_expression "(byte)(cVar1 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 + 0x9fU)" ( (binary_expression "cVar1 + 0x9fU" identifier + number_literal) )))) ))) )) ))) )) && (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }" { (expression_statement "pcVar2 = "qualified identifier `%s\' is badly formed";" (assignment_expression "pcVar2 = "qualified identifier `%s\' is badly formed"" identifier = (string_literal ""qualified identifier `%s\' is badly formed"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" else (compound_statement "{\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" { (expression_statement "pcVar2 = strchr(pcVar2 + 2,0x3a);" (assignment_expression "pcVar2 = strchr(pcVar2 + 2,0x3a)" identifier = (call_expression "strchr(pcVar2 + 2,0x3a)" identifier (argument_list "(pcVar2 + 2,0x3a)" ( (binary_expression "pcVar2 + 2" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n            return 1;\n          }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";" (assignment_expression "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name"" identifier = (string_literal ""identifier `%s\': namespace separator can only appear once in a qualified name"" " string_content escape_sequence string_content ")) ;) }))) }) (else_clause "else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" else (compound_statement "{\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" { (expression_statement "pcVar2 = "identifier %s: namespace separator is two colons, not one";" (assignment_expression "pcVar2 = "identifier %s: namespace separator is two colons, not one"" identifier = (string_literal ""identifier %s: namespace separator is two colons, not one"" " string_content ")) ;) }))) }) (else_clause "else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" else (compound_statement "{\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" { (expression_statement "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";" (assignment_expression "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode"" identifier = (string_literal ""identifier %s: qualified names not allowed in traditional / POSIX mode"" " string_content ")) ;) }))) (expression_statement "uVar3 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0001b070(DAT_000c3794,uVar3,param_1);" (call_expression "FUN_0001b070(DAT_000c3794,uVar3,param_1)" identifier (argument_list "(DAT_000c3794,uVar3,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool validate_qualified_name(char *token)\n\n{\n  char cVar1;\n  _Bool _Var2;\n  char *pcVar3;\n  \n  pcVar3 = strchr(token,0x3a);\n  _Var2 = true;\n  if (pcVar3 != (char *)0x0) {\n    if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    error_ln(sourceline,pcVar3,token);\n    _Var2 = false;\n  }\n  return _Var2;\n}\n\n" comment comment (function_definition "_Bool validate_qualified_name(char *token)\n\n{\n  char cVar1;\n  _Bool _Var2;\n  char *pcVar3;\n  \n  pcVar3 = strchr(token,0x3a);\n  _Var2 = true;\n  if (pcVar3 != (char *)0x0) {\n    if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    error_ln(sourceline,pcVar3,token);\n    _Var2 = false;\n  }\n  return _Var2;\n}" type_identifier (function_declarator "validate_qualified_name(char *token)" identifier (parameter_list "(char *token)" ( (parameter_declaration "char *token" primitive_type (pointer_declarator "*token" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  _Bool _Var2;\n  char *pcVar3;\n  \n  pcVar3 = strchr(token,0x3a);\n  _Var2 = true;\n  if (pcVar3 != (char *)0x0) {\n    if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    error_ln(sourceline,pcVar3,token);\n    _Var2 = false;\n  }\n  return _Var2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (expression_statement "pcVar3 = strchr(token,0x3a);" (assignment_expression "pcVar3 = strchr(token,0x3a)" identifier = (call_expression "strchr(token,0x3a)" identifier (argument_list "(token,0x3a)" ( identifier , number_literal )))) ;) (expression_statement "_Var2 = true;" (assignment_expression "_Var2 = true" identifier = true) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n    if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    error_ln(sourceline,pcVar3,token);\n    _Var2 = false;\n  }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    error_ln(sourceline,pcVar3,token);\n    _Var2 = false;\n  }" { (if_statement "if (((byte)do_flags & 0x30) == 0) {\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" if (parenthesized_expression "(((byte)do_flags & 0x30) == 0)" ( (binary_expression "((byte)do_flags & 0x30) == 0" (parenthesized_expression "((byte)do_flags & 0x30)" ( (binary_expression "(byte)do_flags & 0x30" (cast_expression "(byte)do_flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }" { (if_statement "if (pcVar3[1] == ':') {\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }" if (parenthesized_expression "(pcVar3[1] == ':')" ( (binary_expression "pcVar3[1] == ':'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        cVar1 = pcVar3[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }" { (expression_statement "cVar1 = pcVar3[2];" (assignment_expression "cVar1 = pcVar3[2]" identifier = (subscript_expression "pcVar3[2]" identifier [ number_literal ])) ;) (if_statement "if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" if (parenthesized_expression "(((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))" ( (binary_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_')" (parenthesized_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))))" ( (binary_expression "(cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "(('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" ( (parenthesized_expression "('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))" ( (binary_expression "'Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))" (binary_expression "'Z' < cVar1" (char_literal "'Z'" ' character ') < identifier) && (parenthesized_expression "(0x19 < (byte)(cVar1 + 0x9fU))" ( (binary_expression "0x19 < (byte)(cVar1 + 0x9fU)" number_literal < (call_expression "(byte)(cVar1 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 + 0x9fU)" ( (binary_expression "cVar1 + 0x9fU" identifier + number_literal) )))) ))) )) ))) )) && (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          pcVar3 = "qualified identifier `%s\' is badly formed";\n        }" { (expression_statement "pcVar3 = "qualified identifier `%s\' is badly formed";" (assignment_expression "pcVar3 = "qualified identifier `%s\' is badly formed"" identifier = (string_literal ""qualified identifier `%s\' is badly formed"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" else (compound_statement "{\n          pcVar3 = strchr(pcVar3 + 2,0x3a);\n          if (pcVar3 == (char *)0x0) {\n            return true;\n          }\n          pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" { (expression_statement "pcVar3 = strchr(pcVar3 + 2,0x3a);" (assignment_expression "pcVar3 = strchr(pcVar3 + 2,0x3a)" identifier = (call_expression "strchr(pcVar3 + 2,0x3a)" identifier (argument_list "(pcVar3 + 2,0x3a)" ( (binary_expression "pcVar3 + 2" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar3 == (char *)0x0) {\n            return true;\n          }" if (parenthesized_expression "(pcVar3 == (char *)0x0)" ( (binary_expression "pcVar3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) })) (expression_statement "pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name";" (assignment_expression "pcVar3 = "identifier `%s\': namespace separator can only appear once in a qualified name"" identifier = (string_literal ""identifier `%s\': namespace separator can only appear once in a qualified name"" " string_content escape_sequence string_content ")) ;) }))) }) (else_clause "else {\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }" else (compound_statement "{\n        pcVar3 = "identifier %s: namespace separator is two colons, not one";\n      }" { (expression_statement "pcVar3 = "identifier %s: namespace separator is two colons, not one";" (assignment_expression "pcVar3 = "identifier %s: namespace separator is two colons, not one"" identifier = (string_literal ""identifier %s: namespace separator is two colons, not one"" " string_content ")) ;) }))) }) (else_clause "else {\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" else (compound_statement "{\n      pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" { (expression_statement "pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode";" (assignment_expression "pcVar3 = "identifier %s: qualified names not allowed in traditional / POSIX mode"" identifier = (string_literal ""identifier %s: qualified names not allowed in traditional / POSIX mode"" " string_content ")) ;) }))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "error_ln(sourceline,pcVar3,token);" (call_expression "error_ln(sourceline,pcVar3,token)" identifier (argument_list "(sourceline,pcVar3,token)" ( identifier , identifier , identifier ))) ;) (expression_statement "_Var2 = false;" (assignment_expression "_Var2 = false" identifier = false) ;) })) (return_statement "return _Var2;" return identifier ;) })))
(translation_unit "undefined4 FUN_0001f2f0(char *param_1)\n\n{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}\n\n" (function_definition "undefined4 FUN_0001f2f0(char *param_1)\n\n{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_0001f2f0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "pcVar2 = strchr(param_1,0x3a);" (assignment_expression "pcVar2 = strchr(param_1,0x3a)" identifier = (call_expression "strchr(param_1,0x3a)" identifier (argument_list "(param_1,0x3a)" ( identifier , number_literal )))) ;) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" { (if_statement "if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" if (parenthesized_expression "((DAT_000c3760 & 0x30) == 0)" ( (binary_expression "(DAT_000c3760 & 0x30) == 0" (parenthesized_expression "(DAT_000c3760 & 0x30)" ( (binary_expression "DAT_000c3760 & 0x30" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }" { (if_statement "if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" if (parenthesized_expression "(pcVar2[1] == ':')" ( (binary_expression "pcVar2[1] == ':'" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }" { (expression_statement "cVar1 = pcVar2[2];" (assignment_expression "cVar1 = pcVar2[2]" identifier = (subscript_expression "pcVar2[2]" identifier [ number_literal ])) ;) (if_statement "if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" if (parenthesized_expression "(((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))" ( (binary_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_')" (parenthesized_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))))" ( (binary_expression "(cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "(('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" ( (parenthesized_expression "('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))" ( (binary_expression "'Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))" (binary_expression "'Z' < cVar1" (char_literal "'Z'" ' character ') < identifier) && (parenthesized_expression "(0x19 < (byte)(cVar1 + 0x9fU))" ( (binary_expression "0x19 < (byte)(cVar1 + 0x9fU)" number_literal < (call_expression "(byte)(cVar1 + 0x9fU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar1 + 0x9fU)" ( (binary_expression "cVar1 + 0x9fU" identifier + number_literal) )))) ))) )) ))) )) && (parenthesized_expression "(cVar1 != '_')" ( (binary_expression "cVar1 != '_'" identifier != (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }" { (expression_statement "pcVar2 = "qualified identifier `%s\' is badly formed";" (assignment_expression "pcVar2 = "qualified identifier `%s\' is badly formed"" identifier = (string_literal ""qualified identifier `%s\' is badly formed"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" else (compound_statement "{\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" { (expression_statement "pcVar2 = strchr(pcVar2 + 2,0x3a);" (assignment_expression "pcVar2 = strchr(pcVar2 + 2,0x3a)" identifier = (call_expression "strchr(pcVar2 + 2,0x3a)" identifier (argument_list "(pcVar2 + 2,0x3a)" ( (binary_expression "pcVar2 + 2" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n            return 1;\n          }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";" (assignment_expression "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name"" identifier = (string_literal ""identifier `%s\': namespace separator can only appear once in a qualified name"" " string_content escape_sequence string_content ")) ;) }))) }) (else_clause "else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" else (compound_statement "{\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" { (expression_statement "pcVar2 = "identifier %s: namespace separator is two colons, not one";" (assignment_expression "pcVar2 = "identifier %s: namespace separator is two colons, not one"" identifier = (string_literal ""identifier %s: namespace separator is two colons, not one"" " string_content ")) ;) }))) }) (else_clause "else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" else (compound_statement "{\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" { (expression_statement "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";" (assignment_expression "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode"" identifier = (string_literal ""identifier %s: qualified names not allowed in traditional / POSIX mode"" " string_content ")) ;) }))) (expression_statement "uVar3 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0001b070(DAT_000c3794,uVar3,param_1);" (call_expression "FUN_0001b070(DAT_000c3794,uVar3,param_1)" identifier (argument_list "(DAT_000c3794,uVar3,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (char_literal ' character ') < IDENT) && (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ))) )) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_0001f2f0(char *param_1)\n\n{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" (type_identifier "undefined4") (function_declarator "FUN_0001f2f0(char *param_1)" (identifier "FUN_0001f2f0") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  undefined4 uVar3;\n  \n  pcVar2 = strchr(param_1,0x3a);\n  uVar3 = 1;\n  if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }\n  return uVar3;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (expression_statement "pcVar2 = strchr(param_1,0x3a);" (assignment_expression "pcVar2 = strchr(param_1,0x3a)" (identifier "pcVar2") (= "=") (call_expression "strchr(param_1,0x3a)" (identifier "strchr") (argument_list "(param_1,0x3a)" (( "(") (identifier "param_1") (, ",") (number_literal "0x3a") () ")")))) (; ";")) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }\n    uVar3 = dcgettext(0,pcVar2,5);\n    FUN_0001b070(DAT_000c3794,uVar3,param_1);\n    uVar3 = 0;\n  }" ({ "{") (if_statement "if ((DAT_000c3760 & 0x30) == 0) {\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }\n    else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" (if "if") (parenthesized_expression "((DAT_000c3760 & 0x30) == 0)" (( "(") (binary_expression "(DAT_000c3760 & 0x30) == 0" (parenthesized_expression "(DAT_000c3760 & 0x30)" (( "(") (binary_expression "DAT_000c3760 & 0x30" (identifier "DAT_000c3760") (& "&") (number_literal "0x30")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }\n    }" ({ "{") (if_statement "if (pcVar2[1] == ':') {\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }\n      else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" (if "if") (parenthesized_expression "(pcVar2[1] == ':')" (( "(") (binary_expression "pcVar2[1] == ':'" (subscript_expression "pcVar2[1]" (identifier "pcVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n        cVar1 = pcVar2[2];\n        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }\n      }" ({ "{") (expression_statement "cVar1 = pcVar2[2];" (assignment_expression "cVar1 = pcVar2[2]" (identifier "cVar1") (= "=") (subscript_expression "pcVar2[2]" (identifier "pcVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))\n        {\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }\n        else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" (if "if") (parenthesized_expression "(((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))" (( "(") (binary_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_')" (parenthesized_expression "((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))))" (( "(") (binary_expression "(cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" (parenthesized_expression "(cVar1 < 'A')" (( "(") (binary_expression "cVar1 < 'A'" (identifier "cVar1") (< "<") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))" (( "(") (parenthesized_expression "('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU)))" (( "(") (binary_expression "'Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))" (binary_expression "'Z' < cVar1" (char_literal "'Z'" (' "'") (character "Z") (' "'")) (< "<") (identifier "cVar1")) (&& "&&") (parenthesized_expression "(0x19 < (byte)(cVar1 + 0x9fU))" (( "(") (binary_expression "0x19 < (byte)(cVar1 + 0x9fU)" (number_literal "0x19") (< "<") (call_expression "(byte)(cVar1 + 0x9fU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar1 + 0x9fU)" (( "(") (binary_expression "cVar1 + 0x9fU" (identifier "cVar1") (+ "+") (number_literal "0x9fU")) () ")")))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar1 != '_')" (( "(") (binary_expression "cVar1 != '_'" (identifier "cVar1") (!= "!=") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          pcVar2 = "qualified identifier `%s\' is badly formed";\n        }" ({ "{") (expression_statement "pcVar2 = "qualified identifier `%s\' is badly formed";" (assignment_expression "pcVar2 = "qualified identifier `%s\' is badly formed"" (identifier "pcVar2") (= "=") (string_literal ""qualified identifier `%s\' is badly formed"" (" """) (string_content "qualified identifier `%s") (escape_sequence "\'") (string_content " is badly formed") (" """))) (; ";")) (} "}")) (else_clause "else {\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" (else "else") (compound_statement "{\n          pcVar2 = strchr(pcVar2 + 2,0x3a);\n          if (pcVar2 == (char *)0x0) {\n            return 1;\n          }\n          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";\n        }" ({ "{") (expression_statement "pcVar2 = strchr(pcVar2 + 2,0x3a);" (assignment_expression "pcVar2 = strchr(pcVar2 + 2,0x3a)" (identifier "pcVar2") (= "=") (call_expression "strchr(pcVar2 + 2,0x3a)" (identifier "strchr") (argument_list "(pcVar2 + 2,0x3a)" (( "(") (binary_expression "pcVar2 + 2" (identifier "pcVar2") (+ "+") (number_literal "2")) (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (pcVar2 == (char *)0x0) {\n            return 1;\n          }" (if "if") (parenthesized_expression "(pcVar2 == (char *)0x0)" (( "(") (binary_expression "pcVar2 == (char *)0x0" (identifier "pcVar2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            return 1;\n          }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";" (assignment_expression "pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name"" (identifier "pcVar2") (= "=") (string_literal ""identifier `%s\': namespace separator can only appear once in a qualified name"" (" """) (string_content "identifier `%s") (escape_sequence "\'") (string_content ": namespace separator can only appear once in a qualified name") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" (else "else") (compound_statement "{\n        pcVar2 = "identifier %s: namespace separator is two colons, not one";\n      }" ({ "{") (expression_statement "pcVar2 = "identifier %s: namespace separator is two colons, not one";" (assignment_expression "pcVar2 = "identifier %s: namespace separator is two colons, not one"" (identifier "pcVar2") (= "=") (string_literal ""identifier %s: namespace separator is two colons, not one"" (" """) (string_content "identifier %s: namespace separator is two colons, not one") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" (else "else") (compound_statement "{\n      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";\n    }" ({ "{") (expression_statement "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";" (assignment_expression "pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode"" (identifier "pcVar2") (= "=") (string_literal ""identifier %s: qualified names not allowed in traditional / POSIX mode"" (" """) (string_content "identifier %s: qualified names not allowed in traditional / POSIX mode") (" """))) (; ";")) (} "}")))) (expression_statement "uVar3 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar3 = dcgettext(0,pcVar2,5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0001b070(DAT_000c3794,uVar3,param_1);" (call_expression "FUN_0001b070(DAT_000c3794,uVar3,param_1)" (identifier "FUN_0001b070") (argument_list "(DAT_000c3794,uVar3,param_1)" (( "(") (identifier "DAT_000c3794") (, ",") (identifier "uVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(char *token)

{
  char var_3;
  type_1 _Var2;
  char *var_2;
  
  var_2 = var_1(token,0x3a);
  _Var2 = true;
  if (var_2 != (char *)0x0) {
    if (((type_2)do_flags & 0x30) == 0) {
      if (var_2[1] == ':') {
        var_3 = var_2[2];
        if (((var_3 < 'A') || (('Z' < var_3 && (0x19 < (type_2)(var_3 + 0x9fU))))) && (var_3 != '_'))
        {
          var_2 = "qualified identifier `%s\' is badly formed";
        }
        else {
          var_2 = var_1(var_2 + 2,0x3a);
          if (var_2 == (char *)0x0) {
            return true;
          }
          var_2 = "identifier `%s\': namespace separator can only appear once in a qualified name";
        }
      }
      else {
        var_2 = "identifier %s: namespace separator is two colons, not one";
      }
    }
    else {
      var_2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";
    }
    var_2 = (char *)var_4(0,var_2,5);
    var_5(sourceline,var_2,token);
    _Var2 = false;
  }
  return _Var2;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (char_literal (character)) right: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(char *param_1)

{
  char cVar1;
  char *pcVar2;
  undefined4 uVar3;
  
  pcVar2 = strchr(param_1,0x3a);
  uVar3 = 1;
  if (pcVar2 != (char *)0x0) {
    if ((DAT_000c3760 & 0x30) == 0) {
      if (pcVar2[1] == ':') {
        cVar1 = pcVar2[2];
        if (((cVar1 < 'A') || (('Z' < cVar1 && (0x19 < (byte)(cVar1 + 0x9fU))))) && (cVar1 != '_'))
        {
          pcVar2 = "qualified identifier `%s\' is badly formed";
        }
        else {
          pcVar2 = strchr(pcVar2 + 2,0x3a);
          if (pcVar2 == (char *)0x0) {
            return 1;
          }
          pcVar2 = "identifier `%s\': namespace separator can only appear once in a qualified name";
        }
      }
      else {
        pcVar2 = "identifier %s: namespace separator is two colons, not one";
      }
    }
    else {
      pcVar2 = "identifier %s: qualified names not allowed in traditional / POSIX mode";
    }
    uVar3 = dcgettext(0,pcVar2,5);
    FUN_0001b070(DAT_000c3794,uVar3,param_1);
    uVar3 = 0;
  }
  return uVar3;
}

