
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void check_unmatched_names(Version_script_info * this, Symbol_table *
   symtab) */

void __thiscall
gold::Version_script_info::check_unmatched_names(Version_script_info *this,Symbol_table *symtab)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  Version_tree *pVVar2;
  pointer pcVar3;
  _Alloc_hider _Var4;
  bool bVar5;
  Symbol *pSVar6;
  char *format;
  pointer pVVar7;
  Version_expression_list *pVVar8;
  pointer ppVVar9;
  uint uVar10;
  uint local_40;
  string pattern;
  
  local_40 = 0;
  ppVVar9 = (this->version_trees_).
            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.
            _M_start;
  if ((this->version_trees_).
      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.
      _M_finish != ppVVar9) {
    do {
      pVVar2 = ppVVar9[local_40];
      pVVar8 = pVVar2->global;
      if ((pVVar8 != (Version_expression_list *)0x0) &&
         (pVVar7 = (pVVar8->expressions).
                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                   ._M_impl._M_start,
         pVVar7 != (pVVar8->expressions).
                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                   ._M_impl._M_finish)) {
        paVar1 = &pattern.field_2;
        uVar10 = 0;
        do {
          pVVar7 = pVVar7 + uVar10;
          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {
            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;
            pattern._M_dataplus._M_p = (pointer)paVar1;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);
            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {
              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)pattern._M_dataplus._M_p != paVar1) {
                operator_delete(pattern._M_dataplus._M_p);
                pVVar8 = pVVar2->global;
                goto LAB_0016cf2f;
              }
            }
            else {
                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */
              pSVar6 = Symbol_table::lookup
                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);
              _Var4 = pattern._M_dataplus;
              if (pSVar6 == (Symbol *)0x0) {
                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;
                format = (char *)gettext(
                                        "version script assignment of %s to symbol %s failed: symbol not defined"
                                        );
                gold_error(format,pcVar3,_Var4._M_p);
              }
              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)pattern._M_dataplus._M_p != paVar1) {
                operator_delete(pattern._M_dataplus._M_p);
              }
            }
            pVVar8 = pVVar2->global;
          }
LAB_0016cf2f:
          pVVar7 = (pVVar8->expressions).
                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                   ._M_impl._M_start;
          uVar10 = uVar10 + 1;
        } while (uVar10 < (uint)((int)(pVVar8->expressions).
                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                                      ._M_impl._M_finish - (int)pVVar7 >> 5));
        ppVVar9 = (this->version_trees_).
                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.
                  _M_impl._M_start;
      }
      local_40 = local_40 + 1;
    } while (local_40 <
             (uint)((int)(this->version_trees_).
                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>
                         ._M_impl._M_finish - (int)ppVVar9 >> 2));
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_0016ce50(int param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined1 *puVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  int iVar7;
  int *piVar8;
  int *piVar9;
  uint uVar10;
  uint local_40;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  local_40 = 0;
  iVar5 = *(int *)(param_1 + 0x18);
  if (*(int *)(param_1 + 0x1c) != iVar5) {
    do {
      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);
      piVar8 = (int *)puVar1[6];
      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {
        uVar10 = 0;
        do {
          piVar9 = (int *)(uVar10 * 0x20 + iVar7);
          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {
            local_34[0] = local_2c;
            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);
            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')
               ) {
              if (local_34[0] != local_2c) {
                FUN_001e6db0(local_34[0]);
                piVar8 = (int *)puVar1[6];
                goto LAB_0016cf2f;
              }
            }
            else {
                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */
              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);
              puVar3 = local_34[0];
              if (iVar5 == 0) {
                uVar2 = *puVar1;
                uVar6 = gettext(
                               "version script assignment of %s to symbol %s failed: symbol not defined"
                               );
                FUN_000654b0(uVar6,uVar2,puVar3);
              }
              if (local_34[0] != local_2c) {
                FUN_001e6db0(local_34[0]);
              }
            }
            piVar8 = (int *)puVar1[6];
          }
LAB_0016cf2f:
          iVar7 = *piVar8;
          uVar10 = uVar10 + 1;
        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));
        iVar5 = *(int *)(param_1 + 0x18);
      }
      local_40 = local_40 + 1;
    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));
  }
  return;
}


CALL 0x000559e6
ADD EAX,0x2221ab
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV dword ptr [EBP + -0x44],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x3c],0x0
MOV EBX,dword ptr [EAX + 0x18]
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EBP + 0x8]
CMP dword ptr [EAX + 0x1c],EBX
JZ 0x0016cf67
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x3c]
MOV EDI,dword ptr [EBX + EAX*0x4]
MOV EDX,dword ptr [EDI + 0x18]
TEST EDX,EDX
JZ 0x0016cf4a
MOV ECX,dword ptr [EDX]
CMP ECX,dword ptr [EDX + 0x4]
JZ 0x0016cf4a
LEA EAX,[EBP + -0x28]
XOR ESI,ESI
MOV dword ptr [EBP + -0x40],EAX
LEA ESI,[ESI]
MOV EBX,ESI
SHL EBX,0x5
ADD EBX,ECX
CMP byte ptr [EBX + 0x1d],0x0
JNZ 0x0016cf2f
MOV EAX,dword ptr [EBX + 0x18]
TEST EAX,EAX
JNZ 0x0016cf2f
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [EBX]
PUSH 0x0
MOV EDX,dword ptr [EBX + 0x4]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x48]
CALL 0x000513a0
ADD ESP,0x10
CMP byte ptr [EBX + 0x1c],0x0
JNZ 0x0016cefb
SUB ESP,0x8
PUSH dword ptr [EBP + -0x48]
PUSH dword ptr [EBP + 0x8]
CALL 0x0016a310
ADD ESP,0x10
TEST AL,AL
JNZ 0x0016cf70
SUB ESP,0x4
PUSH dword ptr [EDI]
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x30]
PUSH dword ptr [EBP + 0xc]
CALL 0x00179ab0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x30]
TEST EAX,EAX
JZ 0x0016cf90
CMP EDX,dword ptr [EBP + -0x40]
JZ 0x0016cf2c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [EDI + 0x18]
MOV ECX,dword ptr [EDX]
MOV EAX,dword ptr [EDX + 0x4]
ADD ESI,0x1
SUB EAX,ECX
SAR EAX,0x5
CMP ESI,EAX
JC 0x0016ceb0
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x3c],0x1
MOV EDI,dword ptr [EBP + -0x3c]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + -0x40],EAX
SUB EAX,EBX
SAR EAX,0x2
CMP EAX,EDI
JA 0x0016ce88
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,dword ptr [EBP + -0x40]
JZ 0x0016cf2c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [EDI + 0x18]
JMP 0x0016cf2f
MOV ECX,dword ptr [EDI]
SUB ESP,0xc
MOV dword ptr [EBP + -0x50],EDX
MOV dword ptr [EBP + -0x4c],ECX
MOV ECX,dword ptr [EBP + -0x44]
LEA EAX,[ECX + 0xfff0a498]
MOV EBX,ECX
PUSH EAX
CALL 0x000293b0
MOV EDX,dword ptr [EBP + -0x50]
MOV ECX,dword ptr [EBP + -0x4c]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDX
PUSH ECX
PUSH EAX
CALL 0x000654b0
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x30]
JMP 0x0016cf18
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0016ce50(int param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0016ce50(int param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0016ce50(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) != iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1c) != iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" { (do_statement "do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));" do (compound_statement "{\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + local_40 * 4)" * (cast_expression "(undefined4 **)(iVar5 + local_40 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + local_40 * 4)" ( (binary_expression "iVar5 + local_40 * 4" identifier + (binary_expression "local_40 * 4" identifier * number_literal)) ))))) ;) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) (if_statement "if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" if (parenthesized_expression "((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1]))" ( (binary_expression "(piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])" (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar7 = *piVar8, iVar7 != piVar8[1])" ( (comma_expression "iVar7 = *piVar8, iVar7 != piVar8[1]" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) , (binary_expression "iVar7 != piVar8[1]" identifier != (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));" do (compound_statement "{\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        }" { (expression_statement "piVar9 = (int *)(uVar10 * 0x20 + iVar7);" (assignment_expression "piVar9 = (int *)(uVar10 * 0x20 + iVar7)" identifier = (cast_expression "(int *)(uVar10 * 0x20 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 * 0x20 + iVar7)" ( (binary_expression "uVar10 * 0x20 + iVar7" (binary_expression "uVar10 * 0x20" identifier * number_literal) + identifier) )))) ;) (if_statement "if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" if (parenthesized_expression "((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0))" ( (binary_expression "(*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x1d) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x1d)" * (cast_expression "(char *)((int)piVar9 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x1d)" ( (binary_expression "(int)piVar9 + 0x1d" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar9[6] == 0)" ( (binary_expression "piVar9[6] == 0" (subscript_expression "piVar9[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" { (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);" (call_expression "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0)" identifier (argument_list "(local_34,*piVar9,piVar9[1] + *piVar9,0)" ( identifier , (pointer_expression "*piVar9" * identifier) , (binary_expression "piVar9[1] + *piVar9" (subscript_expression "piVar9[1]" identifier [ number_literal ]) + (pointer_expression "*piVar9" * identifier)) , number_literal ))) ;) (if_statement "if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" if (parenthesized_expression "(((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               )" ( (binary_expression "((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" (parenthesized_expression "((char)piVar9[7] == '\0')" ( (binary_expression "(char)piVar9[7] == '\0'" (cast_expression "(char)piVar9[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_0016a310(param_1,local_34)" identifier = (call_expression "FUN_0016a310(param_1,local_34)" identifier (argument_list "(param_1,local_34)" ( identifier , identifier )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }" { (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" { (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0016cf2f;" goto statement_identifier ;) })) }) (else_clause "else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" else (compound_statement "{\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" { comment (expression_statement "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);" (assignment_expression "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1)" identifier = (call_expression "FUN_00179ab0(param_2,local_34[0],*puVar1)" identifier (argument_list "(param_2,local_34[0],*puVar1)" ( identifier , (subscript_expression "local_34[0]" identifier [ number_literal ]) , (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "puVar3 = local_34[0];" (assignment_expression "puVar3 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" { (expression_statement "uVar2 = *puVar1;" (assignment_expression "uVar2 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );" (assignment_expression "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" identifier = (call_expression "gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" identifier (argument_list "(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" ( (string_literal ""version script assignment of %s to symbol %s failed: symbol not defined"" " string_content ") )))) ;) (expression_statement "FUN_000654b0(uVar6,uVar2,puVar3);" (call_expression "FUN_000654b0(uVar6,uVar2,puVar3)" identifier (argument_list "(uVar6,uVar2,puVar3)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n              }" { (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) }))) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0016cf2f:\n          iVar7 = *piVar8;" statement_identifier : (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;)) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 < (uint)(piVar8[1] - iVar7 >> 5))" ( (binary_expression "uVar10 < (uint)(piVar8[1] - iVar7 >> 5)" identifier < (call_expression "(uint)(piVar8[1] - iVar7 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar8[1] - iVar7 >> 5)" ( (binary_expression "piVar8[1] - iVar7 >> 5" (binary_expression "piVar8[1] - iVar7" (subscript_expression "piVar8[1]" identifier [ number_literal ]) - identifier) >> number_literal) )))) )) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2))" ( (binary_expression "local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" identifier < (call_expression "(uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" ( (binary_expression "*(int *)(param_1 + 0x1c) - iVar5 >> 2" (binary_expression "*(int *)(param_1 + 0x1c) - iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: void check_unmatched_names(Version_script_info * this, Symbol_table *\n   symtab) */\n\nvoid __thiscall\ngold::Version_script_info::check_unmatched_names(Version_script_info *this,Symbol_table *symtab)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  Version_tree *pVVar2;\n  pointer pcVar3;\n  _Alloc_hider _Var4;\n  bool bVar5;\n  Symbol *pSVar6;\n  char *format;\n  pointer pVVar7;\n  Version_expression_list *pVVar8;\n  pointer ppVVar9;\n  uint uVar10;\n  uint local_40;\n  string pattern;\n  \n  local_40 = 0;\n  ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n            _M_start;\n  if ((this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9) {\n    do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Version_script_info::check_unmatched_names(Version_script_info *this,Symbol_table *symtab)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  Version_tree *pVVar2;\n  pointer pcVar3;\n  _Alloc_hider _Var4;\n  bool bVar5;\n  Symbol *pSVar6;\n  char *format;\n  pointer pVVar7;\n  Version_expression_list *pVVar8;\n  pointer ppVVar9;\n  uint uVar10;\n  uint local_40;\n  string pattern;\n  \n  local_40 = 0;\n  ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n            _M_start;\n  if ((this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9) {\n    do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Version_script_info::" identifier : : identifier : :) (function_declarator "check_unmatched_names(Version_script_info *this,Symbol_table *symtab)" identifier (parameter_list "(Version_script_info *this,Symbol_table *symtab)" ( (parameter_declaration "Version_script_info *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  Version_tree *pVVar2;\n  pointer pcVar3;\n  _Alloc_hider _Var4;\n  bool bVar5;\n  Symbol *pSVar6;\n  char *format;\n  pointer pVVar7;\n  Version_expression_list *pVVar8;\n  pointer ppVVar9;\n  uint uVar10;\n  uint local_40;\n  string pattern;\n  \n  local_40 = 0;\n  ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n            _M_start;\n  if ((this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9) {\n    do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));\n  }\n  return;\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (declaration "Version_tree *pVVar2;" type_identifier (pointer_declarator "*pVVar2" * identifier) ;) (declaration "pointer pcVar3;" type_identifier identifier ;) (declaration "_Alloc_hider _Var4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "Symbol *pSVar6;" type_identifier (pointer_declarator "*pSVar6" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "pointer pVVar7;" type_identifier identifier ;) (declaration "Version_expression_list *pVVar8;" type_identifier (pointer_declarator "*pVVar8" * identifier) ;) (declaration "pointer ppVVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "string pattern;" type_identifier identifier ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n            _M_start" (field_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl" (binary_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold::Version_tree*,_std" (assignment_expression "ppVVar9 = (this->version_trees_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->version_trees_).\n            super__Vector_base<gold" (field_expression "(this->version_trees_).\n            super__Vector_base" (parenthesized_expression "(this->version_trees_)" ( (field_expression "this->version_trees_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9) {\n    do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));\n  }" if (parenthesized_expression "((this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9)" ( (binary_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish != ppVVar9" (field_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish" (field_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl" (binary_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "(this->version_trees_).\n      super__Vector_base<gold::Version_tree*,_std" (binary_expression "(this->version_trees_).\n      super__Vector_base<gold" (field_expression "(this->version_trees_).\n      super__Vector_base" (parenthesized_expression "(this->version_trees_)" ( (field_expression "this->version_trees_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (compound_statement "{\n    do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));\n  }" { (do_statement "do {\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2));" do (compound_statement "{\n      pVVar2 = ppVVar9[local_40];\n      pVVar8 = pVVar2->global;\n      if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "pVVar2 = ppVVar9[local_40];" (assignment_expression "pVVar2 = ppVVar9[local_40]" identifier = (subscript_expression "ppVVar9[local_40]" identifier [ identifier ])) ;) (expression_statement "pVVar8 = pVVar2->global;" (assignment_expression "pVVar8 = pVVar2->global" identifier = (field_expression "pVVar2->global" identifier -> field_identifier)) ;) (if_statement "if ((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)) {\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }" if (parenthesized_expression "((pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish))" ( (binary_expression "(pVVar8 != (Version_expression_list *)0x0) &&\n         (pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)" (parenthesized_expression "(pVVar8 != (Version_expression_list *)0x0)" ( (binary_expression "pVVar8 != (Version_expression_list *)0x0" identifier != (cast_expression "(Version_expression_list *)0x0" ( (type_descriptor "Version_expression_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_finish)" ( (ERROR "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std" (assignment_expression "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold" identifier = (binary_expression "(pVVar8->expressions).\n                   super__Vector_base<gold" (field_expression "(pVVar8->expressions).\n                   super__Vector_base" (parenthesized_expression "(pVVar8->expressions)" ( (field_expression "pVVar8->expressions" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Version_expression>_>\n                   ._M_impl._M_start,\n         pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold" (field_expression "Version_expression>_>\n                   ._M_impl._M_start" (field_expression "Version_expression>_>\n                   ._M_impl" (binary_expression "Version_expression>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) , (binary_expression "pVVar7 != (pVVar8->expressions).\n                   super__Vector_base<gold" identifier != (binary_expression "(pVVar8->expressions).\n                   super__Vector_base<gold" (field_expression "(pVVar8->expressions).\n                   super__Vector_base" (parenthesized_expression "(pVVar8->expressions)" ( (field_expression "pVVar8->expressions" identifier -> field_identifier) )) . field_identifier) < identifier))) : : (comma_expression "Version_expression,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Version_expression>_>\n                   ._M_impl._M_finish" (field_expression "Version_expression>_>\n                   ._M_impl" (binary_expression "Version_expression>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) )) (compound_statement "{\n        paVar1 = &pattern.field_2;\n        uVar10 = 0;\n        do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));\n        ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;\n      }" { (expression_statement "paVar1 = &pattern.field_2;" (assignment_expression "paVar1 = &pattern.field_2" identifier = (pointer_expression "&pattern.field_2" & (field_expression "pattern.field_2" identifier . field_identifier))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5));" do (compound_statement "{\n          pVVar7 = pVVar7 + uVar10;\n          if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }\nLAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;\n          uVar10 = uVar10 + 1;\n        }" { (expression_statement "pVVar7 = pVVar7 + uVar10;" (assignment_expression "pVVar7 = pVVar7 + uVar10" identifier = (binary_expression "pVVar7 + uVar10" identifier + identifier)) ;) (if_statement "if ((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)) {\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }" if (parenthesized_expression "((pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C))" ( (binary_expression "(pVVar7->was_matched_by_symbol == false) && (pVVar7->language == LANGUAGE_C)" (parenthesized_expression "(pVVar7->was_matched_by_symbol == false)" ( (binary_expression "pVVar7->was_matched_by_symbol == false" (field_expression "pVVar7->was_matched_by_symbol" identifier -> field_identifier) == false) )) && (parenthesized_expression "(pVVar7->language == LANGUAGE_C)" ( (binary_expression "pVVar7->language == LANGUAGE_C" (field_expression "pVVar7->language" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n            pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;\n            pattern._M_dataplus._M_p = (pointer)paVar1;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);\n            if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }\n            pVVar8 = pVVar2->global;\n          }" { (expression_statement "pcVar3 = (pVVar7->pattern)._M_dataplus._M_p;" (assignment_expression "pcVar3 = (pVVar7->pattern)._M_dataplus._M_p" identifier = (field_expression "(pVVar7->pattern)._M_dataplus._M_p" (field_expression "(pVVar7->pattern)._M_dataplus" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pattern._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "pattern._M_dataplus._M_p = (pointer)paVar1" (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0);" (binary_expression "_M_construct<char*>(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0)" ( (comma_expression "&pattern,pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0" (pointer_expression "&pattern" & identifier) , (comma_expression "pcVar3,pcVar3 + (pVVar7->pattern)._M_string_length,0" identifier , (comma_expression "pcVar3 + (pVVar7->pattern)._M_string_length,0" (binary_expression "pcVar3 + (pVVar7->pattern)._M_string_length" identifier + (field_expression "(pVVar7->pattern)._M_string_length" (parenthesized_expression "(pVVar7->pattern)" ( (field_expression "pVVar7->pattern" identifier -> field_identifier) )) . field_identifier)) , number_literal))) ))) ;)) (if_statement "if ((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)) {\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }" if (parenthesized_expression "((pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5))" ( (binary_expression "(pVVar7->exact_match == false) && (bVar5 = unquote(this,&pattern), bVar5)" (parenthesized_expression "(pVVar7->exact_match == false)" ( (binary_expression "pVVar7->exact_match == false" (field_expression "pVVar7->exact_match" identifier -> field_identifier) == false) )) && (parenthesized_expression "(bVar5 = unquote(this,&pattern), bVar5)" ( (comma_expression "bVar5 = unquote(this,&pattern), bVar5" (assignment_expression "bVar5 = unquote(this,&pattern)" identifier = (call_expression "unquote(this,&pattern)" identifier (argument_list "(this,&pattern)" ( identifier , (pointer_expression "&pattern" & identifier) )))) , identifier) ))) )) (compound_statement "{\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }\n            }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                   *)pattern._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n                operator_delete(pattern._M_dataplus._M_p);\n                pVVar8 = pVVar2->global;\n                goto LAB_0016cf2f;\n              }" { (expression_statement "operator_delete(pattern._M_dataplus._M_p);" (call_expression "operator_delete(pattern._M_dataplus._M_p)" identifier (argument_list "(pattern._M_dataplus._M_p)" ( (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "pVVar8 = pVVar2->global;" (assignment_expression "pVVar8 = pVVar2->global" identifier = (field_expression "pVVar2->global" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0016cf2f;" goto statement_identifier ;) })) }) (else_clause "else {\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }" else (compound_statement "{\n                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */\n              pSVar6 = Symbol_table::lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);\n              _Var4 = pattern._M_dataplus;\n              if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }\n              if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }\n            }" { comment (ERROR "pSVar6 = Symbol_table::" (assignment_expression "pSVar6 = Symbol_table" identifier = identifier) : :) (expression_statement "lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);" (call_expression "lookup\n                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p)" identifier (argument_list "(symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p)" ( identifier , (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier) , (field_expression "(pVVar2->tag)._M_dataplus._M_p" (field_expression "(pVVar2->tag)._M_dataplus" (parenthesized_expression "(pVVar2->tag)" ( (field_expression "pVVar2->tag" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "_Var4 = pattern._M_dataplus;" (assignment_expression "_Var4 = pattern._M_dataplus" identifier = (field_expression "pattern._M_dataplus" identifier . field_identifier)) ;) (if_statement "if (pSVar6 == (Symbol *)0x0) {\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }" if (parenthesized_expression "(pSVar6 == (Symbol *)0x0)" ( (binary_expression "pSVar6 == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar3 = (pVVar2->tag)._M_dataplus._M_p;\n                format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );\n                gold_error(format,pcVar3,_Var4._M_p);\n              }" { (expression_statement "pcVar3 = (pVVar2->tag)._M_dataplus._M_p;" (assignment_expression "pcVar3 = (pVVar2->tag)._M_dataplus._M_p" identifier = (field_expression "(pVVar2->tag)._M_dataplus._M_p" (field_expression "(pVVar2->tag)._M_dataplus" (parenthesized_expression "(pVVar2->tag)" ( (field_expression "pVVar2->tag" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        );" (assignment_expression "format = (char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        )" identifier = (cast_expression "(char *)gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        )" identifier (argument_list "(\n                                        "version script assignment of %s to symbol %s failed: symbol not defined"\n                                        )" ( (string_literal ""version script assignment of %s to symbol %s failed: symbol not defined"" " string_content ") ))))) ;) (expression_statement "gold_error(format,pcVar3,_Var4._M_p);" (call_expression "gold_error(format,pcVar3,_Var4._M_p)" identifier (argument_list "(format,pcVar3,_Var4._M_p)" ( identifier , identifier , (field_expression "_Var4._M_p" identifier . field_identifier) ))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1) {\n                operator_delete(pattern._M_dataplus._M_p);\n              }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n                   *)pattern._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                   *)pattern._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n                operator_delete(pattern._M_dataplus._M_p);\n              }" { (expression_statement "operator_delete(pattern._M_dataplus._M_p);" (call_expression "operator_delete(pattern._M_dataplus._M_p)" identifier (argument_list "(pattern._M_dataplus._M_p)" ( (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) }))) (expression_statement "pVVar8 = pVVar2->global;" (assignment_expression "pVVar8 = pVVar2->global" identifier = (field_expression "pVVar2->global" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_0016cf2f:\n          pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                   ._M_impl._M_start;" statement_identifier : (ERROR "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold::Version_expression,_std" (assignment_expression "pVVar7 = (pVVar8->expressions).\n                   super__Vector_base<gold" identifier = (binary_expression "(pVVar8->expressions).\n                   super__Vector_base<gold" (field_expression "(pVVar8->expressions).\n                   super__Vector_base" (parenthesized_expression "(pVVar8->expressions)" ( (field_expression "pVVar8->expressions" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_expression" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Version_expression>_>\n                   ._M_impl._M_start;" (field_expression "Version_expression>_>\n                   ._M_impl._M_start" (field_expression "Version_expression>_>\n                   ._M_impl" (binary_expression "Version_expression>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5))" ( (binary_expression "uVar10 < (uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5)" identifier < (call_expression "(uint)((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pVVar8->expressions).\n                                      super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5)" ( (binary_expression "(int)(pVVar8->expressions).\n                                      super__Vector_base<gold" (cast_expression "(int)(pVVar8->expressions).\n                                      super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar8->expressions).\n                                      super__Vector_base" (parenthesized_expression "(pVVar8->expressions)" ( (field_expression "pVVar8->expressions" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Version_expression" : : identifier) , (ERROR "_std::allocator<gold::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7 >> 5" (binary_expression "Version_expression>_>\n                                      ._M_impl._M_finish - (int)pVVar7" (field_expression "Version_expression>_>\n                                      ._M_impl._M_finish" (field_expression "Version_expression>_>\n                                      ._M_impl" (binary_expression "Version_expression>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pVVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) ;) (expression_statement "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start;" (field_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl._M_start" (field_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>.\n                  _M_impl" (binary_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold::Version_tree*,_std" (assignment_expression "ppVVar9 = (this->version_trees_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->version_trees_).\n                  super__Vector_base<gold" (field_expression "(this->version_trees_).\n                  super__Vector_base" (parenthesized_expression "(this->version_trees_)" ( (field_expression "this->version_trees_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2))" ( (binary_expression "local_40 <\n             (uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2)" identifier < (call_expression "(uint)((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2)" ( (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9 >> 2" (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish - (int)ppVVar9" (field_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl._M_finish" (field_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>\n                         ._M_impl" (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold::Version_tree*,_std" (binary_expression "(int)(this->version_trees_).\n                         super__Vector_base<gold" (cast_expression "(int)(this->version_trees_).\n                         super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->version_trees_).\n                         super__Vector_base" (parenthesized_expression "(this->version_trees_)" ( (field_expression "this->version_trees_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppVVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0016ce50(int param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}\n\n" (function_definition "void FUN_0016ce50(int param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0016ce50(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "undefined1 *local_34 [2];" type_identifier (pointer_declarator "*local_34 [2]" * (array_declarator "local_34 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1c) != iVar5)" ( (binary_expression "*(int *)(param_1 + 0x1c) != iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" { (do_statement "do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));" do (compound_statement "{\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + local_40 * 4)" * (cast_expression "(undefined4 **)(iVar5 + local_40 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + local_40 * 4)" ( (binary_expression "iVar5 + local_40 * 4" identifier + (binary_expression "local_40 * 4" identifier * number_literal)) ))))) ;) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) (if_statement "if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" if (parenthesized_expression "((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1]))" ( (binary_expression "(piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])" (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar7 = *piVar8, iVar7 != piVar8[1])" ( (comma_expression "iVar7 = *piVar8, iVar7 != piVar8[1]" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) , (binary_expression "iVar7 != piVar8[1]" identifier != (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));" do (compound_statement "{\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        }" { (expression_statement "piVar9 = (int *)(uVar10 * 0x20 + iVar7);" (assignment_expression "piVar9 = (int *)(uVar10 * 0x20 + iVar7)" identifier = (cast_expression "(int *)(uVar10 * 0x20 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 * 0x20 + iVar7)" ( (binary_expression "uVar10 * 0x20 + iVar7" (binary_expression "uVar10 * 0x20" identifier * number_literal) + identifier) )))) ;) (if_statement "if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" if (parenthesized_expression "((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0))" ( (binary_expression "(*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x1d) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x1d)" * (cast_expression "(char *)((int)piVar9 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x1d)" ( (binary_expression "(int)piVar9 + 0x1d" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar9[6] == 0)" ( (binary_expression "piVar9[6] == 0" (subscript_expression "piVar9[6]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" { (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);" (call_expression "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0)" identifier (argument_list "(local_34,*piVar9,piVar9[1] + *piVar9,0)" ( identifier , (pointer_expression "*piVar9" * identifier) , (binary_expression "piVar9[1] + *piVar9" (subscript_expression "piVar9[1]" identifier [ number_literal ]) + (pointer_expression "*piVar9" * identifier)) , number_literal ))) ;) (if_statement "if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" if (parenthesized_expression "(((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               )" ( (binary_expression "((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" (parenthesized_expression "((char)piVar9[7] == '\0')" ( (binary_expression "(char)piVar9[7] == '\0'" (cast_expression "(char)piVar9[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_0016a310(param_1,local_34)" identifier = (call_expression "FUN_0016a310(param_1,local_34)" identifier (argument_list "(param_1,local_34)" ( identifier , identifier )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }" { (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" { (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0016cf2f;" goto statement_identifier ;) })) }) (else_clause "else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" else (compound_statement "{\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" { (expression_statement "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);" (assignment_expression "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1)" identifier = (call_expression "FUN_00179ab0(param_2,local_34[0],*puVar1)" identifier (argument_list "(param_2,local_34[0],*puVar1)" ( identifier , (subscript_expression "local_34[0]" identifier [ number_literal ]) , (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "puVar3 = local_34[0];" (assignment_expression "puVar3 = local_34[0]" identifier = (subscript_expression "local_34[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" { (expression_statement "uVar2 = *puVar1;" (assignment_expression "uVar2 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );" (assignment_expression "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" identifier = (call_expression "gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" identifier (argument_list "(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" ( (string_literal ""version script assignment of %s to symbol %s failed: symbol not defined"" " string_content ") )))) ;) (expression_statement "FUN_000654b0(uVar6,uVar2,puVar3);" (call_expression "FUN_000654b0(uVar6,uVar2,puVar3)" identifier (argument_list "(uVar6,uVar2,puVar3)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }" if (parenthesized_expression "(local_34[0] != local_2c)" ( (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n              }" { (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) }))) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" identifier = (cast_expression "(int *)puVar1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[6]" identifier [ number_literal ]))) ;) })) (labeled_statement "LAB_0016cf2f:\n          iVar7 = *piVar8;" statement_identifier : (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;)) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 < (uint)(piVar8[1] - iVar7 >> 5))" ( (binary_expression "uVar10 < (uint)(piVar8[1] - iVar7 >> 5)" identifier < (call_expression "(uint)(piVar8[1] - iVar7 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar8[1] - iVar7 >> 5)" ( (binary_expression "piVar8[1] - iVar7 >> 5" (binary_expression "piVar8[1] - iVar7" (subscript_expression "piVar8[1]" identifier [ number_literal ]) - identifier) >> number_literal) )))) )) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2))" ( (binary_expression "local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" identifier < (call_expression "(uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" ( (binary_expression "*(int *)(param_1 + 0x1c) - iVar5 >> 2" (binary_expression "*(int *)(param_1 + 0x1c) - iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) - identifier) >> number_literal) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )))) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0016ce50(int param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0016ce50(int param_1,undefined4 param_2)" (identifier "FUN_0016ce50") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  undefined1 *puVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  uint uVar10;\n  uint local_40;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  local_40 = 0;\n  iVar5 = *(int *)(param_1 + 0x18);\n  if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "undefined1 *local_34 [2];" (type_identifier "undefined1") (pointer_declarator "*local_34 [2]" (* "*") (array_declarator "local_34 [2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1c) != iVar5) {\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1c) != iVar5)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) != iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (identifier "iVar5")) () ")")) (compound_statement "{\n    do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));\n  }" ({ "{") (do_statement "do {\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));" (do "do") (compound_statement "{\n      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);\n      piVar8 = (int *)puVar1[6];\n      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }\n      local_40 = local_40 + 1;\n    }" ({ "{") (expression_statement "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);" (assignment_expression "puVar1 = *(undefined4 **)(iVar5 + local_40 * 4)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(iVar5 + local_40 * 4)" (* "*") (cast_expression "(undefined4 **)(iVar5 + local_40 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + local_40 * 4)" (( "(") (binary_expression "iVar5 + local_40 * 4" (identifier "iVar5") (+ "+") (binary_expression "local_40 * 4" (identifier "local_40") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" (identifier "piVar8") (= "=") (cast_expression "(int *)puVar1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" (if "if") (parenthesized_expression "((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1]))" (( "(") (binary_expression "(piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])" (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = *piVar8, iVar7 != piVar8[1])" (( "(") (comma_expression "iVar7 = *piVar8, iVar7 != piVar8[1]" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (, ",") (binary_expression "iVar7 != piVar8[1]" (identifier "iVar7") (!= "!=") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")))) () ")"))) () ")")) (compound_statement "{\n        uVar10 = 0;\n        do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));\n        iVar5 = *(int *)(param_1 + 0x18);\n      }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));" (do "do") (compound_statement "{\n          piVar9 = (int *)(uVar10 * 0x20 + iVar7);\n          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }\nLAB_0016cf2f:\n          iVar7 = *piVar8;\n          uVar10 = uVar10 + 1;\n        }" ({ "{") (expression_statement "piVar9 = (int *)(uVar10 * 0x20 + iVar7);" (assignment_expression "piVar9 = (int *)(uVar10 * 0x20 + iVar7)" (identifier "piVar9") (= "=") (cast_expression "(int *)(uVar10 * 0x20 + iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 * 0x20 + iVar7)" (( "(") (binary_expression "uVar10 * 0x20 + iVar7" (binary_expression "uVar10 * 0x20" (identifier "uVar10") (* "*") (number_literal "0x20")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (if_statement "if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" (if "if") (parenthesized_expression "((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0))" (( "(") (binary_expression "(*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x1d) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x1d)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x1d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x1d)" (( "(") (binary_expression "(int)piVar9 + 0x1d" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x1d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(piVar9[6] == 0)" (( "(") (binary_expression "piVar9[6] == 0" (subscript_expression "piVar9[6]" (identifier "piVar9") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            local_34[0] = local_2c;\n            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);\n            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }\n            piVar8 = (int *)puVar1[6];\n          }" ({ "{") (expression_statement "local_34[0] = local_2c;" (assignment_expression "local_34[0] = local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);" (call_expression "FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0)" (identifier "FUN_000513a0") (argument_list "(local_34,*piVar9,piVar9[1] + *piVar9,0)" (( "(") (identifier "local_34") (, ",") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (, ",") (binary_expression "piVar9[1] + *piVar9" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               ) {\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }\n            else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" (if "if") (parenthesized_expression "(((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')\n               )" (( "(") (binary_expression "((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" (parenthesized_expression "((char)piVar9[7] == '\0')" (( "(") (binary_expression "(char)piVar9[7] == '\0'" (cast_expression "(char)piVar9[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar9[7]" (identifier "piVar9") ([ "[") (number_literal "7") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')" (( "(") (comma_expression "cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_0016a310(param_1,local_34)" (identifier "cVar4") (= "=") (call_expression "FUN_0016a310(param_1,local_34)" (identifier "FUN_0016a310") (argument_list "(param_1,local_34)" (( "(") (identifier "param_1") (, ",") (identifier "local_34") () ")")))) (, ",") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }\n            }" ({ "{") (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n                piVar8 = (int *)puVar1[6];\n                goto LAB_0016cf2f;\n              }" ({ "{") (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" (identifier "FUN_001e6db0") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" (identifier "piVar8") (= "=") (cast_expression "(int *)puVar1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (goto_statement "goto LAB_0016cf2f;" (goto "goto") (statement_identifier "LAB_0016cf2f") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" (else "else") (compound_statement "{\n                    \n              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);\n              puVar3 = local_34[0];\n              if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }\n              if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }\n            }" ({ "{") (expression_statement "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);" (assignment_expression "iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1)" (identifier "iVar5") (= "=") (call_expression "FUN_00179ab0(param_2,local_34[0],*puVar1)" (identifier "FUN_00179ab0") (argument_list "(param_2,local_34[0],*puVar1)" (( "(") (identifier "param_2") (, ",") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")")))) (; ";")) (expression_statement "puVar3 = local_34[0];" (assignment_expression "puVar3 = local_34[0]" (identifier "puVar3") (= "=") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar5 == 0) {\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar2 = *puVar1;\n                uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );\n                FUN_000654b0(uVar6,uVar2,puVar3);\n              }" ({ "{") (expression_statement "uVar2 = *puVar1;" (assignment_expression "uVar2 = *puVar1" (identifier "uVar2") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               );" (assignment_expression "uVar6 = gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" (identifier "uVar6") (= "=") (call_expression "gettext(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" (identifier "gettext") (argument_list "(\n                               "version script assignment of %s to symbol %s failed: symbol not defined"\n                               )" (( "(") (string_literal ""version script assignment of %s to symbol %s failed: symbol not defined"" (" """) (string_content "version script assignment of %s to symbol %s failed: symbol not defined") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000654b0(uVar6,uVar2,puVar3);" (call_expression "FUN_000654b0(uVar6,uVar2,puVar3)" (identifier "FUN_000654b0") (argument_list "(uVar6,uVar2,puVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar2") (, ",") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_34[0] != local_2c) {\n                FUN_001e6db0(local_34[0]);\n              }" (if "if") (parenthesized_expression "(local_34[0] != local_2c)" (( "(") (binary_expression "local_34[0] != local_2c" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n                FUN_001e6db0(local_34[0]);\n              }" ({ "{") (expression_statement "FUN_001e6db0(local_34[0]);" (call_expression "FUN_001e6db0(local_34[0])" (identifier "FUN_001e6db0") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar8 = (int *)puVar1[6];" (assignment_expression "piVar8 = (int *)puVar1[6]" (identifier "piVar8") (= "=") (cast_expression "(int *)puVar1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}"))) (labeled_statement "LAB_0016cf2f:\n          iVar7 = *piVar8;" (statement_identifier "LAB_0016cf2f") (: ":") (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";"))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 < (uint)(piVar8[1] - iVar7 >> 5))" (( "(") (binary_expression "uVar10 < (uint)(piVar8[1] - iVar7 >> 5)" (identifier "uVar10") (< "<") (call_expression "(uint)(piVar8[1] - iVar7 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar8[1] - iVar7 >> 5)" (( "(") (binary_expression "piVar8[1] - iVar7 >> 5" (binary_expression "piVar8[1] - iVar7" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar7")) (>> ">>") (number_literal "5")) () ")")))) () ")")) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x18)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2))" (( "(") (binary_expression "local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" (identifier "local_40") (< "<") (call_expression "(uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x1c) - iVar5 >> 2)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) - iVar5 >> 2" (binary_expression "*(int *)(param_1 + 0x1c) - iVar5" (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (- "-") (identifier "iVar5")) (>> ">>") (number_literal "2")) () ")")))) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void check_unmatched_names(Version_script_info * this, Symbol_table *
   symtab) */

void __thiscall
var_6::type_1::function_1(type_1 *this,type_2 *symtab)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,var_7::char_traits<var_2>,var_7::var_1<var_2>var_3>var_4
  *var_5;
  type_3 *pVVar2;
  type_4 var_15;
  type_5 _Var4;
  bool bVar5;
  type_6 *var_19;
  char *format;
  type_4 var_11;
  type_7 *var_9;
  type_4 var_8;
  type_8 var_12;
  type_8 var_22;
  type_9 pattern;
  
  var_22 = 0;
  var_8 = (this->version_trees_).
            super__Vector_base<var_6::type_3*,var_7::var_1<var_6::type_3*>var_3>._M_impl.
            _M_start;
  if ((this->version_trees_).
      super__Vector_base<var_6::type_3*,var_7::var_1<var_6::type_3*>var_3>._M_impl.
      _M_finish != var_8) {
    do {
      pVVar2 = var_8[var_22];
      var_9 = pVVar2->global;
      if ((var_9 != (type_7 *)0x0) &&
         (var_11 = (var_9->expressions).
                   super__Vector_base<var_6::var_10,var_7::var_1<var_6::var_10>var_3>
                   ._M_impl._M_start,
         var_11 != (var_9->expressions).
                   super__Vector_base<var_6::var_10,var_7::var_1<var_6::var_10>var_3>
                   ._M_impl._M_finish)) {
        var_5 = &pattern.field_2;
        var_12 = 0;
        do {
          var_11 = var_11 + var_12;
          if ((var_11->was_matched_by_symbol == false) && (var_11->language == var_13)) {
            var_15 = (var_11->pattern)._M_dataplus._M_p;
            pattern._M_dataplus._M_p = (type_4)var_5;
            std::__cxx11::basic_string<var_2,var_7::char_traits<var_2>,var_7::var_1<var_2>var_3>::
            var_14<var_2*>(&pattern,var_15,var_15 + (var_11->pattern)._M_string_length,0);
            if ((var_11->exact_match == false) && (bVar5 = var_16(this,&pattern), bVar5)) {
              if ((anon_union_16_2_edb7204a_for_basic_string<var_2,var_7::char_traits<var_2>,var_7::var_1<var_2>var_3>var_4
                   *)pattern._M_dataplus._M_p != var_5) {
                var_17(pattern._M_dataplus._M_p);
                var_9 = pVVar2->global;
                goto LAB_0016cf2f;
              }
            }
            else {
                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */
              var_19 = type_2::var_18
                                 (symtab,pattern._M_dataplus._M_p,(pVVar2->tag)._M_dataplus._M_p);
              _Var4 = pattern._M_dataplus;
              if (var_19 == (type_6 *)0x0) {
                var_15 = (pVVar2->tag)._M_dataplus._M_p;
                format = (char *)var_20(
                                        "version script assignment of %s to symbol %s failed: symbol not defined"
                                        );
                var_21(format,var_15,_Var4._M_p);
              }
              if ((anon_union_16_2_edb7204a_for_basic_string<var_2,var_7::char_traits<var_2>,var_7::var_1<var_2>var_3>var_4
                   *)pattern._M_dataplus._M_p != var_5) {
                var_17(pattern._M_dataplus._M_p);
              }
            }
            var_9 = pVVar2->global;
          }
LAB_0016cf2f:
          var_11 = (var_9->expressions).
                   super__Vector_base<var_6::var_10,var_7::var_1<var_6::var_10>var_3>
                   ._M_impl._M_start;
          var_12 = var_12 + 1;
        } while (var_12 < (type_8)((int)(var_9->expressions).
                                      super__Vector_base<var_6::var_10,var_7::var_1<var_6::var_10>var_3>
                                      ._M_impl._M_finish - (int)var_11 >> 5));
        var_8 = (this->version_trees_).
                  super__Vector_base<var_6::type_3*,var_7::var_1<var_6::type_3*>var_3>.
                  _M_impl._M_start;
      }
      var_22 = var_22 + 1;
    } while (var_22 <
             (type_8)((int)(this->version_trees_).
                         super__Vector_base<var_6::type_3*,var_7::var_1<var_6::type_3*>var_3>
                         ._M_impl._M_finish - (int)var_8 >> 2));
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier))) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (number_literal))))))))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  undefined1 *puVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  int iVar7;
  int *piVar8;
  int *piVar9;
  uint uVar10;
  uint local_40;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  local_40 = 0;
  iVar5 = *(int *)(param_1 + 0x18);
  if (*(int *)(param_1 + 0x1c) != iVar5) {
    do {
      puVar1 = *(undefined4 **)(iVar5 + local_40 * 4);
      piVar8 = (int *)puVar1[6];
      if ((piVar8 != (int *)0x0) && (iVar7 = *piVar8, iVar7 != piVar8[1])) {
        uVar10 = 0;
        do {
          piVar9 = (int *)(uVar10 * 0x20 + iVar7);
          if ((*(char *)((int)piVar9 + 0x1d) == '\0') && (piVar9[6] == 0)) {
            local_34[0] = local_2c;
            FUN_000513a0(local_34,*piVar9,piVar9[1] + *piVar9,0);
            if (((char)piVar9[7] == '\0') && (cVar4 = FUN_0016a310(param_1,local_34), cVar4 != '\0')
               ) {
              if (local_34[0] != local_2c) {
                FUN_001e6db0(local_34[0]);
                piVar8 = (int *)puVar1[6];
                goto LAB_0016cf2f;
              }
            }
            else {
                    /* try { // try from 0016cf09 to 0016cfbf has its CatchHandler @ 0016cfcb */
              iVar5 = FUN_00179ab0(param_2,local_34[0],*puVar1);
              puVar3 = local_34[0];
              if (iVar5 == 0) {
                uVar2 = *puVar1;
                uVar6 = gettext(
                               "version script assignment of %s to symbol %s failed: symbol not defined"
                               );
                FUN_000654b0(uVar6,uVar2,puVar3);
              }
              if (local_34[0] != local_2c) {
                FUN_001e6db0(local_34[0]);
              }
            }
            piVar8 = (int *)puVar1[6];
          }
LAB_0016cf2f:
          iVar7 = *piVar8;
          uVar10 = uVar10 + 1;
        } while (uVar10 < (uint)(piVar8[1] - iVar7 >> 5));
        iVar5 = *(int *)(param_1 + 0x18);
      }
      local_40 = local_40 + 1;
    } while (local_40 < (uint)(*(int *)(param_1 + 0x1c) - iVar5 >> 2));
  }
  return;
}

