
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void build_expression_list_lookup(Version_script_info * this,
   Version_expression_list * explist, Version_tree * v, bool is_global) */

void __thiscall
gold::Version_script_info::build_expression_list_lookup
          (Version_script_info *this,Version_expression_list *explist,Version_tree *v,bool is_global
          )

{
  pointer pcVar1;
  iterator __position;
  Language LVar2;
  Version_tree *pVVar3;
  size_t __n;
  pointer __s2;
  bool bVar4;
  int iVar5;
  Exact *pe;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  pointer pVVar9;
  Version_expression *ve;
  int iVar10;
  Glob local_40;
  string pattern;
  
  if (explist != (Version_expression_list *)0x0) {
    pVVar9 = (explist->expressions).
             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
             ._M_impl._M_start;
    iVar5 = (int)(explist->expressions).
                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                 ._M_impl._M_finish - (int)pVVar9 >> 5;
    if (iVar5 != 0) {
      iVar10 = 0;
      while( true ) {
        ve = pVVar9 + iVar10;
        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {
          pVVar3 = this->default_version_;
          if (pVVar3 != (Version_tree *)0x0) {
            __n = (pVVar3->tag)._M_string_length;
            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;
            __s2 = (v->tag)._M_dataplus._M_p;
            if ((__n == (v->tag)._M_string_length) &&
               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {
              if (this->default_is_global_ != is_global) {
                pcVar6 = (char *)gettext(
                                        "wildcard match appears as both global and local in version \'%s\' in script"
                                        );
                gold_error(pcVar6,__s2);
              }
            }
            else {
              pcVar6 = (char *)gettext(
                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"
                                      );
              gold_warning(pcVar6,pcVar1,__s2);
            }
          }
          this->default_version_ = v;
          this->default_is_global_ = is_global;
        }
        else {
          pcVar1 = (ve->pattern)._M_dataplus._M_p;
          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;
          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);
          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {
            local_40.version = v;
            local_40.is_global = is_global;
            __position._M_current =
                 (this->globs_).
                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>
                 ._M_impl._M_finish;
            local_40.expression = ve;
            if (__position._M_current ==
                (this->globs_).
                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>
                ._M_impl._M_end_of_storage) {
                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */
              std::
              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>
              ::_M_realloc_insert<gold::Version_script_info::Glob>
                        (&this->globs_,__position,&local_40);
            }
            else {
              (__position._M_current)->expression = ve;
              (__position._M_current)->version = v;
              (__position._M_current)->is_global = local_40.is_global;
              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;
              (this->globs_).
              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>
              ._M_impl._M_finish = __position._M_current + 1;
            }
          }
          else {
            pe = this->exact_[ve->language];
            if (pe == (Exact *)0x0) {
                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */
              pe = (Exact *)operator_new(0x1c);
              uVar8 = 0;
              do {
                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;
                uVar8 = uVar8 + 4;
              } while (uVar8 < 0x1c);
              (pe->_M_h)._M_bucket_count = 1;
              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;
              LVar2 = ve->language;
              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
              (pe->_M_h)._M_element_count = 0;
              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;
              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;
              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;
              this->exact_[LVar2] = pe;
            }
                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */
            add_exact_match(this,&pattern,v,is_global,ve,pe);
          }
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)pattern._M_dataplus._M_p != &pattern.field_2) {
            operator_delete(pattern._M_dataplus._M_p);
          }
        }
        iVar10 = iVar10 + 1;
        if (iVar5 == iVar10) break;
        pVVar9 = (explist->expressions).
                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>
                 ._M_impl._M_start;
      }
      return;
    }
  }
  return;
}



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

void FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)

{
  undefined4 *puVar1;
  size_t __n;
  void *__s1;
  void *__s2;
  char cVar2;
  int iVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  int *piVar8;
  int iVar9;
  int *local_40;
  undefined4 *local_3c;
  undefined4 local_38;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  if (param_2 != (int *)0x0) {
    iVar6 = *param_2;
    iVar3 = param_2[1] - iVar6 >> 5;
    if (iVar3 != 0) {
      iVar9 = 0;
      while( true ) {
        piVar8 = (int *)(iVar6 + iVar9 * 0x20);
        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {
          puVar1 = *(undefined4 **)(param_1 + 0x3c);
          if (puVar1 != (undefined4 *)0x0) {
            __n = puVar1[1];
            __s1 = (void *)*puVar1;
            __s2 = (void *)*param_3;
            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))
            {
              if (*(char *)(param_1 + 0x40) != param_4) {
                uVar5 = gettext(
                               "wildcard match appears as both global and local in version \'%s\' in script"
                               );
                FUN_0005ad00(uVar5,__s2);
              }
            }
            else {
              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");
              FUN_0005ad30(uVar5,__s1,__s2);
            }
          }
          *(undefined4 **)(param_1 + 0x3c) = param_3;
          *(char *)(param_1 + 0x40) = param_4;
        }
        else {
          local_34[0] = local_2c;
          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);
          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))
          {
            local_3c = param_3;
            local_38 = CONCAT31(local_38._1_3_,param_4);
            puVar1 = *(undefined4 **)(param_1 + 0x34);
            local_40 = piVar8;
            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {
                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */
              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);
            }
            else {
              *puVar1 = piVar8;
              puVar1[1] = param_3;
              puVar1[2] = local_38;
              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;
            }
          }
          else {
            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);
            if (piVar4 == (int *)0x0) {
                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */
              piVar4 = (int *)FUN_0017ebf0(0x1c);
              uVar7 = 0;
              do {
                *(undefined4 *)((int)piVar4 + uVar7) = 0;
                uVar7 = uVar7 + 4;
              } while (uVar7 < 0x1c);
              piVar4[1] = 1;
              *piVar4 = (int)(piVar4 + 6);
              iVar6 = piVar8[6];
              piVar4[2] = 0;
              piVar4[3] = 0;
              piVar4[4] = 0x3f800000;
              piVar4[5] = 0;
              piVar4[6] = 0;
              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;
            }
                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */
            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);
          }
          if (local_34[0] != local_2c) {
            FUN_001807a0(local_34[0]);
          }
        }
        iVar9 = iVar9 + 1;
        if (iVar3 == iVar9) break;
        iVar6 = *param_2;
      }
      return;
    }
  }
  return;
}


CALL 0x0004fb76
ADD EAX,0x1e7dab
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
MOV dword ptr [EBP + -0x5c],EAX
MOV EBX,dword ptr [EBP + 0xc]
MOVZX EAX,byte ptr [EBP + 0x14]
MOV byte ptr [EBP + -0x51],AL
TEST EBX,EBX
JZ 0x0011a3f0
MOV EAX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x4c],EAX
SUB EAX,ESI
SAR EAX,0x5
MOV dword ptr [EBP + -0x58],EAX
JZ 0x0011a3f0
LEA EAX,[EBP + -0x30]
XOR EDI,EDI
MOV dword ptr [EBP + -0x4c],EAX
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x50],EAX
JMP 0x0011a2fd
MOV EAX,dword ptr [ESI + 0x18]
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBX + EAX*0x4 + 0x24]
TEST EAX,EAX
JZ 0x0011a390
SUB ESP,0x8
PUSH EAX
MOVZX EAX,byte ptr [EBP + -0x51]
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + 0x10]
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + 0x8]
CALL 0x00119f70
ADD ESP,0x20
MOV EAX,dword ptr [EBP + -0x30]
CMP EAX,dword ptr [EBP + -0x50]
JZ 0x0011a2ec
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
ADD EDI,0x1
CMP dword ptr [EBP + -0x58],EDI
JZ 0x0011a3f0
MOV EAX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EAX]
MOV EAX,EDI
SHL EAX,0x5
ADD ESI,EAX
CMP dword ptr [ESI + 0x4],0x1
JNZ 0x0011a315
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x2a
JZ 0x0011a400
MOV EAX,dword ptr [EBP + -0x50]
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,dword ptr [ESI]
PUSH 0x0
MOV EDX,dword ptr [ESI + 0x4]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x4c]
CALL 0x0004d4e0
ADD ESP,0x10
CMP byte ptr [ESI + 0x1c],0x0
JNZ 0x0011a2a8
SUB ESP,0x8
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + 0x8]
CALL 0x00115ac0
ADD ESP,0x10
TEST AL,AL
JZ 0x0011a2a8
MOV EAX,dword ptr [EBP + 0x10]
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x3c],ESI
MOV dword ptr [EBP + -0x38],EAX
MOVZX EAX,byte ptr [EBP + -0x51]
MOV byte ptr [EBP + -0x34],AL
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x34]
CMP EAX,dword ptr [ECX + 0x38]
JZ 0x0011a4b0
MOV dword ptr [EAX],ESI
MOV EDX,dword ptr [EBP + -0x38]
ADD EAX,0xc
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [EBP + -0x34]
MOV dword ptr [EAX + -0x4],EDX
MOV dword ptr [ECX + 0x34],EAX
JMP 0x0011a2d5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH 0x1c
CALL 0x0017ebf0
ADD ESP,0x10
XOR ECX,ECX
XOR EDX,EDX
MOV dword ptr [EAX + EDX*0x1],ECX
ADD EDX,0x4
CMP EDX,0x1c
JC 0x0011a3a4
LEA EDX,[EAX + 0x18]
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0x4],0x1
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESI + 0x18]
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX + 0x10],0x3f800000
MOV dword ptr [EAX + 0x14],0x0
MOV dword ptr [EAX + 0x18],0x0
MOV dword ptr [ECX + EDX*0x4 + 0x24],EAX
JMP 0x0011a2ba
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x3c]
TEST EAX,EAX
JZ 0x0011a442
MOV ECX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EAX]
CMP ECX,dword ptr [EAX + 0x4]
JZ 0x0011a460
MOV EBX,dword ptr [EBP + -0x5c]
SUB ESP,0xc
MOV dword ptr [EBP + -0x60],EDX
LEA EAX,[EBX + 0xfff2e580]
PUSH EAX
CALL 0x000263b0
MOV EDX,dword ptr [EBP + -0x60]
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x5c]
PUSH ESI
PUSH EDX
PUSH EAX
CALL 0x0005ad30
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0x10]
MOV EBX,EAX
MOV dword ptr [EAX + 0x3c],ECX
MOVZX EAX,byte ptr [EBP + -0x51]
MOV byte ptr [EBX + 0x40],AL
JMP 0x0011a2ec
TEST ECX,ECX
JZ 0x0011a47f
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x60],EDX
PUSH ECX
PUSH ESI
PUSH EDX
CALL 0x00026130
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x60]
TEST EAX,EAX
JNZ 0x0011a419
MOV EBX,dword ptr [EBP + 0x8]
MOVZX EAX,byte ptr [EBP + -0x51]
CMP byte ptr [EBX + 0x40],AL
JZ 0x0011a442
MOV ECX,dword ptr [EBP + -0x5c]
SUB ESP,0xc
LEA EAX,[ECX + 0xfff2e5c0]
MOV EBX,ECX
PUSH EAX
CALL 0x000263b0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
MOV EBX,dword ptr [EBP + -0x5c]
CALL 0x0005ad00
ADD ESP,0x10
JMP 0x0011a442
SUB ESP,0x4
LEA EDX,[EBP + -0x3c]
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,0x30
PUSH EAX
CALL 0x0011aef0
ADD ESP,0x10
JMP 0x0011a2d5
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)" identifier (parameter_list "(int param_1,int *param_2,undefined4 *param_3,char param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "void *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" 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 ]) ;) (if_statement "if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" { (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar3 = param_2[1] - iVar6 >> 5;" (assignment_expression "iVar3 = param_2[1] - iVar6 >> 5" identifier = (binary_expression "param_2[1] - iVar6 >> 5" (binary_expression "param_2[1] - iVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) - identifier) >> number_literal)) ;) (if_statement "if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" { (expression_statement "piVar8 = (int *)(iVar6 + iVar9 * 0x20);" (assignment_expression "piVar8 = (int *)(iVar6 + iVar9 * 0x20)" identifier = (cast_expression "(int *)(iVar6 + iVar9 * 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar9 * 0x20)" ( (binary_expression "iVar6 + iVar9 * 0x20" identifier + (binary_expression "iVar9 * 0x20" identifier * number_literal)) )))) ;) (if_statement "if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" if (parenthesized_expression "((piVar8[1] == 1) && (*(char *)*piVar8 == '*'))" ( (binary_expression "(piVar8[1] == 1) && (*(char *)*piVar8 == '*')" (parenthesized_expression "(piVar8[1] == 1)" ( (binary_expression "piVar8[1] == 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)*piVar8 == '*')" ( (binary_expression "*(char *)*piVar8 == '*'" (pointer_expression "*(char *)*piVar8" * (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) == (char_literal "'*'" ' character ')) ))) )) (compound_statement "{\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }" { (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" if (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" ( (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" { (expression_statement "__n = puVar1[1];" (assignment_expression "__n = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "__s1 = (void *)*puVar1;" (assignment_expression "__s1 = (void *)*puVar1" identifier = (cast_expression "(void *)*puVar1" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "__s2 = (void *)*param_3;" (assignment_expression "__s2 = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" if (parenthesized_expression "((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))" ( (binary_expression "(__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" (parenthesized_expression "(__n == param_3[1])" ( (binary_expression "__n == param_3[1]" identifier == (subscript_expression "param_3[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" ( (parenthesized_expression "(__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))" ( (binary_expression "__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" (binary_expression "__n == 0" identifier == number_literal) || (parenthesized_expression "(iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" ( (comma_expression "iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0" (assignment_expression "iVar6 = memcmp(__s1,__s2,__n)" identifier = (call_expression "memcmp(__s1,__s2,__n)" identifier (argument_list "(__s1,__s2,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }" { (if_statement "if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" if (parenthesized_expression "(*(char *)(param_1 + 0x40) != param_4)" ( (binary_expression "*(char *)(param_1 + 0x40) != param_4" (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" { (expression_statement "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );" (assignment_expression "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" identifier = (call_expression "gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" identifier (argument_list "(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" ( (string_literal ""wildcard match appears as both global and local in version \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar5,__s2);" (call_expression "FUN_0005ad00(uVar5,__s2)" identifier (argument_list "(uVar5,__s2)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" else (compound_statement "{\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" { (expression_statement "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");" (assignment_expression "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" identifier = (call_expression "gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" identifier (argument_list "("wildcard match appears in both version \'%s\' and \'%s\' in script")" ( (string_literal ""wildcard match appears in both version \'%s\' and \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar5,__s1,__s2);" (call_expression "FUN_0005ad30(uVar5,__s1,__s2)" identifier (argument_list "(uVar5,__s1,__s2)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = param_3;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = param_3" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x40) = param_4;" (assignment_expression "*(char *)(param_1 + 0x40) = param_4" (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" else (compound_statement "{\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\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_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);" (call_expression "FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0)" identifier (argument_list "(local_34,*piVar8,piVar8[1] + *piVar8,0)" ( identifier , (pointer_expression "*piVar8" * identifier) , (binary_expression "piVar8[1] + *piVar8" (subscript_expression "piVar8[1]" identifier [ number_literal ]) + (pointer_expression "*piVar8" * identifier)) , number_literal ))) ;) (if_statement "if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" if (parenthesized_expression "(((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))" ( (binary_expression "((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" (parenthesized_expression "((char)piVar8[7] == '\0')" ( (binary_expression "(char)piVar8[7] == '\0'" (cast_expression "(char)piVar8[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" ( (comma_expression "cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_00115ac0(param_1,local_34)" identifier = (call_expression "FUN_00115ac0(param_1,local_34)" identifier (argument_list "(param_1,local_34)" ( identifier , identifier )))) , (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }" { (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" identifier = identifier) ;) (expression_statement "local_38 = CONCAT31(local_38._1_3_,param_4);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,param_4)" identifier = (call_expression "CONCAT31(local_38._1_3_,param_4)" identifier (argument_list "(local_38._1_3_,param_4)" ( (field_expression "local_38._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x34);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x34)" * (cast_expression "(undefined4 **)(param_1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_40 = piVar8;" (assignment_expression "local_40 = piVar8" identifier = identifier) ;) (if_statement "if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(param_1 + 0x38))" ( (binary_expression "puVar1 == *(undefined4 **)(param_1 + 0x38)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x38)" * (cast_expression "(undefined4 **)(param_1 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }" { comment (expression_statement "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);" (call_expression "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40)" identifier (argument_list "(param_1 + 0x30,puVar1,&local_40)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , identifier , (pointer_expression "&local_40" & identifier) ))) ;) }) (else_clause "else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" else (compound_statement "{\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" { (expression_statement "*puVar1 = piVar8;" (assignment_expression "*puVar1 = piVar8" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = param_3;" (assignment_expression "puVar1[1] = param_3" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_38;" (assignment_expression "puVar1[2] = local_38" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3;" (assignment_expression "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3" (pointer_expression "*(undefined4 **)(param_1 + 0x34)" * (cast_expression "(undefined4 **)(param_1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (binary_expression "puVar1 + 3" identifier + number_literal)) ;) }))) }) (else_clause "else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" else (compound_statement "{\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" { (expression_statement "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4)" identifier = (pointer_expression "*(int **)(param_1 + 0x24 + piVar8[6] * 4)" * (cast_expression "(int **)(param_1 + 0x24 + piVar8[6] * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24 + piVar8[6] * 4)" ( (binary_expression "param_1 + 0x24 + piVar8[6] * 4" (binary_expression "param_1 + 0x24" identifier + number_literal) + (binary_expression "piVar8[6] * 4" (subscript_expression "piVar8[6]" identifier [ number_literal ]) * number_literal)) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" { comment (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x1c);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x1c)" identifier = (cast_expression "(int *)FUN_0017ebf0(0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);" do (compound_statement "{\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              }" { (expression_statement "*(undefined4 *)((int)piVar4 + uVar7) = 0;" (assignment_expression "*(undefined4 *)((int)piVar4 + uVar7) = 0" (pointer_expression "*(undefined4 *)((int)piVar4 + uVar7)" * (cast_expression "(undefined4 *)((int)piVar4 + uVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + uVar7)" ( (binary_expression "(int)piVar4 + uVar7" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar7 = uVar7 + 4;" (assignment_expression "uVar7 = uVar7 + 4" identifier = (binary_expression "uVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < 0x1c)" ( (binary_expression "uVar7 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar4[1] = 1;" (assignment_expression "piVar4[1] = 1" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 6);" (assignment_expression "*piVar4 = (int)(piVar4 + 6)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 6)" ( (binary_expression "piVar4 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar6 = piVar8[6];" (assignment_expression "iVar6 = piVar8[6]" identifier = (subscript_expression "piVar8[6]" identifier [ number_literal ])) ;) (expression_statement "piVar4[2] = 0;" (assignment_expression "piVar4[2] = 0" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[4] = 0x3f800000;" (assignment_expression "piVar4[4] = 0x3f800000" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[5] = 0;" (assignment_expression "piVar4[5] = 0" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4" (pointer_expression "*(int **)(param_1 + 0x24 + iVar6 * 4)" * (cast_expression "(int **)(param_1 + 0x24 + iVar6 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24 + iVar6 * 4)" ( (binary_expression "param_1 + 0x24 + iVar6 * 4" (binary_expression "param_1 + 0x24" identifier + number_literal) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) = identifier) ;) })) comment (expression_statement "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);" (call_expression "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4)" identifier (argument_list "(param_1,local_34,param_3,param_4,piVar8,piVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }))) (if_statement "if (local_34[0] != local_2c) {\n            FUN_001807a0(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_001807a0(local_34[0]);\n          }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) }))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == iVar9) break;" if (parenthesized_expression "(iVar3 == iVar9)" ( (binary_expression "iVar3 == iVar9" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (return_statement "return;" return ;) })) })) (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 build_expression_list_lookup(Version_script_info * this,\n   Version_expression_list * explist, Version_tree * v, bool is_global) */\n\nvoid __thiscall\ngold::Version_script_info::build_expression_list_lookup\n          (Version_script_info *this,Version_expression_list *explist,Version_tree *v,bool is_global\n          )\n\n{\n  pointer pcVar1;\n  iterator __position;\n  Language LVar2;\n  Version_tree *pVVar3;\n  size_t __n;\n  pointer __s2;\n  bool bVar4;\n  int iVar5;\n  Exact *pe;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  pointer pVVar9;\n  Version_expression *ve;\n  int iVar10;\n  Glob local_40;\n  string pattern;\n  \n  if (explist != (Version_expression_list *)0x0) {\n    pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n             ._M_impl._M_start;\n    iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5;\n    if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Version_script_info::build_expression_list_lookup\n          (Version_script_info *this,Version_expression_list *explist,Version_tree *v,bool is_global\n          )\n\n{\n  pointer pcVar1;\n  iterator __position;\n  Language LVar2;\n  Version_tree *pVVar3;\n  size_t __n;\n  pointer __s2;\n  bool bVar4;\n  int iVar5;\n  Exact *pe;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  pointer pVVar9;\n  Version_expression *ve;\n  int iVar10;\n  Glob local_40;\n  string pattern;\n  \n  if (explist != (Version_expression_list *)0x0) {\n    pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n             ._M_impl._M_start;\n    iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5;\n    if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Version_script_info::" identifier : : identifier : :) (function_declarator "build_expression_list_lookup\n          (Version_script_info *this,Version_expression_list *explist,Version_tree *v,bool is_global\n          )" identifier (parameter_list "(Version_script_info *this,Version_expression_list *explist,Version_tree *v,bool is_global\n          )" ( (parameter_declaration "Version_script_info *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Version_expression_list *explist" type_identifier (pointer_declarator "*explist" * identifier)) , (parameter_declaration "Version_tree *v" type_identifier (pointer_declarator "*v" * identifier)) , (parameter_declaration "bool is_global" primitive_type identifier) ))) (compound_statement "{\n  pointer pcVar1;\n  iterator __position;\n  Language LVar2;\n  Version_tree *pVVar3;\n  size_t __n;\n  pointer __s2;\n  bool bVar4;\n  int iVar5;\n  Exact *pe;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  pointer pVVar9;\n  Version_expression *ve;\n  int iVar10;\n  Glob local_40;\n  string pattern;\n  \n  if (explist != (Version_expression_list *)0x0) {\n    pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n             ._M_impl._M_start;\n    iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5;\n    if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }\n  }\n  return;\n}" { (declaration "pointer pcVar1;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Language LVar2;" type_identifier identifier ;) (declaration "Version_tree *pVVar3;" type_identifier (pointer_declarator "*pVVar3" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "pointer __s2;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "Exact *pe;" type_identifier (pointer_declarator "*pe" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "pointer pVVar9;" type_identifier identifier ;) (declaration "Version_expression *ve;" type_identifier (pointer_declarator "*ve" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "Glob local_40;" type_identifier identifier ;) (declaration "string pattern;" type_identifier identifier ;) (if_statement "if (explist != (Version_expression_list *)0x0) {\n    pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n             ._M_impl._M_start;\n    iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5;\n    if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(explist != (Version_expression_list *)0x0)" ( (binary_expression "explist != (Version_expression_list *)0x0" identifier != (cast_expression "(Version_expression_list *)0x0" ( (type_descriptor "Version_expression_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n             ._M_impl._M_start;\n    iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5;\n    if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }\n  }" { (ERROR "pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "pVVar9 = (explist->expressions).\n             super__Vector_base<gold::Version_expression,_std" (assignment_expression "pVVar9 = (explist->expressions).\n             super__Vector_base<gold" identifier = (binary_expression "(explist->expressions).\n             super__Vector_base<gold" (field_expression "(explist->expressions).\n             super__Vector_base" (parenthesized_expression "(explist->expressions)" ( (field_expression "explist->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) ;) (ERROR "iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std" (assignment_expression "iVar5 = (int)(explist->expressions).\n                 super__Vector_base<gold" identifier = (binary_expression "(int)(explist->expressions).\n                 super__Vector_base<gold" (cast_expression "(int)(explist->expressions).\n                 super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(explist->expressions).\n                 super__Vector_base" (parenthesized_expression "(explist->expressions)" ( (field_expression "explist->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_finish - (int)pVVar9 >> 5;" (binary_expression "Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9 >> 5" (binary_expression "Version_expression>_>\n                 ._M_impl._M_finish - (int)pVVar9" (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)pVVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ;) (if_statement "if (iVar5 != 0) {\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }\n      return;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ve = pVVar9 + iVar10;\n        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }\n        iVar10 = iVar10 + 1;\n        if (iVar5 == iVar10) break;\n        pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::Version_expression>_>\n                 ._M_impl._M_start;\n      }" { (expression_statement "ve = pVVar9 + iVar10;" (assignment_expression "ve = pVVar9 + iVar10" identifier = (binary_expression "pVVar9 + iVar10" identifier + identifier)) ;) (if_statement "if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }\n        else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }" if (parenthesized_expression "(((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*'))" ( (binary_expression "((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')" (parenthesized_expression "((ve->pattern)._M_string_length == 1)" ( (binary_expression "(ve->pattern)._M_string_length == 1" (field_expression "(ve->pattern)._M_string_length" (parenthesized_expression "(ve->pattern)" ( (field_expression "ve->pattern" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "(*(ve->pattern)._M_dataplus._M_p == '*')" ( (binary_expression "*(ve->pattern)._M_dataplus._M_p == '*'" (pointer_expression "*(ve->pattern)._M_dataplus._M_p" * (field_expression "(ve->pattern)._M_dataplus._M_p" (field_expression "(ve->pattern)._M_dataplus" (parenthesized_expression "(ve->pattern)" ( (field_expression "ve->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier)) == (char_literal "'*'" ' character ')) ))) )) (compound_statement "{\n          pVVar3 = this->default_version_;\n          if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }\n          this->default_version_ = v;\n          this->default_is_global_ = is_global;\n        }" { (expression_statement "pVVar3 = this->default_version_;" (assignment_expression "pVVar3 = this->default_version_" identifier = (field_expression "this->default_version_" identifier -> field_identifier)) ;) (if_statement "if (pVVar3 != (Version_tree *)0x0) {\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }" if (parenthesized_expression "(pVVar3 != (Version_tree *)0x0)" ( (binary_expression "pVVar3 != (Version_tree *)0x0" identifier != (cast_expression "(Version_tree *)0x0" ( (type_descriptor "Version_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            __n = (pVVar3->tag)._M_string_length;\n            pcVar1 = (pVVar3->tag)._M_dataplus._M_p;\n            __s2 = (v->tag)._M_dataplus._M_p;\n            if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }\n          }" { (expression_statement "__n = (pVVar3->tag)._M_string_length;" (assignment_expression "__n = (pVVar3->tag)._M_string_length" identifier = (field_expression "(pVVar3->tag)._M_string_length" (parenthesized_expression "(pVVar3->tag)" ( (field_expression "pVVar3->tag" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar1 = (pVVar3->tag)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (pVVar3->tag)._M_dataplus._M_p" identifier = (field_expression "(pVVar3->tag)._M_dataplus._M_p" (field_expression "(pVVar3->tag)._M_dataplus" (parenthesized_expression "(pVVar3->tag)" ( (field_expression "pVVar3->tag" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "__s2 = (v->tag)._M_dataplus._M_p;" (assignment_expression "__s2 = (v->tag)._M_dataplus._M_p" identifier = (field_expression "(v->tag)._M_dataplus._M_p" (field_expression "(v->tag)._M_dataplus" (parenthesized_expression "(v->tag)" ( (field_expression "v->tag" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))) {\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }\n            else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }" if (parenthesized_expression "((__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0))))" ( (binary_expression "(__n == (v->tag)._M_string_length) &&\n               ((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))" (parenthesized_expression "(__n == (v->tag)._M_string_length)" ( (binary_expression "__n == (v->tag)._M_string_length" identifier == (field_expression "(v->tag)._M_string_length" (parenthesized_expression "(v->tag)" ( (field_expression "v->tag" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "((__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)))" ( (parenthesized_expression "(__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0))" ( (binary_expression "__n == 0 || (iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)" (binary_expression "__n == 0" identifier == number_literal) || (parenthesized_expression "(iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(pcVar1,__s2,__n), iVar7 == 0" (assignment_expression "iVar7 = memcmp(pcVar1,__s2,__n)" identifier = (call_expression "memcmp(pcVar1,__s2,__n)" identifier (argument_list "(pcVar1,__s2,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n              if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }\n            }" { (if_statement "if (this->default_is_global_ != is_global) {\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }" if (parenthesized_expression "(this->default_is_global_ != is_global)" ( (binary_expression "this->default_is_global_ != is_global" (field_expression "this->default_is_global_" identifier -> field_identifier) != identifier) )) (compound_statement "{\n                pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );\n                gold_error(pcVar6,__s2);\n              }" { (expression_statement "pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        );" (assignment_expression "pcVar6 = (char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        )" identifier = (cast_expression "(char *)gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        )" identifier (argument_list "(\n                                        "wildcard match appears as both global and local in version \'%s\' in script"\n                                        )" ( (string_literal ""wildcard match appears as both global and local in version \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "gold_error(pcVar6,__s2);" (call_expression "gold_error(pcVar6,__s2)" identifier (argument_list "(pcVar6,__s2)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }" else (compound_statement "{\n              pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );\n              gold_warning(pcVar6,pcVar1,__s2);\n            }" { (expression_statement "pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      );" (assignment_expression "pcVar6 = (char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      )" identifier = (cast_expression "(char *)gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      )" identifier (argument_list "(\n                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"\n                                      )" ( (string_literal ""wildcard match appears in both version \'%s\' and \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "gold_warning(pcVar6,pcVar1,__s2);" (call_expression "gold_warning(pcVar6,pcVar1,__s2)" identifier (argument_list "(pcVar6,pcVar1,__s2)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "this->default_version_ = v;" (assignment_expression "this->default_version_ = v" (field_expression "this->default_version_" identifier -> field_identifier) = identifier) ;) (expression_statement "this->default_is_global_ = is_global;" (assignment_expression "this->default_is_global_ = is_global" (field_expression "this->default_is_global_" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }" else (compound_statement "{\n          pcVar1 = (ve->pattern)._M_dataplus._M_p;\n          pattern._M_dataplus._M_p = (pointer)&pattern.field_2;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);\n          if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\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 != &pattern.field_2) {\n            operator_delete(pattern._M_dataplus._M_p);\n          }\n        }" { (expression_statement "pcVar1 = (ve->pattern)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (ve->pattern)._M_dataplus._M_p" identifier = (field_expression "(ve->pattern)._M_dataplus._M_p" (field_expression "(ve->pattern)._M_dataplus" (parenthesized_expression "(ve->pattern)" ( (field_expression "ve->pattern" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pattern._M_dataplus._M_p = (pointer)&pattern.field_2;" (assignment_expression "pattern._M_dataplus._M_p = (pointer)&pattern.field_2" (field_expression "pattern._M_dataplus._M_p" (field_expression "pattern._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&pattern.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "pattern.field_2" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->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,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0);" (binary_expression "_M_construct<char*>(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0)" ( (comma_expression "&pattern,pcVar1,pcVar1 + (ve->pattern)._M_string_length,0" (pointer_expression "&pattern" & identifier) , (comma_expression "pcVar1,pcVar1 + (ve->pattern)._M_string_length,0" identifier , (comma_expression "pcVar1 + (ve->pattern)._M_string_length,0" (binary_expression "pcVar1 + (ve->pattern)._M_string_length" identifier + (field_expression "(ve->pattern)._M_string_length" (parenthesized_expression "(ve->pattern)" ( (field_expression "ve->pattern" identifier -> field_identifier) )) . field_identifier)) , number_literal))) ))) ;)) (if_statement "if ((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)) {\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }\n          else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\n          }" if (parenthesized_expression "((ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4))" ( (binary_expression "(ve->exact_match == false) && (bVar4 = unquote(this,&pattern), bVar4)" (parenthesized_expression "(ve->exact_match == false)" ( (binary_expression "ve->exact_match == false" (field_expression "ve->exact_match" identifier -> field_identifier) == false) )) && (parenthesized_expression "(bVar4 = unquote(this,&pattern), bVar4)" ( (comma_expression "bVar4 = unquote(this,&pattern), bVar4" (assignment_expression "bVar4 = unquote(this,&pattern)" identifier = (call_expression "unquote(this,&pattern)" identifier (argument_list "(this,&pattern)" ( identifier , (pointer_expression "&pattern" & identifier) )))) , identifier) ))) )) (compound_statement "{\n            local_40.version = v;\n            local_40.is_global = is_global;\n            __position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                 ._M_impl._M_finish;\n            local_40.expression = ve;\n            if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }\n          }" { (expression_statement "local_40.version = v;" (assignment_expression "local_40.version = v" (field_expression "local_40.version" identifier . field_identifier) = identifier) ;) (expression_statement "local_40.is_global = is_global;" (assignment_expression "local_40.is_global = is_global" (field_expression "local_40.is_global" identifier . field_identifier) = identifier) ;) (ERROR "__position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::" (comma_expression "__position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold::Version_script_info::Glob,_std" (assignment_expression "__position._M_current =\n                 (this->globs_).\n                 super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->globs_).\n                 super__Vector_base<gold" (field_expression "(this->globs_).\n                 super__Vector_base" (parenthesized_expression "(this->globs_)" ( (field_expression "this->globs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_script_info::Glob" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Version_script_info::Glob>_>\n                 ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Glob>_>\n                 ._M_impl._M_finish;" (field_expression "Glob>_>\n                 ._M_impl._M_finish" (field_expression "Glob>_>\n                 ._M_impl" (binary_expression "Glob>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_40.expression = ve;" (assignment_expression "local_40.expression = ve" (field_expression "local_40.expression" identifier . field_identifier) = identifier) ;) (if_statement "if (__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage) {\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }\n            else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }" if (parenthesized_expression "(__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n                ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::" (comma_expression "__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold::Version_script_info::Glob,_std" (binary_expression "__position._M_current ==\n                (this->globs_).\n                super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(this->globs_).\n                super__Vector_base<gold" (field_expression "(this->globs_).\n                super__Vector_base" (parenthesized_expression "(this->globs_)" ( (field_expression "this->globs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Version_script_info::Glob" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Glob>_>\n                ._M_impl._M_end_of_storage" (field_expression "Glob>_>\n                ._M_impl" (binary_expression "Glob>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */\n              std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);\n            }" { comment (labeled_statement "std::\n              vector<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);" statement_identifier (ERROR "::\n              vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);" statement_identifier (ERROR "::Glob,_std::allocator<gold:" : : (comma_expression "Glob,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Glob>_>\n              ::_M_realloc_insert<gold::Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);" statement_identifier (ERROR "::Glob>_>\n              ::_M_realloc_insert<gold:" : : (binary_expression "Glob>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Glob>\n                        (&this->globs_,__position,&local_40);" statement_identifier : (ERROR ":" :) (expression_statement "Glob>\n                        (&this->globs_,__position,&local_40);" (binary_expression "Glob>\n                        (&this->globs_,__position,&local_40)" identifier > (parenthesized_expression "(&this->globs_,__position,&local_40)" ( (comma_expression "&this->globs_,__position,&local_40" (pointer_expression "&this->globs_" & (field_expression "this->globs_" identifier -> field_identifier)) , (comma_expression "__position,&local_40" identifier , (pointer_expression "&local_40" & identifier))) ))) ;))))) }) (else_clause "else {\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }" else (compound_statement "{\n              (__position._M_current)->expression = ve;\n              (__position._M_current)->version = v;\n              (__position._M_current)->is_global = local_40.is_global;\n              *(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;\n              (this->globs_).\n              super__Vector_base<gold::Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;\n            }" { (expression_statement "(__position._M_current)->expression = ve;" (assignment_expression "(__position._M_current)->expression = ve" (field_expression "(__position._M_current)->expression" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->version = v;" (assignment_expression "(__position._M_current)->version = v" (field_expression "(__position._M_current)->version" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->is_global = local_40.is_global;" (assignment_expression "(__position._M_current)->is_global = local_40.is_global" (field_expression "(__position._M_current)->is_global" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (field_expression "local_40.is_global" identifier . field_identifier)) ;) (expression_statement "*(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_;" (assignment_expression "*(undefined3 *)&(__position._M_current)->field_0x9 = local_40._9_3_" (pointer_expression "*(undefined3 *)&(__position._M_current)->field_0x9" * (cast_expression "(undefined3 *)&(__position._M_current)->field_0x9" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->field_0x9" & (field_expression "(__position._M_current)->field_0x9" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (field_expression "local_40._9_3_" identifier . field_identifier)) ;) (ERROR "(this->globs_).\n              super__Vector_base<gold::" (binary_expression "(this->globs_).\n              super__Vector_base<gold" (field_expression "(this->globs_).\n              super__Vector_base" (parenthesized_expression "(this->globs_)" ( (field_expression "this->globs_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Version_script_info::Glob,_std::allocator<gold::Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Glob,_std::allocator<gold:" : : (comma_expression "Glob,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Version_script_info::Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Glob>_>\n              ._M_impl._M_finish = __position._M_current + 1" (field_expression "Glob>_>\n              ._M_impl._M_finish" (field_expression "Glob>_>\n              ._M_impl" (binary_expression "Glob>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) }) (else_clause "else {\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\n          }" else (compound_statement "{\n            pe = this->exact_[ve->language];\n            if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }\n                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */\n            add_exact_match(this,&pattern,v,is_global,ve,pe);\n          }" { (expression_statement "pe = this->exact_[ve->language];" (assignment_expression "pe = this->exact_[ve->language]" identifier = (subscript_expression "this->exact_[ve->language]" (field_expression "this->exact_" identifier -> field_identifier) [ (field_expression "ve->language" identifier -> field_identifier) ])) ;) (if_statement "if (pe == (Exact *)0x0) {\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }" if (parenthesized_expression "(pe == (Exact *)0x0)" ( (binary_expression "pe == (Exact *)0x0" identifier == (cast_expression "(Exact *)0x0" ( (type_descriptor "Exact *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */\n              pe = (Exact *)operator_new(0x1c);\n              uVar8 = 0;\n              do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);\n              (pe->_M_h)._M_bucket_count = 1;\n              (pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;\n              LVar2 = ve->language;\n              (pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n              (pe->_M_h)._M_element_count = 0;\n              (pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;\n              (pe->_M_h)._M_rehash_policy._M_next_resize = 0;\n              (pe->_M_h)._M_single_bucket = (__bucket_type)0x0;\n              this->exact_[LVar2] = pe;\n            }" { comment (expression_statement "pe = (Exact *)operator_new(0x1c);" (assignment_expression "pe = (Exact *)operator_new(0x1c)" identifier = (cast_expression "(Exact *)operator_new(0x1c)" ( (type_descriptor "Exact *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              } while (uVar8 < 0x1c);" do (compound_statement "{\n                *(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;\n                uVar8 = uVar8 + 4;\n              }" { (expression_statement "*(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0;" (assignment_expression "*(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8) = 0" (pointer_expression "*(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8)" * (cast_expression "(undefined4 *)((int)&(pe->_M_h)._M_buckets + uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pe->_M_h)._M_buckets + uVar8)" ( (binary_expression "(int)&(pe->_M_h)._M_buckets + uVar8" (cast_expression "(int)&(pe->_M_h)._M_buckets" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pe->_M_h)._M_buckets" & (field_expression "(pe->_M_h)._M_buckets" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 4;" (assignment_expression "uVar8 = uVar8 + 4" identifier = (binary_expression "uVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < 0x1c)" ( (binary_expression "uVar8 < 0x1c" identifier < number_literal) )) ;) (expression_statement "(pe->_M_h)._M_bucket_count = 1;" (assignment_expression "(pe->_M_h)._M_bucket_count = 1" (field_expression "(pe->_M_h)._M_bucket_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket;" (assignment_expression "(pe->_M_h)._M_buckets = &(pe->_M_h)._M_single_bucket" (field_expression "(pe->_M_h)._M_buckets" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "&(pe->_M_h)._M_single_bucket" & (field_expression "(pe->_M_h)._M_single_bucket" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "LVar2 = ve->language;" (assignment_expression "LVar2 = ve->language" identifier = (field_expression "ve->language" identifier -> field_identifier)) ;) (expression_statement "(pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pe->_M_h)._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pe->_M_h)._M_before_begin._M_nxt" (field_expression "(pe->_M_h)._M_before_begin" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pe->_M_h)._M_element_count = 0;" (assignment_expression "(pe->_M_h)._M_element_count = 0" (field_expression "(pe->_M_h)._M_element_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;" (assignment_expression "(pe->_M_h)._M_rehash_policy._M_max_load_factor = 1.0" (field_expression "(pe->_M_h)._M_rehash_policy._M_max_load_factor" (field_expression "(pe->_M_h)._M_rehash_policy" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pe->_M_h)._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pe->_M_h)._M_rehash_policy._M_next_resize = 0" (field_expression "(pe->_M_h)._M_rehash_policy._M_next_resize" (field_expression "(pe->_M_h)._M_rehash_policy" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pe->_M_h)._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pe->_M_h)._M_single_bucket = (__bucket_type)0x0" (field_expression "(pe->_M_h)._M_single_bucket" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "this->exact_[LVar2] = pe;" (assignment_expression "this->exact_[LVar2] = pe" (subscript_expression "this->exact_[LVar2]" (field_expression "this->exact_" identifier -> field_identifier) [ identifier ]) = identifier) ;) })) comment (expression_statement "add_exact_match(this,&pattern,v,is_global,ve,pe);" (call_expression "add_exact_match(this,&pattern,v,is_global,ve,pe)" identifier (argument_list "(this,&pattern,v,is_global,ve,pe)" ( identifier , (pointer_expression "&pattern" & identifier) , identifier , identifier , identifier , 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 != &pattern.field_2) {\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 != &pattern.field_2)" ( (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 != &pattern.field_2)" ( (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 != &pattern.field_2" (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))) != (pointer_expression "&pattern.field_2" & (field_expression "pattern.field_2" identifier . field_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 "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar5 == iVar10) break;" if (parenthesized_expression "(iVar5 == iVar10)" ( (binary_expression "iVar5 == iVar10" identifier == identifier) )) (break_statement "break;" break ;)) (ERROR "pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std::allocator<gold::" (comma_expression "pVVar9 = (explist->expressions).\n                 super__Vector_base<gold::Version_expression,_std" (assignment_expression "pVVar9 = (explist->expressions).\n                 super__Vector_base<gold" identifier = (binary_expression "(explist->expressions).\n                 super__Vector_base<gold" (field_expression "(explist->expressions).\n                 super__Vector_base" (parenthesized_expression "(explist->expressions)" ( (field_expression "explist->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) ;) })) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)" identifier (parameter_list "(int param_1,int *param_2,undefined4 *param_3,char param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "void *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined4 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined4 local_38;" 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 ]) ;) (if_statement "if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" { (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "iVar3 = param_2[1] - iVar6 >> 5;" (assignment_expression "iVar3 = param_2[1] - iVar6 >> 5" identifier = (binary_expression "param_2[1] - iVar6 >> 5" (binary_expression "param_2[1] - iVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) - identifier) >> number_literal)) ;) (if_statement "if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" { (expression_statement "piVar8 = (int *)(iVar6 + iVar9 * 0x20);" (assignment_expression "piVar8 = (int *)(iVar6 + iVar9 * 0x20)" identifier = (cast_expression "(int *)(iVar6 + iVar9 * 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar9 * 0x20)" ( (binary_expression "iVar6 + iVar9 * 0x20" identifier + (binary_expression "iVar9 * 0x20" identifier * number_literal)) )))) ;) (if_statement "if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" if (parenthesized_expression "((piVar8[1] == 1) && (*(char *)*piVar8 == '*'))" ( (binary_expression "(piVar8[1] == 1) && (*(char *)*piVar8 == '*')" (parenthesized_expression "(piVar8[1] == 1)" ( (binary_expression "piVar8[1] == 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(*(char *)*piVar8 == '*')" ( (binary_expression "*(char *)*piVar8 == '*'" (pointer_expression "*(char *)*piVar8" * (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) == (char_literal "'*'" ' character ')) ))) )) (compound_statement "{\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }" { (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x3c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" if (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" ( (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" { (expression_statement "__n = puVar1[1];" (assignment_expression "__n = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "__s1 = (void *)*puVar1;" (assignment_expression "__s1 = (void *)*puVar1" identifier = (cast_expression "(void *)*puVar1" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "__s2 = (void *)*param_3;" (assignment_expression "__s2 = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" if (parenthesized_expression "((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))" ( (binary_expression "(__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" (parenthesized_expression "(__n == param_3[1])" ( (binary_expression "__n == param_3[1]" identifier == (subscript_expression "param_3[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" ( (parenthesized_expression "(__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))" ( (binary_expression "__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" (binary_expression "__n == 0" identifier == number_literal) || (parenthesized_expression "(iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" ( (comma_expression "iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0" (assignment_expression "iVar6 = memcmp(__s1,__s2,__n)" identifier = (call_expression "memcmp(__s1,__s2,__n)" identifier (argument_list "(__s1,__s2,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }" { (if_statement "if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" if (parenthesized_expression "(*(char *)(param_1 + 0x40) != param_4)" ( (binary_expression "*(char *)(param_1 + 0x40) != param_4" (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" { (expression_statement "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );" (assignment_expression "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" identifier = (call_expression "gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" identifier (argument_list "(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" ( (string_literal ""wildcard match appears as both global and local in version \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar5,__s2);" (call_expression "FUN_0005ad00(uVar5,__s2)" identifier (argument_list "(uVar5,__s2)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" else (compound_statement "{\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" { (expression_statement "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");" (assignment_expression "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" identifier = (call_expression "gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" identifier (argument_list "("wildcard match appears in both version \'%s\' and \'%s\' in script")" ( (string_literal ""wildcard match appears in both version \'%s\' and \'%s\' in script"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar5,__s1,__s2);" (call_expression "FUN_0005ad30(uVar5,__s1,__s2)" identifier (argument_list "(uVar5,__s1,__s2)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = param_3;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = param_3" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" * (cast_expression "(undefined4 **)(param_1 + 0x3c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x40) = param_4;" (assignment_expression "*(char *)(param_1 + 0x40) = param_4" (pointer_expression "*(char *)(param_1 + 0x40)" * (cast_expression "(char *)(param_1 + 0x40)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" else (compound_statement "{\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\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_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);" (call_expression "FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0)" identifier (argument_list "(local_34,*piVar8,piVar8[1] + *piVar8,0)" ( identifier , (pointer_expression "*piVar8" * identifier) , (binary_expression "piVar8[1] + *piVar8" (subscript_expression "piVar8[1]" identifier [ number_literal ]) + (pointer_expression "*piVar8" * identifier)) , number_literal ))) ;) (if_statement "if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" if (parenthesized_expression "(((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))" ( (binary_expression "((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" (parenthesized_expression "((char)piVar8[7] == '\0')" ( (binary_expression "(char)piVar8[7] == '\0'" (cast_expression "(char)piVar8[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" ( (comma_expression "cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_00115ac0(param_1,local_34)" identifier = (call_expression "FUN_00115ac0(param_1,local_34)" identifier (argument_list "(param_1,local_34)" ( identifier , identifier )))) , (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }" { (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" identifier = identifier) ;) (expression_statement "local_38 = CONCAT31(local_38._1_3_,param_4);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,param_4)" identifier = (call_expression "CONCAT31(local_38._1_3_,param_4)" identifier (argument_list "(local_38._1_3_,param_4)" ( (field_expression "local_38._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x34);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x34)" * (cast_expression "(undefined4 **)(param_1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_40 = piVar8;" (assignment_expression "local_40 = piVar8" identifier = identifier) ;) (if_statement "if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" if (parenthesized_expression "(puVar1 == *(undefined4 **)(param_1 + 0x38))" ( (binary_expression "puVar1 == *(undefined4 **)(param_1 + 0x38)" identifier == (pointer_expression "*(undefined4 **)(param_1 + 0x38)" * (cast_expression "(undefined4 **)(param_1 + 0x38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }" { (expression_statement "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);" (call_expression "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40)" identifier (argument_list "(param_1 + 0x30,puVar1,&local_40)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) , identifier , (pointer_expression "&local_40" & identifier) ))) ;) }) (else_clause "else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" else (compound_statement "{\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" { (expression_statement "*puVar1 = piVar8;" (assignment_expression "*puVar1 = piVar8" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "puVar1[1] = param_3;" (assignment_expression "puVar1[1] = param_3" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1[2] = local_38;" (assignment_expression "puVar1[2] = local_38" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3;" (assignment_expression "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3" (pointer_expression "*(undefined4 **)(param_1 + 0x34)" * (cast_expression "(undefined4 **)(param_1 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (binary_expression "puVar1 + 3" identifier + number_literal)) ;) }))) }) (else_clause "else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" else (compound_statement "{\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" { (expression_statement "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4)" identifier = (pointer_expression "*(int **)(param_1 + 0x24 + piVar8[6] * 4)" * (cast_expression "(int **)(param_1 + 0x24 + piVar8[6] * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24 + piVar8[6] * 4)" ( (binary_expression "param_1 + 0x24 + piVar8[6] * 4" (binary_expression "param_1 + 0x24" identifier + number_literal) + (binary_expression "piVar8[6] * 4" (subscript_expression "piVar8[6]" identifier [ number_literal ]) * number_literal)) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" { (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x1c);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x1c)" identifier = (cast_expression "(int *)FUN_0017ebf0(0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);" do (compound_statement "{\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              }" { (expression_statement "*(undefined4 *)((int)piVar4 + uVar7) = 0;" (assignment_expression "*(undefined4 *)((int)piVar4 + uVar7) = 0" (pointer_expression "*(undefined4 *)((int)piVar4 + uVar7)" * (cast_expression "(undefined4 *)((int)piVar4 + uVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + uVar7)" ( (binary_expression "(int)piVar4 + uVar7" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar7 = uVar7 + 4;" (assignment_expression "uVar7 = uVar7 + 4" identifier = (binary_expression "uVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < 0x1c)" ( (binary_expression "uVar7 < 0x1c" identifier < number_literal) )) ;) (expression_statement "piVar4[1] = 1;" (assignment_expression "piVar4[1] = 1" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 6);" (assignment_expression "*piVar4 = (int)(piVar4 + 6)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 6)" ( (binary_expression "piVar4 + 6" identifier + number_literal) )))) ;) (expression_statement "iVar6 = piVar8[6];" (assignment_expression "iVar6 = piVar8[6]" identifier = (subscript_expression "piVar8[6]" identifier [ number_literal ])) ;) (expression_statement "piVar4[2] = 0;" (assignment_expression "piVar4[2] = 0" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[4] = 0x3f800000;" (assignment_expression "piVar4[4] = 0x3f800000" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[5] = 0;" (assignment_expression "piVar4[5] = 0" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4" (pointer_expression "*(int **)(param_1 + 0x24 + iVar6 * 4)" * (cast_expression "(int **)(param_1 + 0x24 + iVar6 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24 + iVar6 * 4)" ( (binary_expression "param_1 + 0x24 + iVar6 * 4" (binary_expression "param_1 + 0x24" identifier + number_literal) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);" (call_expression "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4)" identifier (argument_list "(param_1,local_34,param_3,param_4,piVar8,piVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }))) (if_statement "if (local_34[0] != local_2c) {\n            FUN_001807a0(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_001807a0(local_34[0]);\n          }" { (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" identifier (argument_list "(local_34[0])" ( (subscript_expression "local_34[0]" identifier [ number_literal ]) ))) ;) })) }))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == iVar9) break;" if (parenthesized_expression "(iVar3 == iVar9)" ( (binary_expression "iVar3 == iVar9" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) ))) )) (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 + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) ))) )) (compound_statement { (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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)\n\n{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011a250(int param_1,int *param_2,undefined4 *param_3,char param_4)" (identifier "FUN_0011a250") (parameter_list "(int param_1,int *param_2,undefined4 *param_3,char param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t __n;\n  void *__s1;\n  void *__s2;\n  char cVar2;\n  int iVar3;\n  int *piVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *local_40;\n  undefined4 *local_3c;\n  undefined4 local_38;\n  undefined1 *local_34 [2];\n  undefined1 local_2c [28];\n  \n  if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__s1;" (primitive_type "void") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "void *__s2;" (primitive_type "void") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined4 *local_3c;" (type_identifier "undefined4") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (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") (] "]")) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar6 = *param_2;\n    iVar3 = param_2[1] - iVar6 >> 5;\n    if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "iVar3 = param_2[1] - iVar6 >> 5;" (assignment_expression "iVar3 = param_2[1] - iVar6 >> 5" (identifier "iVar3") (= "=") (binary_expression "param_2[1] - iVar6 >> 5" (binary_expression "param_2[1] - iVar6" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar6")) (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = 0;\n      while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }\n      return;\n    }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        piVar8 = (int *)(iVar6 + iVar9 * 0x20);\n        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }\n        iVar9 = iVar9 + 1;\n        if (iVar3 == iVar9) break;\n        iVar6 = *param_2;\n      }" ({ "{") (expression_statement "piVar8 = (int *)(iVar6 + iVar9 * 0x20);" (assignment_expression "piVar8 = (int *)(iVar6 + iVar9 * 0x20)" (identifier "piVar8") (= "=") (cast_expression "(int *)(iVar6 + iVar9 * 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar9 * 0x20)" (( "(") (binary_expression "iVar6 + iVar9 * 0x20" (identifier "iVar6") (+ "+") (binary_expression "iVar9 * 0x20" (identifier "iVar9") (* "*") (number_literal "0x20"))) () ")")))) (; ";")) (if_statement "if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }\n        else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" (if "if") (parenthesized_expression "((piVar8[1] == 1) && (*(char *)*piVar8 == '*'))" (( "(") (binary_expression "(piVar8[1] == 1) && (*(char *)*piVar8 == '*')" (parenthesized_expression "(piVar8[1] == 1)" (( "(") (binary_expression "piVar8[1] == 1" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)*piVar8 == '*')" (( "(") (binary_expression "*(char *)*piVar8 == '*'" (pointer_expression "*(char *)*piVar8" (* "*") (cast_expression "(char *)*piVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          puVar1 = *(undefined4 **)(param_1 + 0x3c);\n          if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }\n          *(undefined4 **)(param_1 + 0x3c) = param_3;\n          *(char *)(param_1 + 0x40) = param_4;\n        }" ({ "{") (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x3c);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x3c)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (puVar1 != (undefined4 *)0x0) {\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" (if "if") (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar1 != (undefined4 *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            __n = puVar1[1];\n            __s1 = (void *)*puVar1;\n            __s2 = (void *)*param_3;\n            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }\n          }" ({ "{") (expression_statement "__n = puVar1[1];" (assignment_expression "__n = puVar1[1]" (identifier "__n") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "__s1 = (void *)*puVar1;" (assignment_expression "__s1 = (void *)*puVar1" (identifier "__s1") (= "=") (cast_expression "(void *)*puVar1" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "__s2 = (void *)*param_3;" (assignment_expression "__s2 = (void *)*param_3" (identifier "__s2") (= "=") (cast_expression "(void *)*param_3" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))\n            {\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }\n            else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" (if "if") (parenthesized_expression "((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))" (( "(") (binary_expression "(__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" (parenthesized_expression "(__n == param_3[1])" (( "(") (binary_expression "__n == param_3[1]" (identifier "__n") (== "==") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)))" (( "(") (parenthesized_expression "(__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))" (( "(") (binary_expression "__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" (binary_expression "__n == 0" (identifier "__n") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0)" (( "(") (comma_expression "iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0" (assignment_expression "iVar6 = memcmp(__s1,__s2,__n)" (identifier "iVar6") (= "=") (call_expression "memcmp(__s1,__s2,__n)" (identifier "memcmp") (argument_list "(__s1,__s2,__n)" (( "(") (identifier "__s1") (, ",") (identifier "__s2") (, ",") (identifier "__n") () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }\n            }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x40) != param_4) {\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x40) != param_4)" (( "(") (binary_expression "*(char *)(param_1 + 0x40) != param_4" (pointer_expression "*(char *)(param_1 + 0x40)" (* "*") (cast_expression "(char *)(param_1 + 0x40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\n                uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );\n                FUN_0005ad00(uVar5,__s2);\n              }" ({ "{") (expression_statement "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               );" (assignment_expression "uVar5 = gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" (identifier "uVar5") (= "=") (call_expression "gettext(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" (identifier "gettext") (argument_list "(\n                               "wildcard match appears as both global and local in version \'%s\' in script"\n                               )" (( "(") (string_literal ""wildcard match appears as both global and local in version \'%s\' in script"" (" """) (string_content "wildcard match appears as both global and local in version ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in script") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad00(uVar5,__s2);" (call_expression "FUN_0005ad00(uVar5,__s2)" (identifier "FUN_0005ad00") (argument_list "(uVar5,__s2)" (( "(") (identifier "uVar5") (, ",") (identifier "__s2") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" (else "else") (compound_statement "{\n              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");\n              FUN_0005ad30(uVar5,__s1,__s2);\n            }" ({ "{") (expression_statement "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");" (assignment_expression "uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" (identifier "uVar5") (= "=") (call_expression "gettext("wildcard match appears in both version \'%s\' and \'%s\' in script")" (identifier "gettext") (argument_list "("wildcard match appears in both version \'%s\' and \'%s\' in script")" (( "(") (string_literal ""wildcard match appears in both version \'%s\' and \'%s\' in script"" (" """) (string_content "wildcard match appears in both version ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " and ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in script") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad30(uVar5,__s1,__s2);" (call_expression "FUN_0005ad30(uVar5,__s1,__s2)" (identifier "FUN_0005ad30") (argument_list "(uVar5,__s1,__s2)" (( "(") (identifier "uVar5") (, ",") (identifier "__s1") (, ",") (identifier "__s2") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(undefined4 **)(param_1 + 0x3c) = param_3;" (assignment_expression "*(undefined4 **)(param_1 + 0x3c) = param_3" (pointer_expression "*(undefined4 **)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(char *)(param_1 + 0x40) = param_4;" (assignment_expression "*(char *)(param_1 + 0x40) = param_4" (pointer_expression "*(char *)(param_1 + 0x40)" (* "*") (cast_expression "(char *)(param_1 + 0x40)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\n        }" (else "else") (compound_statement "{\n          local_34[0] = local_2c;\n          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);\n          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }\n          if (local_34[0] != local_2c) {\n            FUN_001807a0(local_34[0]);\n          }\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_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);" (call_expression "FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0)" (identifier "FUN_0004d4e0") (argument_list "(local_34,*piVar8,piVar8[1] + *piVar8,0)" (( "(") (identifier "local_34") (, ",") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (, ",") (binary_expression "piVar8[1] + *piVar8" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))\n          {\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }\n          else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" (if "if") (parenthesized_expression "(((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))" (( "(") (binary_expression "((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" (parenthesized_expression "((char)piVar8[7] == '\0')" (( "(") (binary_expression "(char)piVar8[7] == '\0'" (cast_expression "(char)piVar8[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar8[7]" (identifier "piVar8") ([ "[") (number_literal "7") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0')" (( "(") (comma_expression "cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'" (assignment_expression "cVar2 = FUN_00115ac0(param_1,local_34)" (identifier "cVar2") (= "=") (call_expression "FUN_00115ac0(param_1,local_34)" (identifier "FUN_00115ac0") (argument_list "(param_1,local_34)" (( "(") (identifier "param_1") (, ",") (identifier "local_34") () ")")))) (, ",") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n            local_3c = param_3;\n            local_38 = CONCAT31(local_38._1_3_,param_4);\n            puVar1 = *(undefined4 **)(param_1 + 0x34);\n            local_40 = piVar8;\n            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }\n          }" ({ "{") (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" (identifier "local_3c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_38 = CONCAT31(local_38._1_3_,param_4);" (assignment_expression "local_38 = CONCAT31(local_38._1_3_,param_4)" (identifier "local_38") (= "=") (call_expression "CONCAT31(local_38._1_3_,param_4)" (identifier "CONCAT31") (argument_list "(local_38._1_3_,param_4)" (( "(") (field_expression "local_38._1_3_" (identifier "local_38") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(param_1 + 0x34);" (assignment_expression "puVar1 = *(undefined4 **)(param_1 + 0x34)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_40 = piVar8;" (assignment_expression "local_40 = piVar8" (identifier "local_40") (= "=") (identifier "piVar8")) (; ";")) (if_statement "if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }\n            else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" (if "if") (parenthesized_expression "(puVar1 == *(undefined4 **)(param_1 + 0x38))" (( "(") (binary_expression "puVar1 == *(undefined4 **)(param_1 + 0x38)" (identifier "puVar1") (== "==") (pointer_expression "*(undefined4 **)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n                    \n              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);\n            }" ({ "{") (expression_statement "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);" (call_expression "FUN_0011aef0(param_1 + 0x30,puVar1,&local_40)" (identifier "FUN_0011aef0") (argument_list "(param_1 + 0x30,puVar1,&local_40)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) (, ",") (identifier "puVar1") (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" (else "else") (compound_statement "{\n              *puVar1 = piVar8;\n              puVar1[1] = param_3;\n              puVar1[2] = local_38;\n              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;\n            }" ({ "{") (expression_statement "*puVar1 = piVar8;" (assignment_expression "*puVar1 = piVar8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "puVar1[1] = param_3;" (assignment_expression "puVar1[1] = param_3" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar1[2] = local_38;" (assignment_expression "puVar1[2] = local_38" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3;" (assignment_expression "*(undefined4 **)(param_1 + 0x34) = puVar1 + 3" (pointer_expression "*(undefined4 **)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "puVar1 + 3" (identifier "puVar1") (+ "+") (number_literal "3"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" (else "else") (compound_statement "{\n            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);\n            if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }\n                    \n            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);\n          }" ({ "{") (expression_statement "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);" (assignment_expression "piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(param_1 + 0x24 + piVar8[6] * 4)" (* "*") (cast_expression "(int **)(param_1 + 0x24 + piVar8[6] * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24 + piVar8[6] * 4)" (( "(") (binary_expression "param_1 + 0x24 + piVar8[6] * 4" (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) (+ "+") (binary_expression "piVar8[6] * 4" (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n              piVar4 = (int *)FUN_0017ebf0(0x1c);\n              uVar7 = 0;\n              do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);\n              piVar4[1] = 1;\n              *piVar4 = (int)(piVar4 + 6);\n              iVar6 = piVar8[6];\n              piVar4[2] = 0;\n              piVar4[3] = 0;\n              piVar4[4] = 0x3f800000;\n              piVar4[5] = 0;\n              piVar4[6] = 0;\n              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;\n            }" ({ "{") (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x1c);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x1c)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_0017ebf0(0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017ebf0(0x1c)" (identifier "FUN_0017ebf0") (argument_list "(0x1c)" (( "(") (number_literal "0x1c") () ")"))))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              } while (uVar7 < 0x1c);" (do "do") (compound_statement "{\n                *(undefined4 *)((int)piVar4 + uVar7) = 0;\n                uVar7 = uVar7 + 4;\n              }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar4 + uVar7) = 0;" (assignment_expression "*(undefined4 *)((int)piVar4 + uVar7) = 0" (pointer_expression "*(undefined4 *)((int)piVar4 + uVar7)" (* "*") (cast_expression "(undefined4 *)((int)piVar4 + uVar7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + uVar7)" (( "(") (binary_expression "(int)piVar4 + uVar7" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (identifier "uVar7")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = uVar7 + 4;" (assignment_expression "uVar7 = uVar7 + 4" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 4" (identifier "uVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 < 0x1c)" (( "(") (binary_expression "uVar7 < 0x1c" (identifier "uVar7") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "piVar4[1] = 1;" (assignment_expression "piVar4[1] = 1" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*piVar4 = (int)(piVar4 + 6);" (assignment_expression "*piVar4 = (int)(piVar4 + 6)" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)(piVar4 + 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar4 + 6)" (( "(") (binary_expression "piVar4 + 6" (identifier "piVar4") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "iVar6 = piVar8[6];" (assignment_expression "iVar6 = piVar8[6]" (identifier "iVar6") (= "=") (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "piVar4[2] = 0;" (assignment_expression "piVar4[2] = 0" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4[3] = 0;" (assignment_expression "piVar4[3] = 0" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4[4] = 0x3f800000;" (assignment_expression "piVar4[4] = 0x3f800000" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "piVar4[5] = 0;" (assignment_expression "piVar4[5] = 0" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4[6] = 0;" (assignment_expression "piVar4[6] = 0" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;" (assignment_expression "*(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4" (pointer_expression "*(int **)(param_1 + 0x24 + iVar6 * 4)" (* "*") (cast_expression "(int **)(param_1 + 0x24 + iVar6 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24 + iVar6 * 4)" (( "(") (binary_expression "param_1 + 0x24 + iVar6 * 4" (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (} "}"))) (expression_statement "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);" (call_expression "FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4)" (identifier "FUN_00119f70") (argument_list "(param_1,local_34,param_3,param_4,piVar8,piVar4)" (( "(") (identifier "param_1") (, ",") (identifier "local_34") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "piVar8") (, ",") (identifier "piVar4") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_34[0] != local_2c) {\n            FUN_001807a0(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_001807a0(local_34[0]);\n          }" ({ "{") (expression_statement "FUN_001807a0(local_34[0]);" (call_expression "FUN_001807a0(local_34[0])" (identifier "FUN_001807a0") (argument_list "(local_34[0])" (( "(") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 == iVar9) break;" (if "if") (parenthesized_expression "(iVar3 == iVar9)" (( "(") (binary_expression "iVar3 == iVar9" (identifier "iVar3") (== "==") (identifier "iVar9")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: void build_expression_list_lookup(Version_script_info * this,
   Version_expression_list * explist, Version_tree * v, bool is_global) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *var_1,type_3 *v,bool var_10
          )

{
  type_4 var_16;
  type_5 __position;
  type_6 LVar2;
  type_3 *var_6;
  size_t var_7;
  type_4 __s2;
  bool bVar4;
  int var_3;
  type_7 *var_18;
  char *pcVar6;
  int var_9;
  type_8 var_20;
  type_4 var_4;
  type_9 *ve;
  int var_5;
  type_10 local_40;
  type_11 pattern;
  
  if (var_1 != (type_2 *)0x0) {
    var_4 = (var_1->expressions).
             super__Vector_base<gold::type_9,_std::var_22<gold::type_9>var_2>
             ._M_impl._M_start;
    var_3 = (int)(var_1->expressions).
                 super__Vector_base<gold::type_9,_std::var_22<gold::type_9>var_2>
                 ._M_impl._M_finish - (int)var_4 >> 5;
    if (var_3 != 0) {
      var_5 = 0;
      while( true ) {
        ve = var_4 + var_5;
        if (((ve->pattern)._M_string_length == 1) && (*(ve->pattern)._M_dataplus._M_p == '*')) {
          var_6 = this->default_version_;
          if (var_6 != (type_3 *)0x0) {
            var_7 = (var_6->tag)._M_string_length;
            var_16 = (var_6->tag)._M_dataplus._M_p;
            __s2 = (v->tag)._M_dataplus._M_p;
            if ((var_7 == (v->tag)._M_string_length) &&
               ((var_7 == 0 || (var_9 = var_8(var_16,__s2,var_7), var_9 == 0)))) {
              if (this->default_is_global_ != var_10) {
                pcVar6 = (char *)var_11(
                                        "wildcard match appears as both global and local in version \'%s\' in script"
                                        );
                var_12(pcVar6,__s2);
              }
            }
            else {
              pcVar6 = (char *)var_11(
                                      "wildcard match appears in both version \'%s\' and \'%s\' in script"
                                      );
              var_13(pcVar6,var_16,__s2);
            }
          }
          this->default_version_ = v;
          this->default_is_global_ = var_10;
        }
        else {
          var_16 = (ve->pattern)._M_dataplus._M_p;
          pattern._M_dataplus._M_p = (type_4)&pattern.field_2;
          std::__cxx11::basic_string<var_15,_std::char_traits<var_15>,_std::var_22<var_15>var_2>::
          var_14<var_15*>(&pattern,var_16,var_16 + (ve->pattern)._M_string_length,0);
          if ((ve->exact_match == false) && (bVar4 = var_17(this,&pattern), bVar4)) {
            local_40.version = v;
            local_40.var_10 = var_10;
            __position._M_current =
                 (this->globs_).
                 super__Vector_base<gold::type_1::type_10,_std::var_22<gold::Version_script_info::type_10>var_2>
                 ._M_impl._M_finish;
            local_40.expression = ve;
            if (__position._M_current ==
                (this->globs_).
                super__Vector_base<gold::type_1::type_10,_std::var_22<gold::type_1::type_10>var_2>
                ._M_impl._M_end_of_storage) {
                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */
              std::
              vector<gold::Version_script_info::type_10,_std::var_22<gold::Version_script_info::type_10>var_2>
              ::_M_realloc_insert<gold::Version_script_info::type_10>
                        (&this->globs_,__position,&local_40);
            }
            else {
              (__position._M_current)->expression = ve;
              (__position._M_current)->version = v;
              (__position._M_current)->var_10 = local_40.var_10;
              *(type_12 *)&(__position._M_current)->field_0x9 = local_40._9_3_;
              (this->globs_).
              super__Vector_base<gold::Version_script_info::type_10,_std::var_22<gold::Version_script_info::type_10>var_2>
              ._M_impl._M_finish = __position._M_current + 1;
            }
          }
          else {
            var_18 = this->exact_[ve->language];
            if (var_18 == (type_7 *)0x0) {
                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */
              var_18 = (type_7 *)var_19(0x1c);
              var_20 = 0;
              do {
                *(type_13 *)((int)&(var_18->_M_h)._M_buckets + var_20) = 0;
                var_20 = var_20 + 4;
              } while (var_20 < 0x1c);
              (var_18->_M_h)._M_bucket_count = 1;
              (var_18->_M_h)._M_buckets = &(var_18->_M_h)._M_single_bucket;
              LVar2 = ve->language;
              (var_18->_M_h)._M_before_begin._M_nxt = (type_14 *)0x0;
              (var_18->_M_h)._M_element_count = 0;
              (var_18->_M_h)._M_rehash_policy._M_max_load_factor = 1.0;
              (var_18->_M_h)._M_rehash_policy._M_next_resize = 0;
              (var_18->_M_h)._M_single_bucket = (type_15)0x0;
              this->exact_[LVar2] = var_18;
            }
                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */
            var_21(this,&pattern,v,var_10,ve,var_18);
          }
          if ((anon_union_16_2_edb7204a_for_basic_string<var_15,_std::char_traits<var_15>,_std::var_22<var_15>var_2>var_23
               *)pattern._M_dataplus._M_p != &pattern.field_2) {
            var_24(pattern._M_dataplus._M_p);
          }
        }
        var_5 = var_5 + 1;
        if (var_3 == var_5) break;
        var_4 = (var_1->expressions).
                 super__Vector_base<gold::type_9,_std::var_22<gold::type_9>var_2>
                 ._M_impl._M_start;
      }
      return;
    }
  }
  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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) 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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (char_literal (character)))))) consequence: (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: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (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 (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (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: (number_literal))))) right: (identifier))) (expression_statement (assignment_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)))) alternative: (else_clause (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 (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))))) (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: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (return_statement))))) (return_statement))))

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

void MASKED(int param_1,int *param_2,undefined4 *param_3,char param_4)

{
  undefined4 *puVar1;
  size_t __n;
  void *__s1;
  void *__s2;
  char cVar2;
  int iVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  int *piVar8;
  int iVar9;
  int *local_40;
  undefined4 *local_3c;
  undefined4 local_38;
  undefined1 *local_34 [2];
  undefined1 local_2c [28];
  
  if (param_2 != (int *)0x0) {
    iVar6 = *param_2;
    iVar3 = param_2[1] - iVar6 >> 5;
    if (iVar3 != 0) {
      iVar9 = 0;
      while( true ) {
        piVar8 = (int *)(iVar6 + iVar9 * 0x20);
        if ((piVar8[1] == 1) && (*(char *)*piVar8 == '*')) {
          puVar1 = *(undefined4 **)(param_1 + 0x3c);
          if (puVar1 != (undefined4 *)0x0) {
            __n = puVar1[1];
            __s1 = (void *)*puVar1;
            __s2 = (void *)*param_3;
            if ((__n == param_3[1]) && ((__n == 0 || (iVar6 = memcmp(__s1,__s2,__n), iVar6 == 0))))
            {
              if (*(char *)(param_1 + 0x40) != param_4) {
                uVar5 = gettext(
                               "wildcard match appears as both global and local in version \'%s\' in script"
                               );
                FUN_0005ad00(uVar5,__s2);
              }
            }
            else {
              uVar5 = gettext("wildcard match appears in both version \'%s\' and \'%s\' in script");
              FUN_0005ad30(uVar5,__s1,__s2);
            }
          }
          *(undefined4 **)(param_1 + 0x3c) = param_3;
          *(char *)(param_1 + 0x40) = param_4;
        }
        else {
          local_34[0] = local_2c;
          FUN_0004d4e0(local_34,*piVar8,piVar8[1] + *piVar8,0);
          if (((char)piVar8[7] == '\0') && (cVar2 = FUN_00115ac0(param_1,local_34), cVar2 != '\0'))
          {
            local_3c = param_3;
            local_38 = CONCAT31(local_38._1_3_,param_4);
            puVar1 = *(undefined4 **)(param_1 + 0x34);
            local_40 = piVar8;
            if (puVar1 == *(undefined4 **)(param_1 + 0x38)) {
                    /* try { // try from 0011a4bf to 0011a4c3 has its CatchHandler @ 0011a4cc */
              FUN_0011aef0(param_1 + 0x30,puVar1,&local_40);
            }
            else {
              *puVar1 = piVar8;
              puVar1[1] = param_3;
              puVar1[2] = local_38;
              *(undefined4 **)(param_1 + 0x34) = puVar1 + 3;
            }
          }
          else {
            piVar4 = *(int **)(param_1 + 0x24 + piVar8[6] * 4);
            if (piVar4 == (int *)0x0) {
                    /* try { // try from 0011a398 to 0011a39c has its CatchHandler @ 0011a4cc */
              piVar4 = (int *)FUN_0017ebf0(0x1c);
              uVar7 = 0;
              do {
                *(undefined4 *)((int)piVar4 + uVar7) = 0;
                uVar7 = uVar7 + 4;
              } while (uVar7 < 0x1c);
              piVar4[1] = 1;
              *piVar4 = (int)(piVar4 + 6);
              iVar6 = piVar8[6];
              piVar4[2] = 0;
              piVar4[3] = 0;
              piVar4[4] = 0x3f800000;
              piVar4[5] = 0;
              piVar4[6] = 0;
              *(int **)(param_1 + 0x24 + iVar6 * 4) = piVar4;
            }
                    /* try { // try from 0011a2cd to 0011a2d1 has its CatchHandler @ 0011a4cc */
            FUN_00119f70(param_1,local_34,param_3,param_4,piVar8,piVar4);
          }
          if (local_34[0] != local_2c) {
            FUN_001807a0(local_34[0]);
          }
        }
        iVar9 = iVar9 + 1;
        if (iVar3 == iVar9) break;
        iVar6 = *param_2;
      }
      return;
    }
  }
  return;
}

