
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: sized_create_version_sections<64, true>
   DWARF original prototype: void sized_create_version_sections<64,_true>(Layout * this, Versions *
   versions, Symbol_table * symtab, uint local_symcount,
   vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> * dynamic_symbols, Output_section * dynstr)
    */

void __thiscall
gold::Layout::sized_create_version_sections<64,_true>
          (Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,
          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,
          Output_section *dynstr)

{
  byte bVar1;
  Dynamic_entry *pDVar2;
  Output_section *pOVar3;
  Output_section_data *pOVar4;
  iterator iVar5;
  iterator __position;
  Output_data_dynamic *pOVar6;
  Dynamic_entry *local_54;
  uchar *vbuf;
  uchar *vdbuf;
  uint vdsize;
  uint vdentries;
  uchar *vnbuf;
  uint vnsize;
  uint vnentries;
  uint vsize;
  Output_data *local_28;
  DT local_24;
  uint local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xaca49;
  pOVar3 = choose_output_section
                     (this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,
                      false,false,false);
  if (pOVar3 == (Output_section *)0x0) {
    pOVar6 = this->dynamic_data_;
  }
  else {
    Versions::symbol_section_contents<64,_true>
              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);
    pOVar4 = (Output_section_data *)operator_new(0x34);
    bVar1 = (pOVar4->super_Output_data).field_0x1c;
    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
    pOVar4->output_section_ = (Output_section *)0x0;
    *(undefined4 *)&pOVar4->addralign_ = 2;
    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;
    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;
    *(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;
    (pOVar4->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;
    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";
    Output_section::add_output_section_data(pOVar3,pOVar4);
    Output_section::set_entsize(pOVar3,2);
    if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)
       ) goto LAB_000ad053;
    pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;
    pOVar6 = this->dynamic_data_;
    if (pOVar6 != (Output_data_dynamic *)0x0) {
      local_24 = DT_VERSYM;
      iVar5._M_current =
           (pOVar6->entries_).
           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
           ._M_impl._M_finish;
      local_20 = 0;
      local_28 = (Output_data *)0x0;
      vsize = (uint)pOVar3;
      if (iVar5._M_current ==
          (pOVar6->entries_).
          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
          ._M_impl._M_end_of_storage) {
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);
      }
      else {
        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;
        (iVar5._M_current)->od2 = (Output_data *)0x0;
        (iVar5._M_current)->tag_ = DT_VERSYM;
        (iVar5._M_current)->offset_ = 0;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = iVar5._M_current + 1;
      }
    }
  }
  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
       _M_finish !=
       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
       _M_start) &&
     (pOVar3 = choose_output_section
                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,
                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0))
  {
    Versions::def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);
    pOVar4 = (Output_section_data *)operator_new(0x34);
    bVar1 = (pOVar4->super_Output_data).field_0x1c;
    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
    pOVar4->output_section_ = (Output_section *)0x0;
    *(undefined4 *)&pOVar4->addralign_ = 4;
    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;
    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;
    *(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize;
    (pOVar4->super_Output_data)._vptr_Output_data =
         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf;
    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";
    Output_section::add_output_section_data(pOVar3,pOVar4);
    if ((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))
       ) goto LAB_000ad053;
    pOVar3->link_section_ = &dynstr->super_Output_data;
    if ((pOVar3->info_section_ != (Output_section *)0x0) ||
       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||
        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))) goto LAB_000acf96;
    pOVar3->info_ = vdentries;
    if (pOVar6 != (Output_data_dynamic *)0x0) {
      local_24 = DT_VERDEF;
      pDVar2 = (pOVar6->entries_).
               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
               ._M_impl._M_finish;
      local_20 = 0;
      local_54 = (pOVar6->entries_).
                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
                 ._M_impl._M_end_of_storage;
      local_28 = (Output_data *)0x0;
      if (pDVar2 == local_54) {
        vsize = (uint)pOVar3;
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);
        local_54 = (pOVar6->entries_).
                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
                   ._M_impl._M_end_of_storage;
        iVar5._M_current =
             (pOVar6->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_finish;
      }
      else {
        (pDVar2->u_).od = &pOVar3->super_Output_data;
        iVar5._M_current = pDVar2 + 1;
        pDVar2->od2 = (Output_data *)0x0;
        pDVar2->tag_ = DT_VERDEF;
        pDVar2->offset_ = 0;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = iVar5._M_current;
      }
      local_24 = DT_VERDEFNUM;
      local_20 = 0xffffffff;
      vsize = vdentries;
      if (iVar5._M_current == local_54) {
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);
      }
      else {
        ((iVar5._M_current)->u_).val = vdentries;
        (iVar5._M_current)->od2 = local_28;
        (iVar5._M_current)->tag_ = DT_VERDEFNUM;
        (iVar5._M_current)->offset_ = 0xffffffff;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = iVar5._M_current + 1;
      }
    }
  }
  if (((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.
       _M_impl._M_finish ==
       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.
       _M_impl._M_start) ||
     (pOVar3 = choose_output_section
                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,
                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0))
  {
    return;
  }
  Versions::need_section_contents<64,_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries);
  pOVar4 = (Output_section_data *)operator_new(0x34);
  bVar1 = (pOVar4->super_Output_data).field_0x1c;
  *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;
  *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
  pOVar4->output_section_ = (Output_section *)0x0;
  *(undefined4 *)&pOVar4->addralign_ = 4;
  (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;
  *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;
  *(uint *)&(pOVar4->super_Output_data).data_size_ = vnsize;
  (pOVar4->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;
  *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
  pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vnbuf;
  *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
  *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
  *(char **)&pOVar4[1].super_Output_data.address_ = "** version refs";
  Output_section::add_output_section_data(pOVar3,pOVar4);
  if ((pOVar3->link_ == 0) && (((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0))))
  {
    pOVar3->link_section_ = &dynstr->super_Output_data;
    if (((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)
        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))) {
      pOVar3->info_ = vnentries;
      if (pOVar6 == (Output_data_dynamic *)0x0) {
        return;
      }
      pDVar2 = (pOVar6->entries_).
               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
               ._M_impl._M_finish;
      iVar5._M_current =
           (pOVar6->entries_).
           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
           ._M_impl._M_end_of_storage;
      local_24 = DT_VERNEED;
      local_20 = 0;
      local_28 = (Output_data *)0x0;
      if (pDVar2 == iVar5._M_current) {
        vsize = (uint)pOVar3;
        std::
        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);
        __position._M_current =
             (pOVar6->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_finish;
        iVar5._M_current =
             (pOVar6->entries_).
             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
             ._M_impl._M_end_of_storage;
      }
      else {
        (pDVar2->u_).od = &pOVar3->super_Output_data;
        __position._M_current = pDVar2 + 1;
        pDVar2->od2 = (Output_data *)0x0;
        pDVar2->tag_ = DT_VERNEED;
        pDVar2->offset_ = 0;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = __position._M_current;
      }
      local_24 = DT_VERNEEDNUM;
      local_20 = 0xffffffff;
      if (__position._M_current != iVar5._M_current) {
        ((__position._M_current)->u_).val = vnentries;
        (__position._M_current)->od2 = local_28;
        (__position._M_current)->tag_ = DT_VERNEEDNUM;
        (__position._M_current)->offset_ = 0xffffffff;
        (pOVar6->entries_).
        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
        ._M_impl._M_finish = __position._M_current + 1;
        return;
      }
      std::
      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>
                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);
      return;
    }
LAB_000acf96:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");
  }
LAB_000ad053:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");
}



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

void FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,
                 int param_6)

{
  int *piVar1;
  int iVar2;
  undefined4 *puVar3;
  int *piVar4;
  int *piVar5;
  int iVar6;
  int iVar7;
  int *local_54;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  undefined4 local_38;
  undefined4 local_34;
  int local_30;
  int local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xaca49;
  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);
  if (iVar2 == 0) {
    iVar7 = *(int *)(param_1 + 0x18c);
  }
  else {
    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);
    puVar3 = (undefined4 *)FUN_001e5200(0x34);
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[8] = 0;
    puVar3[9] = 2;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
    puVar3[10] = 0;
    puVar3[3] = local_2c;
    *puVar3 = &PTR_FUN_00383c70;
    puVar3[4] = 0;
    puVar3[0xb] = local_48;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    puVar3[0xc] = "** versions";
    FUN_000f2600(iVar2,puVar3);
    FUN_000ee490(iVar2,2,0);
    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||
       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;
    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);
    iVar7 = *(int *)(param_1 + 0x18c);
    if (iVar7 != 0) {
      local_24 = 0x6ffffff0;
      piVar1 = *(int **)(iVar7 + 0x30);
      local_20 = 0;
      local_28 = 0;
      local_2c = iVar2;
      if (piVar1 == *(int **)(iVar7 + 0x34)) {
        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);
      }
      else {
        *piVar1 = iVar2;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffff0;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar1 + 4;
      }
    }
  }
  if ((param_2[1] != *param_2) &&
     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {
    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);
    puVar3 = (undefined4 *)FUN_001e5200(0x34);
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[8] = 0;
    puVar3[9] = 4;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
    puVar3[10] = 0;
    puVar3[3] = local_40;
    *puVar3 = &PTR_FUN_00383c70;
    puVar3[4] = 0;
    puVar3[0xb] = local_44;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    puVar3[0xc] = "** version defs";
    FUN_000f2600(iVar2,puVar3);
    if ((*(int *)(iVar2 + 0x40) != 0) ||
       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))
    goto LAB_000ad053;
    *(int *)(iVar2 + 0x3c) = param_6;
    iVar6 = *(int *)(iVar2 + 0x44);
    if ((*(int *)(iVar2 + 0x44) != 0) ||
       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||
        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;
    *(int *)(iVar2 + 0x4c) = local_3c;
    if (iVar7 != 0) {
      local_24 = 0x6ffffffc;
      piVar1 = *(int **)(iVar7 + 0x30);
      local_20 = 0;
      local_54 = *(int **)(iVar7 + 0x34);
      local_28 = 0;
      if (piVar1 == local_54) {
        local_2c = iVar2;
        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);
        local_54 = *(int **)(iVar7 + 0x34);
        piVar4 = *(int **)(iVar7 + 0x30);
      }
      else {
        *piVar1 = iVar2;
        piVar4 = piVar1 + 4;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffffc;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar4;
      }
      local_24 = 0x6ffffffd;
      local_20 = 0xffffffff;
      local_2c = local_3c;
      if (piVar4 == local_54) {
        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);
      }
      else {
        *piVar4 = local_3c;
        piVar4[1] = local_28;
        piVar4[2] = 0x6ffffffd;
        piVar4[3] = -1;
        *(int **)(iVar7 + 0x30) = piVar4 + 4;
      }
    }
  }
  if ((param_2[4] == param_2[3]) ||
     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {
    return;
  }
  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);
  puVar3 = (undefined4 *)FUN_001e5200(0x34);
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[8] = 0;
  puVar3[9] = 4;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
  puVar3[10] = 0;
  puVar3[3] = local_34;
  *puVar3 = &PTR_FUN_00383c70;
  puVar3[4] = 0;
  puVar3[0xb] = local_38;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  puVar3[0xc] = "** version refs";
  FUN_000f2600(iVar2,puVar3);
  if ((*(int *)(iVar2 + 0x40) == 0) &&
     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {
    *(int *)(iVar2 + 0x3c) = param_6;
    iVar6 = param_6;
    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&
       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {
      *(int *)(iVar2 + 0x4c) = local_30;
      if (iVar7 == 0) {
        return;
      }
      piVar1 = *(int **)(iVar7 + 0x30);
      piVar4 = *(int **)(iVar7 + 0x34);
      local_24 = 0x6ffffffe;
      local_20 = 0;
      local_28 = 0;
      if (piVar1 == piVar4) {
        local_2c = iVar2;
        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);
        piVar5 = *(int **)(iVar7 + 0x30);
        piVar4 = *(int **)(iVar7 + 0x34);
      }
      else {
        *piVar1 = iVar2;
        piVar5 = piVar1 + 4;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffffe;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar5;
      }
      local_24 = 0x6fffffff;
      local_20 = 0xffffffff;
      if (piVar5 != piVar4) {
        *piVar5 = local_30;
        piVar5[1] = local_28;
        piVar5[2] = 0x6fffffff;
        piVar5[3] = -1;
        *(int **)(iVar7 + 0x30) = piVar5 + 4;
        return;
      }
      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);
      return;
    }
LAB_000acf96:
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);
  }
LAB_000ad053:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2e25b7
SUB ESP,0x50
MOV ESI,dword ptr [ESP + 0x64]
MOV EDI,dword ptr [ESP + 0x68]
PUSH 0x0
PUSH 0x0
PUSH 0x0
LEA EAX,[EBX + 0xffefc34b]
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x6fffffff
PUSH EAX
PUSH 0x0
PUSH ESI
CALL 0x0009fff0
ADD ESP,0x30
TEST EAX,EAX
JZ 0x000acf68
SUB ESP,0x4
MOV EBP,EAX
LEA ECX,[ESP + 0x34]
PUSH ECX
LEA EAX,[ESP + 0x1c]
MOV dword ptr [ESP + 0xc],ECX
PUSH EAX
LEA EAX,[ESI + 0xa0]
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x7c]
PUSH EAX
PUSH dword ptr [ESP + 0x80]
PUSH EDI
CALL 0x001b0290
ADD ESP,0x14
PUSH 0x34
CALL 0x001e5200
MOV ECX,dword ptr [ESP + 0x40]
MOVZX EDX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
AND EDX,0xffffffe0
MOV dword ptr [EAX + 0x20],0x0
OR EDX,0xa
MOV dword ptr [EAX + 0x24],0x2
MOV byte ptr [EAX + 0x1c],DL
LEA EDX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD EDX,0x8
MOV dword ptr [EAX + 0xc],ECX
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],EDX
LEA EDX,[EBX + 0xffefc358]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],EDX
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x000f2600
ADD ESP,0xc
PUSH 0x0
PUSH 0x2
PUSH EBP
CALL 0x000ee490
MOV EAX,dword ptr [EBP + 0x40]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESI + 0x17c]
TEST EAX,EAX
JNZ 0x000ad053
MOVZX EAX,byte ptr [EBP + 0x90]
TEST AL,0x4
JNZ 0x000ad053
TEST AL,0x8
JNZ 0x000ad053
MOV dword ptr [EBP + 0x3c],EDX
MOV EDX,dword ptr [ESI + 0x18c]
TEST EDX,EDX
JZ 0x000acbbe
MOV dword ptr [ESP + 0x38],0x6ffffff0
MOV EAX,dword ptr [EDX + 0x30]
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x34],0x0
CMP EAX,dword ptr [EDX + 0x34]
JZ 0x000acf78
MOV dword ptr [EAX],EBP
MOV ECX,dword ptr [ESP + 0x34]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + -0x4],ECX
MOV dword ptr [EDX + 0x30],EAX
MOV EAX,dword ptr [EDI]
CMP dword ptr [EDI + 0x4],EAX
JZ 0x000acda0
MOV dword ptr [ESP + 0x4],EDX
LEA EAX,[EBX + 0xffefc364]
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x6ffffffd
PUSH EAX
PUSH 0x0
PUSH ESI
CALL 0x0009fff0
ADD ESP,0x30
MOV EDX,dword ptr [ESP + 0x4]
TEST EAX,EAX
MOV EBP,EAX
JZ 0x000acda0
SUB ESP,0xc
LEA EAX,[ESP + 0x2c]
PUSH EAX
LEA EAX,[ESP + 0x2c]
PUSH EAX
LEA EAX,[ESP + 0x2c]
PUSH EAX
LEA EAX,[ESI + 0xa0]
PUSH EAX
PUSH EDI
CALL 0x001a5d90
ADD ESP,0x14
PUSH 0x34
CALL 0x001e5200
MOV EDX,dword ptr [ESP + 0x2c]
MOVZX ECX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
AND ECX,0xffffffe0
MOV dword ptr [EAX + 0x20],0x0
OR ECX,0xa
MOV dword ptr [EAX + 0x24],0x4
MOV byte ptr [EAX + 0x1c],CL
LEA ECX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD ECX,0x8
MOV dword ptr [EAX + 0xc],EDX
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],ECX
LEA ECX,[EBX + 0xffefc373]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],ECX
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x000f2600
MOV EAX,dword ptr [EBP + 0x40]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000ad053
MOVZX EAX,byte ptr [EBP + 0x90]
TEST AL,0x4
JNZ 0x000ad053
TEST AL,0x8
JNZ 0x000ad053
MOV EAX,dword ptr [ESP + 0x74]
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x4]
MOV dword ptr [EBP + 0x3c],EAX
MOV EAX,dword ptr [EBP + 0x44]
TEST EAX,EAX
JNZ 0x000acf96
MOV EAX,dword ptr [EBP + 0x48]
TEST EAX,EAX
JNZ 0x000acf96
MOV EAX,dword ptr [EBP + 0x4c]
TEST EAX,EAX
JZ 0x000accf5
CMP ECX,EAX
JNZ 0x000acf96
MOV dword ptr [EBP + 0x4c],ECX
TEST EDX,EDX
JZ 0x000acda0
LEA EAX,[EDX + 0x2c]
MOV dword ptr [ESP + 0x38],0x6ffffffc
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EDX + 0x30]
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EDX + 0x34]
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x8],EAX
CMP dword ptr [ESP + 0x4],EAX
JZ 0x000ad020
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EAX],EBP
MOV EBP,dword ptr [ESP + 0x34]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EBP
MOV EBP,dword ptr [ESP + 0x38]
MOV dword ptr [EAX + -0x8],EBP
MOV EBP,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + -0x4],EBP
MOV dword ptr [EDX + 0x30],EAX
MOV dword ptr [ESP + 0x38],0x6ffffffd
MOV dword ptr [ESP + 0x3c],0xffffffff
MOV dword ptr [ESP + 0x30],ECX
CMP EAX,dword ptr [ESP + 0x8]
JZ 0x000acff8
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x34]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + -0x4],ECX
MOV dword ptr [EDX + 0x30],EAX
LEA ESI,[ESI]
NOP
MOV dword ptr [ESP + 0x4],EDX
MOV EAX,dword ptr [EDI + 0xc]
CMP dword ptr [EDI + 0x10],EAX
JZ 0x000acf5a
SUB ESP,0x4
LEA EAX,[EBX + 0xffefc383]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3
PUSH 0x0
PUSH 0x0
PUSH 0x2
PUSH 0x6ffffffe
PUSH EAX
PUSH 0x0
PUSH ESI
CALL 0x0009fff0
ADD ESP,0x30
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000acf5a
SUB ESP,0xc
ADD ESI,0xa0
LEA EAX,[ESP + 0x38]
PUSH EAX
LEA EAX,[ESP + 0x38]
PUSH EAX
LEA EAX,[ESP + 0x38]
PUSH EAX
PUSH ESI
PUSH EDI
CALL 0x001a68c0
ADD ESP,0x14
PUSH 0x34
CALL 0x001e5200
MOV ESI,dword ptr [ESP + 0x38]
MOVZX ECX,byte ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x4],0x0
MOV dword ptr [EAX + 0x8],0x0
AND ECX,0xffffffe0
MOV dword ptr [EAX + 0x20],0x0
OR ECX,0xa
MOV dword ptr [EAX + 0x24],0x4
MOV byte ptr [EAX + 0x1c],CL
LEA ECX,[EBX + 0xffff4c68]
MOV dword ptr [EAX + 0x28],0x0
ADD ECX,0x8
MOV dword ptr [EAX + 0xc],ESI
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x34]
MOV dword ptr [EAX + 0x10],0x0
MOV dword ptr [EAX + 0x2c],ECX
LEA ECX,[EBX + 0xffefc392]
MOV dword ptr [EAX + 0x14],0xffffffff
MOV dword ptr [EAX + 0x18],0xffffffff
MOV dword ptr [EAX + 0x30],ECX
POP ECX
POP ESI
PUSH EAX
PUSH EBP
CALL 0x000f2600
MOV EDI,dword ptr [EBP + 0x40]
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x000ad053
MOVZX EAX,byte ptr [EBP + 0x90]
TEST AL,0x4
JNZ 0x000ad053
TEST AL,0x8
JNZ 0x000ad053
MOV EAX,dword ptr [ESP + 0x74]
MOV EDX,dword ptr [EBP + 0x44]
MOV ECX,dword ptr [ESP + 0x2c]
MOV dword ptr [EBP + 0x3c],EAX
TEST EDX,EDX
JNZ 0x000acf96
MOV EAX,dword ptr [EBP + 0x48]
TEST EAX,EAX
JNZ 0x000acf96
MOV EAX,dword ptr [EBP + 0x4c]
MOV EDX,dword ptr [ESP + 0x4]
CMP ECX,EAX
JZ 0x000aced4
TEST EAX,EAX
JNZ 0x000acf96
MOV dword ptr [EBP + 0x4c],ECX
TEST EDX,EDX
JZ 0x000acf5a
MOV EAX,dword ptr [EDX + 0x30]
MOV EBX,dword ptr [EDX + 0x34]
MOV dword ptr [ESP + 0x30],EBP
LEA ESI,[EDX + 0x2c]
MOV dword ptr [ESP + 0x38],0x6ffffffe
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x34],0x0
CMP EAX,EBX
JZ 0x000acfc8
MOV dword ptr [EAX],EBP
MOV EDI,dword ptr [ESP + 0x34]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],EDI
MOV EDI,dword ptr [ESP + 0x38]
MOV dword ptr [EAX + -0x8],EDI
MOV EDI,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + -0x4],EDI
MOV dword ptr [EDX + 0x30],EAX
MOV dword ptr [ESP + 0x38],0x6fffffff
MOV dword ptr [ESP + 0x3c],0xffffffff
MOV dword ptr [ESP + 0x30],ECX
CMP EAX,EBX
JZ 0x000acfb0
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [ESP + 0x34]
ADD EAX,0x10
MOV dword ptr [EAX + -0xc],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [EAX + -0x8],ECX
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [EAX + -0x4],ECX
MOV dword ptr [EDX + 0x30],EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [ESI + 0x18c]
JMP 0x000acbbe
SUB ESP,0x4
PUSH ECX
PUSH EAX
LEA EAX,[EDX + 0x2c]
MOV dword ptr [ESP + 0x10],EDX
PUSH EAX
CALL 0x000a5aa0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x000acbbe
PUSH EAX
LEA EAX,[EBX + 0xffefc680]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xd5e
PUSH EAX
CALL 0x00069d00
SUB ESP,0x4
LEA EDX,[ESP + 0x34]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x000a5aa0
ADD ESP,0x10
JMP 0x000acf5a
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0x4
LEA EAX,[ESP + 0x34]
PUSH EAX
PUSH EBX
PUSH ESI
CALL 0x000a5aa0
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x3c]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0x30]
MOV EBX,dword ptr [EDX + 0x34]
JMP 0x000acf25
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0x4
LEA ECX,[ESP + 0x34]
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x000a5aa0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x000acda0
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0x4
LEA EAX,[ESP + 0x34]
PUSH EAX
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x18]
CALL 0x000a5aa0
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x30]
MOV EBP,dword ptr [EDX + 0x34]
MOV EAX,dword ptr [EDX + 0x30]
MOV dword ptr [ESP + 0x18],EBP
ADD ESP,0x10
JMP 0x000acd5c
SUB ESP,0x4
LEA EAX,[EBX + 0xffefc7c4]
PUSH EAX
LEA EAX,[EBX + 0xffef8eac]
PUSH 0xd07
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}\n\n" comment (function_definition "void FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" primitive_type (function_declarator "FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" ( (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 identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xaca49;" (assignment_expression "uStack_14 = 0xaca49" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" else (compound_statement "{\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" { (expression_statement "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);" (call_expression "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" identifier (argument_list "(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" ( identifier , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier , identifier , (pointer_expression "&local_48" & identifier) , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 2;" (assignment_expression "puVar3[9] = 2" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_2c;" (assignment_expression "puVar3[3] = local_2c" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_48;" (assignment_expression "puVar3[0xb] = local_48" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** versions";" (assignment_expression "puVar3[0xc] = "** versions"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** versions"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (expression_statement "FUN_000ee490(iVar2,2,0);" (call_expression "FUN_000ee490(iVar2,2,0)" identifier (argument_list "(iVar2,2,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;" if (parenthesized_expression "(((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);" (assignment_expression "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c)" (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" * (cast_expression "(undefined4 *)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x17c)" * (cast_expression "(undefined4 *)(param_1 + 0x17c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" { (expression_statement "local_24 = 0x6ffffff0;" (assignment_expression "local_24 = 0x6ffffff0" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (if_statement "if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" if (parenthesized_expression "(piVar1 == *(int **)(iVar7 + 0x34))" ( (binary_expression "piVar1 == *(int **)(iVar7 + 0x34)" identifier == (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }" { (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar1,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffff0;" (assignment_expression "piVar1[2] = 0x6ffffff0" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar1 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar1 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) }))) })) }))) (if_statement "if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" if (parenthesized_expression "((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0))" ( (binary_expression "(param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" (parenthesized_expression "(param_2[1] != *param_2)" ( (binary_expression "param_2[1] != *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) != (pointer_expression "*param_2" * identifier)) )) && (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version_d"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" { (expression_statement "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);" (call_expression "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" identifier (argument_list "(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" ( identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , (pointer_expression "&local_44" & identifier) , (pointer_expression "&local_40" & identifier) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_40;" (assignment_expression "puVar3[3] = local_40" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_44;" (assignment_expression "puVar3[0xb] = local_44" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** version defs";" (assignment_expression "puVar3[0xc] = "** version defs"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** version defs"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;" if (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" * (cast_expression "(int *)(iVar2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;" if (parenthesized_expression "((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))))" ( (binary_expression "(*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) != 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (binary_expression "*(int *)(iVar2 + 0x48) != 0" (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) , (binary_expression "iVar6 != 0 && (local_3c != iVar6)" (binary_expression "iVar6 != 0" identifier != number_literal) && (parenthesized_expression "(local_3c != iVar6)" ( (binary_expression "local_3c != iVar6" identifier != identifier) )))) )) )))) )) ))) )) (goto_statement "goto LAB_000acf96;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar2 + 0x4c) = local_3c;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_3c" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" { (expression_statement "local_24 = 0x6ffffffc;" (assignment_expression "local_24 = 0x6ffffffc" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" if (parenthesized_expression "(piVar1 == local_54)" ( (binary_expression "piVar1 == local_54" identifier == identifier) )) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }" { (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,local_54,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar4 = piVar1 + 4;" (assignment_expression "piVar4 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffffc;" (assignment_expression "piVar1[2] = 0x6ffffffc" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0x6ffffffd;" (assignment_expression "local_24 = 0x6ffffffd" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_3c;" (assignment_expression "local_2c = local_3c" identifier = identifier) ;) (if_statement "if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" if (parenthesized_expression "(piVar4 == local_54)" ( (binary_expression "piVar4 == local_54" identifier == identifier) )) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }" { (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" else (compound_statement "{\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" { (expression_statement "*piVar4 = local_3c;" (assignment_expression "*piVar4 = local_3c" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "piVar4[1] = local_28;" (assignment_expression "piVar4[1] = local_28" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[2] = 0x6ffffffd;" (assignment_expression "piVar4[2] = 0x6ffffffd" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[3] = -1;" (assignment_expression "piVar4[3] = -1" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar4 + 4" identifier + number_literal)) ;) }))) })) })) (if_statement "if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }" if (parenthesized_expression "((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0))" ( (binary_expression "(param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" (parenthesized_expression "(param_2[4] == param_2[3])" ( (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" identifier [ number_literal ]) == (subscript_expression "param_2[3]" identifier [ number_literal ])) )) || (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version_r"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);" (call_expression "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" identifier (argument_list "(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" ( identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_38;" (assignment_expression "puVar3[0xb] = local_38" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** version refs";" (assignment_expression "puVar3[0xc] = "** version refs"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** version refs"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" if (parenthesized_expression "((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) == 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" ( (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" { (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" * (cast_expression "(int *)(iVar2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = param_6;" (assignment_expression "iVar6 = param_6" identifier = identifier) ;) (if_statement "if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" if (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))))" ( (binary_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0))" ( (binary_expression "(*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) , (binary_expression "local_30 == iVar6 || (iVar6 == 0)" (binary_expression "local_30 == iVar6" identifier == identifier) || (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )))) )) ))) )) (compound_statement "{\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" { (expression_statement "*(int *)(iVar2 + 0x4c) = local_30;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_30" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 0x6ffffffe;" (assignment_expression "local_24 = 0x6ffffffe" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" if (parenthesized_expression "(piVar1 == piVar4)" ( (binary_expression "piVar1 == piVar4" identifier == identifier) )) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }" { (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar5 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar5 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar5 = piVar1 + 4;" (assignment_expression "piVar5 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffffe;" (assignment_expression "piVar1[2] = 0x6ffffffe" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0x6fffffff;" (assignment_expression "local_24 = 0x6fffffff" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" if (parenthesized_expression "(piVar5 != piVar4)" ( (binary_expression "piVar5 != piVar4" identifier != identifier) )) (compound_statement "{\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" { (expression_statement "*piVar5 = local_30;" (assignment_expression "*piVar5 = local_30" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "piVar5[1] = local_28;" (assignment_expression "piVar5[1] = local_28" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[2] = 0x6fffffff;" (assignment_expression "piVar5[2] = 0x6fffffff" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[3] = -1;" (assignment_expression "piVar5[3] = -1" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar5 + 4" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar5,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",iVar6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;)) })) (labeled_statement "LAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: sized_create_version_sections<64, true>\n   DWARF original prototype: void sized_create_version_sections<64,_true>(Layout * this, Versions *\n   versions, Symbol_table * symtab, uint local_symcount,\n   vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> * dynamic_symbols, Output_section * dynstr)\n    */\n\nvoid __thiscall\ngold::Layout::sized_create_version_sections<64,_true>\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)\n\n{\n  byte bVar1;\n  Dynamic_entry *pDVar2;\n  Output_section *pOVar3;\n  Output_section_data *pOVar4;\n  iterator iVar5;\n  iterator __position;\n  Output_data_dynamic *pOVar6;\n  Dynamic_entry *local_54;\n  uchar *vbuf;\n  uchar *vdbuf;\n  uint vdsize;\n  uint vdentries;\n  uchar *vnbuf;\n  uint vnsize;\n  uint vnentries;\n  uint vsize;\n  Output_data *local_28;\n  DT local_24;\n  uint local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  pOVar3 = choose_output_section\n                     (this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,\n                      false,false,false);\n  if (pOVar3 == (Output_section *)0x0) {\n    pOVar6 = this->dynamic_data_;\n  }\n  else {\n    Versions::symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 2;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    Output_section::set_entsize(pOVar3,2);\n    if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;\n    pOVar6 = this->dynamic_data_;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }\n  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start) &&\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0))\n  {\n    Versions::def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 4;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    if ((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if ((pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))) goto LAB_000acf96;\n    pOVar3->info_ = vdentries;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERDEF;\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      local_20 = 0;\n      local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }\n      local_24 = DT_VERDEFNUM;\n      local_20 = 0xffffffff;\n      vsize = vdentries;\n      if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }\n  if (((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start) ||\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0))\n  {\n    return;\n  }\n  Versions::need_section_contents<64,_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries);\n  pOVar4 = (Output_section_data *)operator_new(0x34);\n  bVar1 = (pOVar4->super_Output_data).field_0x1c;\n  *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n  *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n  pOVar4->output_section_ = (Output_section *)0x0;\n  *(undefined4 *)&pOVar4->addralign_ = 4;\n  (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n  *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n  *(uint *)&(pOVar4->super_Output_data).data_size_ = vnsize;\n  (pOVar4->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n  *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n  pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vnbuf;\n  *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n  *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n  *(char **)&pOVar4[1].super_Output_data.address_ = "** version refs";\n  Output_section::add_output_section_data(pOVar3,pOVar4);\n  if ((pOVar3->link_ == 0) && (((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0))))\n  {\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if (((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))) {\n      pOVar3->info_ = vnentries;\n      if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = DT_VERNEED;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = DT_VERNEEDNUM;\n      local_20 = 0xffffffff;\n      if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n  }\nLAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Layout::sized_create_version_sections<64,_true>\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)\n\n{\n  byte" (function_declarator "_true>\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)" identifier (ERROR ">" >) (parameter_list "(Layout *this,Versions *versions,Symbol_table *symtab,uint local_symcount,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Versions *versions" type_identifier (pointer_declarator "*versions" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "uint local_symcount" type_identifier identifier) , (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *dynamic_symbols" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*dynamic_symbols" * identifier)) , (parameter_declaration "Output_section *dynstr" type_identifier (pointer_declarator "*dynstr" * identifier)) ))) { identifier) identifier ;) (declaration "Dynamic_entry *pDVar2;" type_identifier (pointer_declarator "*pDVar2" * identifier) ;) (declaration "Output_section *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (declaration "Output_section_data *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "iterator iVar5;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Output_data_dynamic *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "Dynamic_entry *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uchar *vbuf;" type_identifier (pointer_declarator "*vbuf" * identifier) ;) (declaration "uchar *vdbuf;" type_identifier (pointer_declarator "*vdbuf" * identifier) ;) (declaration "uint vdsize;" type_identifier identifier ;) (declaration "uint vdentries;" type_identifier identifier ;) (declaration "uchar *vnbuf;" type_identifier (pointer_declarator "*vnbuf" * identifier) ;) (declaration "uint vnsize;" type_identifier identifier ;) (declaration "uint vnentries;" type_identifier identifier ;) (declaration "uint vsize;" type_identifier identifier ;) (declaration "Output_data *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "DT local_24;" type_identifier identifier ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xaca49;" (assignment_expression "uStack_14 = 0xaca49" identifier = number_literal) ;) (expression_statement "pOVar3 = choose_output_section\n                     (this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,\n                      false,false,false);" (assignment_expression "pOVar3 = choose_output_section\n                     (this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,\n                      false,false,false)" identifier = (call_expression "choose_output_section\n                     (this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,\n                      false,false,false)" identifier (argument_list "(this,(Relobj *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,\n                      false,false,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".gnu.version"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false )))) ;) (if_statement "if (pOVar3 == (Output_section *)0x0) {\n    pOVar6 = this->dynamic_data_;\n  }\n  else {\n    Versions::symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 2;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    Output_section::set_entsize(pOVar3,2);\n    if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;\n    pOVar6 = this->dynamic_data_;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }" if (parenthesized_expression "(pOVar3 == (Output_section *)0x0)" ( (binary_expression "pOVar3 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pOVar6 = this->dynamic_data_;\n  }" { (expression_statement "pOVar6 = this->dynamic_data_;" (assignment_expression "pOVar6 = this->dynamic_data_" identifier = (field_expression "this->dynamic_data_" identifier -> field_identifier)) ;) }) (else_clause "else {\n    Versions::symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 2;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    Output_section::set_entsize(pOVar3,2);\n    if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;\n    pOVar6 = this->dynamic_data_;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }" else (compound_statement "{\n    Versions::symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 2;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    Output_section::set_entsize(pOVar3,2);\n    if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;\n    pOVar6 = this->dynamic_data_;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }" { (labeled_statement "Versions::symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);" (comma_expression "symbol_section_contents<64,_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize)" (binary_expression "symbol_section_contents<64" identifier < number_literal) , (binary_expression "_true>\n              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize)" identifier > (parenthesized_expression "(versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize)" ( (comma_expression "versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize" identifier , (comma_expression "symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize" identifier , (comma_expression "&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize" (pointer_expression "&this->dynpool_" & (field_expression "this->dynpool_" identifier -> field_identifier)) , (comma_expression "local_symcount,dynamic_symbols,&vbuf,&vsize" identifier , (comma_expression "dynamic_symbols,&vbuf,&vsize" identifier , (comma_expression "&vbuf,&vsize" (pointer_expression "&vbuf" & identifier) , (pointer_expression "&vsize" & identifier))))))) )))) ;)) (expression_statement "pOVar4 = (Output_section_data *)operator_new(0x34);" (assignment_expression "pOVar4 = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar1 = (pOVar4->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar4->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar4->output_section_ = (Output_section *)0x0" (field_expression "pOVar4->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar4->addralign_ = 2;" (assignment_expression "*(undefined4 *)&pOVar4->addralign_ = 2" (pointer_expression "*(undefined4 *)&pOVar4->addralign_" * (cast_expression "(undefined4 *)&pOVar4->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;" (assignment_expression "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10" (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 10" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar4->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar4->addralign_ + 4)" ( (binary_expression "(int)&pOVar4->addralign_ + 4" (cast_expression "(int)&pOVar4->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar4->super_Output_data).data_size_ = vsize;" (assignment_expression "*(uint *)&(pOVar4->super_Output_data).data_size_ = vsize" (pointer_expression "*(uint *)&(pOVar4->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(pOVar4->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf;" (assignment_expression "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vbuf" (field_expression "pOVar4[1].super_Output_data._vptr_Output_data" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)vbuf" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)&pOVar4[1].super_Output_data.address_ = "** versions";" (assignment_expression "*(char **)&pOVar4[1].super_Output_data.address_ = "** versions"" (pointer_expression "*(char **)&pOVar4[1].super_Output_data.address_" * (cast_expression "(char **)&pOVar4[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar4[1].super_Output_data.address_" & (field_expression "pOVar4[1].super_Output_data.address_" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** versions"" " string_content ")) ;) (labeled_statement "Output_section::add_output_section_data(pOVar3,pOVar4);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar3,pOVar4);" (call_expression "add_output_section_data(pOVar3,pOVar4)" identifier (argument_list "(pOVar3,pOVar4)" ( identifier , identifier ))) ;)) (labeled_statement "Output_section::set_entsize(pOVar3,2);" statement_identifier : (ERROR ":" :) (expression_statement "set_entsize(pOVar3,2);" (call_expression "set_entsize(pOVar3,2)" identifier (argument_list "(pOVar3,2)" ( identifier , number_literal ))) ;)) (if_statement "if (((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       ) goto LAB_000ad053;" if (parenthesized_expression "(((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)\n       )" ( (binary_expression "((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)) || ((pOVar3->field_0x90 & 8) != 0)" (parenthesized_expression "((pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0))" ( (binary_expression "(pOVar3->link_ != 0) || ((pOVar3->field_0x90 & 4) != 0)" (parenthesized_expression "(pOVar3->link_ != 0)" ( (binary_expression "pOVar3->link_ != 0" (field_expression "pOVar3->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pOVar3->field_0x90 & 4) != 0)" ( (binary_expression "(pOVar3->field_0x90 & 4) != 0" (parenthesized_expression "(pOVar3->field_0x90 & 4)" ( (binary_expression "pOVar3->field_0x90 & 4" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pOVar3->field_0x90 & 8) != 0)" ( (binary_expression "(pOVar3->field_0x90 & 8) != 0" (parenthesized_expression "(pOVar3->field_0x90 & 8)" ( (binary_expression "pOVar3->field_0x90 & 8" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "pOVar3->link_section_ = &this->dynsym_section_->super_Output_data;" (assignment_expression "pOVar3->link_section_ = &this->dynsym_section_->super_Output_data" (field_expression "pOVar3->link_section_" identifier -> field_identifier) = (pointer_expression "&this->dynsym_section_->super_Output_data" & (field_expression "this->dynsym_section_->super_Output_data" (field_expression "this->dynsym_section_" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "pOVar6 = this->dynamic_data_;" (assignment_expression "pOVar6 = this->dynamic_data_" identifier = (field_expression "this->dynamic_data_" identifier -> field_identifier)) ;) (if_statement "if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }" if (parenthesized_expression "(pOVar6 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar6 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_24 = DT_VERSYM;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      vsize = (uint)pOVar3;\n      if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }" { (expression_statement "local_24 = DT_VERSYM;" (assignment_expression "local_24 = DT_VERSYM" identifier = identifier) ;) (ERROR "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "iVar5._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n           super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n           ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n           ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n           ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "vsize = (uint)pOVar3;" (assignment_expression "vsize = (uint)pOVar3" identifier = (cast_expression "(uint)pOVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" if (parenthesized_expression "(iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n          ._M_impl._M_end_of_storage)" ( (ERROR "iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::" (comma_expression "iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (binary_expression "iVar5._M_current ==\n          (pOVar6->entries_).\n          super__Vector_base<gold" (field_expression "iVar5._M_current" identifier . field_identifier) == (binary_expression "(pOVar6->entries_).\n          super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n          super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Dynamic_entry>_>\n          ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n          ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }" { (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" (binary_expression "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" ( (comma_expression "&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "iVar5,(Dynamic_entry *)&vsize" identifier , (cast_expression "(Dynamic_entry *)&vsize" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&vsize" & identifier)))) ))) ;))))) }) (else_clause "else {\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" else (compound_statement "{\n        ((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;\n        (iVar5._M_current)->od2 = (Output_data *)0x0;\n        (iVar5._M_current)->tag_ = DT_VERSYM;\n        (iVar5._M_current)->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" { (expression_statement "((iVar5._M_current)->u_).od = &pOVar3->super_Output_data;" (assignment_expression "((iVar5._M_current)->u_).od = &pOVar3->super_Output_data" (field_expression "((iVar5._M_current)->u_).od" (parenthesized_expression "((iVar5._M_current)->u_)" ( (field_expression "(iVar5._M_current)->u_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (pointer_expression "&pOVar3->super_Output_data" & (field_expression "pOVar3->super_Output_data" identifier -> field_identifier))) ;) (expression_statement "(iVar5._M_current)->od2 = (Output_data *)0x0;" (assignment_expression "(iVar5._M_current)->od2 = (Output_data *)0x0" (field_expression "(iVar5._M_current)->od2" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(iVar5._M_current)->tag_ = DT_VERSYM;" (assignment_expression "(iVar5._M_current)->tag_ = DT_VERSYM" (field_expression "(iVar5._M_current)->tag_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar5._M_current)->offset_ = 0;" (assignment_expression "(iVar5._M_current)->offset_ = 0" (field_expression "(iVar5._M_current)->offset_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar5._M_current + 1" (field_expression "iVar5._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) }))) (if_statement "if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start) &&\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0))\n  {\n    Versions::def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 4;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    if ((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if ((pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))) goto LAB_000acf96;\n    pOVar3->info_ = vdentries;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERDEF;\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      local_20 = 0;\n      local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }\n      local_24 = DT_VERDEFNUM;\n      local_20 = 0xffffffff;\n      vsize = vdentries;\n      if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }" if (parenthesized_expression "(((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start) &&\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0))" ( (binary_expression "((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start) &&\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0)" (parenthesized_expression "((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start)" ( (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish !=\n       (versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std" (binary_expression "(versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base" (parenthesized_expression "(versions->defs_)" ( (field_expression "versions->defs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "(versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base" (parenthesized_expression "(versions->defs_)" ( (field_expression "versions->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) && (parenthesized_expression "(pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0)" ( (comma_expression "pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 != (Output_section *)0x0" (assignment_expression "pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" identifier = (call_expression "choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" identifier (argument_list "(this,(Relobj *)0x0,".gnu.version_d",0x6ffffffd,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".gnu.version_d"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false )))) , (binary_expression "pOVar3 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    Versions::def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);\n    pOVar4 = (Output_section_data *)operator_new(0x34);\n    bVar1 = (pOVar4->super_Output_data).field_0x1c;\n    *(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;\n    pOVar4->output_section_ = (Output_section *)0x0;\n    *(undefined4 *)&pOVar4->addralign_ = 4;\n    (pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;\n    *(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;\n    *(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize;\n    (pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;\n    pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf;\n    *(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;\n    *(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;\n    *(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";\n    Output_section::add_output_section_data(pOVar3,pOVar4);\n    if ((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))\n       ) goto LAB_000ad053;\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if ((pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))) goto LAB_000acf96;\n    pOVar3->info_ = vdentries;\n    if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERDEF;\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      local_20 = 0;\n      local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }\n      local_24 = DT_VERDEFNUM;\n      local_20 = 0xffffffff;\n      vsize = vdentries;\n      if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }\n  }" { (labeled_statement "Versions::def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);" statement_identifier : (ERROR ":" :) (expression_statement "def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries);" (comma_expression "def_section_contents<64,_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries)" (binary_expression "def_section_contents<64" identifier < number_literal) , (binary_expression "_true>(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries)" identifier > (parenthesized_expression "(versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries)" ( (comma_expression "versions,&this->dynpool_,&vdbuf,&vdsize,&vdentries" identifier , (comma_expression "&this->dynpool_,&vdbuf,&vdsize,&vdentries" (pointer_expression "&this->dynpool_" & (field_expression "this->dynpool_" identifier -> field_identifier)) , (comma_expression "&vdbuf,&vdsize,&vdentries" (pointer_expression "&vdbuf" & identifier) , (comma_expression "&vdsize,&vdentries" (pointer_expression "&vdsize" & identifier) , (pointer_expression "&vdentries" & identifier))))) )))) ;)) (expression_statement "pOVar4 = (Output_section_data *)operator_new(0x34);" (assignment_expression "pOVar4 = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar1 = (pOVar4->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar4->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar4->output_section_ = (Output_section *)0x0" (field_expression "pOVar4->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar4->addralign_ = 4;" (assignment_expression "*(undefined4 *)&pOVar4->addralign_ = 4" (pointer_expression "*(undefined4 *)&pOVar4->addralign_" * (cast_expression "(undefined4 *)&pOVar4->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;" (assignment_expression "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10" (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 10" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar4->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar4->addralign_ + 4)" ( (binary_expression "(int)&pOVar4->addralign_ + 4" (cast_expression "(int)&pOVar4->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize;" (assignment_expression "*(uint *)&(pOVar4->super_Output_data).data_size_ = vdsize" (pointer_expression "*(uint *)&(pOVar4->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(pOVar4->super_Output_data)._vptr_Output_data =\n         (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(pOVar4->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf;" (assignment_expression "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vdbuf" (field_expression "pOVar4[1].super_Output_data._vptr_Output_data" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)vdbuf" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";" (assignment_expression "*(char **)&pOVar4[1].super_Output_data.address_ = "** version defs"" (pointer_expression "*(char **)&pOVar4[1].super_Output_data.address_" * (cast_expression "(char **)&pOVar4[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar4[1].super_Output_data.address_" & (field_expression "pOVar4[1].super_Output_data.address_" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** version defs"" " string_content ")) ;) (labeled_statement "Output_section::add_output_section_data(pOVar3,pOVar4);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar3,pOVar4);" (call_expression "add_output_section_data(pOVar3,pOVar4)" identifier (argument_list "(pOVar3,pOVar4)" ( identifier , identifier ))) ;)) (if_statement "if ((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))\n       ) goto LAB_000ad053;" if (parenthesized_expression "((pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))\n       )" ( (binary_expression "(pOVar3->link_ != 0) || (((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))" (parenthesized_expression "(pOVar3->link_ != 0)" ( (binary_expression "pOVar3->link_ != 0" (field_expression "pOVar3->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)))" ( (parenthesized_expression "((pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0))" ( (binary_expression "(pOVar3->field_0x90 & 4) != 0 || ((pOVar3->field_0x90 & 8) != 0)" (binary_expression "(pOVar3->field_0x90 & 4) != 0" (parenthesized_expression "(pOVar3->field_0x90 & 4)" ( (binary_expression "pOVar3->field_0x90 & 4" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((pOVar3->field_0x90 & 8) != 0)" ( (binary_expression "(pOVar3->field_0x90 & 8) != 0" (parenthesized_expression "(pOVar3->field_0x90 & 8)" ( (binary_expression "pOVar3->field_0x90 & 8" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "pOVar3->link_section_ = &dynstr->super_Output_data;" (assignment_expression "pOVar3->link_section_ = &dynstr->super_Output_data" (field_expression "pOVar3->link_section_" identifier -> field_identifier) = (pointer_expression "&dynstr->super_Output_data" & (field_expression "dynstr->super_Output_data" identifier -> field_identifier))) ;) (if_statement "if ((pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))) goto LAB_000acf96;" if (parenthesized_expression "((pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_))))))" ( (binary_expression "(pOVar3->info_section_ != (Output_section *)0x0) ||\n       ((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))" (parenthesized_expression "(pOVar3->info_section_ != (Output_section *)0x0)" ( (binary_expression "pOVar3->info_section_ != (Output_section *)0x0" (field_expression "pOVar3->info_section_" identifier -> field_identifier) != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))))" ( (parenthesized_expression "(pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_))))" ( (binary_expression "pOVar3->info_symndx_ != (Symbol *)0x0 ||\n        ((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))" (binary_expression "pOVar3->info_symndx_ != (Symbol *)0x0" (field_expression "pOVar3->info_symndx_" identifier -> field_identifier) != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((pOVar3->info_ != 0 && (vdentries != pOVar3->info_)))" ( (parenthesized_expression "(pOVar3->info_ != 0 && (vdentries != pOVar3->info_))" ( (binary_expression "pOVar3->info_ != 0 && (vdentries != pOVar3->info_)" (binary_expression "pOVar3->info_ != 0" (field_expression "pOVar3->info_" identifier -> field_identifier) != number_literal) && (parenthesized_expression "(vdentries != pOVar3->info_)" ( (binary_expression "vdentries != pOVar3->info_" identifier != (field_expression "pOVar3->info_" identifier -> field_identifier)) ))) )) ))) )) ))) )) (goto_statement "goto LAB_000acf96;" goto statement_identifier ;)) (expression_statement "pOVar3->info_ = vdentries;" (assignment_expression "pOVar3->info_ = vdentries" (field_expression "pOVar3->info_" identifier -> field_identifier) = identifier) ;) (if_statement "if (pOVar6 != (Output_data_dynamic *)0x0) {\n      local_24 = DT_VERDEF;\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      local_20 = 0;\n      local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }\n      local_24 = DT_VERDEFNUM;\n      local_20 = 0xffffffff;\n      vsize = vdentries;\n      if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }" if (parenthesized_expression "(pOVar6 != (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar6 != (Output_data_dynamic *)0x0" identifier != (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_24 = DT_VERDEF;\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      local_20 = 0;\n      local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }\n      local_24 = DT_VERDEFNUM;\n      local_20 = 0xffffffff;\n      vsize = vdentries;\n      if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }\n    }" { (expression_statement "local_24 = DT_VERDEF;" (assignment_expression "local_24 = DT_VERDEF" identifier = identifier) ;) (ERROR "pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::" (assignment_expression "pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold" identifier = (binary_expression "(pOVar6->entries_).\n               super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n               super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n               ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n               ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n               ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (ERROR "local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold::" (assignment_expression "local_54 = (pOVar6->entries_).\n                 super__Vector_base<gold" identifier = (binary_expression "(pOVar6->entries_).\n                 super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n                 super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n                 ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n                 ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pDVar2 == local_54) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }" if (parenthesized_expression "(pDVar2 == local_54)" ( (binary_expression "pDVar2 == local_54" identifier == identifier) )) (compound_statement "{\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);\n        local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n      }" { (expression_statement "vsize = (uint)pOVar3;" (assignment_expression "vsize = (uint)pOVar3" identifier = (cast_expression "(uint)pOVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize);" (binary_expression "Dynamic_entry&>\n                  (&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize)" ( (comma_expression "&pOVar6->entries_,(iterator)local_54,(Dynamic_entry *)&vsize" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "(iterator)local_54,(Dynamic_entry *)&vsize" (cast_expression "(iterator)local_54" ( (type_descriptor "iterator" type_identifier) ) identifier) , (cast_expression "(Dynamic_entry *)&vsize" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&vsize" & identifier)))) ))) ;))))) (ERROR "local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold::" (assignment_expression "local_54 = (pOVar6->entries_).\n                   super__Vector_base<gold" identifier = (binary_expression "(pOVar6->entries_).\n                   super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n                   super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n                   ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n                   ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (ERROR "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "iVar5._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) }) (else_clause "else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }" else (compound_statement "{\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        iVar5._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERDEF;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;\n      }" { (expression_statement "(pDVar2->u_).od = &pOVar3->super_Output_data;" (assignment_expression "(pDVar2->u_).od = &pOVar3->super_Output_data" (field_expression "(pDVar2->u_).od" (parenthesized_expression "(pDVar2->u_)" ( (field_expression "pDVar2->u_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "&pOVar3->super_Output_data" & (field_expression "pOVar3->super_Output_data" identifier -> field_identifier))) ;) (expression_statement "iVar5._M_current = pDVar2 + 1;" (assignment_expression "iVar5._M_current = pDVar2 + 1" (field_expression "iVar5._M_current" identifier . field_identifier) = (binary_expression "pDVar2 + 1" identifier + number_literal)) ;) (expression_statement "pDVar2->od2 = (Output_data *)0x0;" (assignment_expression "pDVar2->od2 = (Output_data *)0x0" (field_expression "pDVar2->od2" identifier -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pDVar2->tag_ = DT_VERDEF;" (assignment_expression "pDVar2->tag_ = DT_VERDEF" (field_expression "pDVar2->tag_" identifier -> field_identifier) = identifier) ;) (expression_statement "pDVar2->offset_ = 0;" (assignment_expression "pDVar2->offset_ = 0" (field_expression "pDVar2->offset_" identifier -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (field_expression "iVar5._M_current" identifier . field_identifier)) ;))) }))) (expression_statement "local_24 = DT_VERDEFNUM;" (assignment_expression "local_24 = DT_VERDEFNUM" identifier = identifier) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "vsize = vdentries;" (assignment_expression "vsize = vdentries" identifier = identifier) ;) (if_statement "if (iVar5._M_current == local_54) {\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }\n      else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" if (parenthesized_expression "(iVar5._M_current == local_54)" ( (binary_expression "iVar5._M_current == local_54" (field_expression "iVar5._M_current" identifier . field_identifier) == identifier) )) (compound_statement "{\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n      }" { (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" (binary_expression "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" ( (comma_expression "&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "iVar5,(Dynamic_entry *)&vsize" identifier , (cast_expression "(Dynamic_entry *)&vsize" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&vsize" & identifier)))) ))) ;))))) }) (else_clause "else {\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" else (compound_statement "{\n        ((iVar5._M_current)->u_).val = vdentries;\n        (iVar5._M_current)->od2 = local_28;\n        (iVar5._M_current)->tag_ = DT_VERDEFNUM;\n        (iVar5._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;\n      }" { (expression_statement "((iVar5._M_current)->u_).val = vdentries;" (assignment_expression "((iVar5._M_current)->u_).val = vdentries" (field_expression "((iVar5._M_current)->u_).val" (parenthesized_expression "((iVar5._M_current)->u_)" ( (field_expression "(iVar5._M_current)->u_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(iVar5._M_current)->od2 = local_28;" (assignment_expression "(iVar5._M_current)->od2 = local_28" (field_expression "(iVar5._M_current)->od2" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar5._M_current)->tag_ = DT_VERDEFNUM;" (assignment_expression "(iVar5._M_current)->tag_ = DT_VERDEFNUM" (field_expression "(iVar5._M_current)->tag_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(iVar5._M_current)->offset_ = 0xffffffff;" (assignment_expression "(iVar5._M_current)->offset_ = 0xffffffff" (field_expression "(iVar5._M_current)->offset_" (parenthesized_expression "(iVar5._M_current)" ( (field_expression "iVar5._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = iVar5._M_current + 1" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "iVar5._M_current + 1" (field_expression "iVar5._M_current" identifier . field_identifier) + number_literal)) ;))) }))) })) })) (if_statement "if (((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start) ||\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0))\n  {\n    return;\n  }" if (parenthesized_expression "(((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start) ||\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0))" ( (binary_expression "((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start) ||\n     (pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0)" (parenthesized_expression "((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start)" ( (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_start" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold::Verneed*,_std" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish ==\n       (versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl._M_finish" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>.\n       _M_impl" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std" (binary_expression "(versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base" (parenthesized_expression "(versions->needs_)" ( (field_expression "versions->needs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base" (parenthesized_expression "(versions->needs_)" ( (field_expression "versions->needs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verneed" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) || (parenthesized_expression "(pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0)" ( (comma_expression "pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false), pOVar3 == (Output_section *)0x0" (assignment_expression "pOVar3 = choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" identifier = (call_expression "choose_output_section\n                         (this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" identifier (argument_list "(this,(Relobj *)0x0,".gnu.version_r",0x6ffffffe,2,false,\n                          ORDER_DYNAMIC_LINKER,false,false,false)" ( identifier , (cast_expression "(Relobj *)0x0" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal "".gnu.version_r"" " string_content ") , number_literal , number_literal , false , identifier , false , false , false )))) , (binary_expression "pOVar3 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "Versions::need_section_contents<64,_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries);" statement_identifier : (ERROR ":" :) (expression_statement "need_section_contents<64,_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries);" (comma_expression "need_section_contents<64,_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries)" (binary_expression "need_section_contents<64" identifier < number_literal) , (binary_expression "_true>(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries)" identifier > (parenthesized_expression "(versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries)" ( (comma_expression "versions,&this->dynpool_,&vnbuf,&vnsize,&vnentries" identifier , (comma_expression "&this->dynpool_,&vnbuf,&vnsize,&vnentries" (pointer_expression "&this->dynpool_" & (field_expression "this->dynpool_" identifier -> field_identifier)) , (comma_expression "&vnbuf,&vnsize,&vnentries" (pointer_expression "&vnbuf" & identifier) , (comma_expression "&vnsize,&vnentries" (pointer_expression "&vnsize" & identifier) , (pointer_expression "&vnentries" & identifier))))) )))) ;)) (expression_statement "pOVar4 = (Output_section_data *)operator_new(0x34);" (assignment_expression "pOVar4 = (Output_section_data *)operator_new(0x34)" identifier = (cast_expression "(Output_section_data *)operator_new(0x34)" ( (type_descriptor "Output_section_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "bVar1 = (pOVar4->super_Output_data).field_0x1c;" (assignment_expression "bVar1 = (pOVar4->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_ = 0" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).address_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).address_" & (field_expression "(pOVar4->super_Output_data).address_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4->output_section_ = (Output_section *)0x0;" (assignment_expression "pOVar4->output_section_ = (Output_section *)0x0" (field_expression "pOVar4->output_section_" identifier -> field_identifier) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar4->addralign_ = 4;" (assignment_expression "*(undefined4 *)&pOVar4->addralign_ = 4" (pointer_expression "*(undefined4 *)&pOVar4->addralign_" * (cast_expression "(undefined4 *)&pOVar4->addralign_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10;" (assignment_expression "(pOVar4->super_Output_data).field_0x1c = bVar1 & 0xe0 | 10" (field_expression "(pOVar4->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (binary_expression "bVar1 & 0xe0 | 10" (binary_expression "bVar1 & 0xe0" identifier & number_literal) | number_literal)) ;) (expression_statement "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar4->addralign_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar4->addralign_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar4->addralign_ + 4)" ( (binary_expression "(int)&pOVar4->addralign_ + 4" (cast_expression "(int)&pOVar4->addralign_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar4->addralign_" & (field_expression "pOVar4->addralign_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)&(pOVar4->super_Output_data).data_size_ = vnsize;" (assignment_expression "*(uint *)&(pOVar4->super_Output_data).data_size_ = vnsize" (pointer_expression "*(uint *)&(pOVar4->super_Output_data).data_size_" * (cast_expression "(uint *)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "(pOVar4->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70;" (assignment_expression "(pOVar4->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" (field_expression "(pOVar4->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Output_data_const_buffer_00383c70" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Output_data_const_buffer_00383c70" & identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).data_size_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).data_size_" & (field_expression "(pOVar4->super_Output_data).data_size_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vnbuf;" (assignment_expression "pOVar4[1].super_Output_data._vptr_Output_data = (_func_int_varargs **)vnbuf" (field_expression "pOVar4[1].super_Output_data._vptr_Output_data" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)vnbuf" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&(pOVar4->super_Output_data).offset_" * (cast_expression "(undefined4 *)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" * (cast_expression "(undefined4 *)((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar4->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar4->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar4->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar4->super_Output_data).offset_" & (field_expression "(pOVar4->super_Output_data).offset_" (parenthesized_expression "(pOVar4->super_Output_data)" ( (field_expression "pOVar4->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)&pOVar4[1].super_Output_data.address_ = "** version refs";" (assignment_expression "*(char **)&pOVar4[1].super_Output_data.address_ = "** version refs"" (pointer_expression "*(char **)&pOVar4[1].super_Output_data.address_" * (cast_expression "(char **)&pOVar4[1].super_Output_data.address_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar4[1].super_Output_data.address_" & (field_expression "pOVar4[1].super_Output_data.address_" (field_expression "pOVar4[1].super_Output_data" (subscript_expression "pOVar4[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)))) = (string_literal ""** version refs"" " string_content ")) ;) (labeled_statement "Output_section::add_output_section_data(pOVar3,pOVar4);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_data(pOVar3,pOVar4);" (call_expression "add_output_section_data(pOVar3,pOVar4)" identifier (argument_list "(pOVar3,pOVar4)" ( identifier , identifier ))) ;)) (if_statement "if ((pOVar3->link_ == 0) && (((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0))))\n  {\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if (((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))) {\n      pOVar3->info_ = vnentries;\n      if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = DT_VERNEED;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = DT_VERNEEDNUM;\n      local_20 = 0xffffffff;\n      if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n  }" if (parenthesized_expression "((pOVar3->link_ == 0) && (((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0))))" ( (binary_expression "(pOVar3->link_ == 0) && (((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0)))" (parenthesized_expression "(pOVar3->link_ == 0)" ( (binary_expression "pOVar3->link_ == 0" (field_expression "pOVar3->link_" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0)))" ( (parenthesized_expression "((pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0))" ( (binary_expression "(pOVar3->field_0x90 & 4) == 0 && ((pOVar3->field_0x90 & 8) == 0)" (binary_expression "(pOVar3->field_0x90 & 4) == 0" (parenthesized_expression "(pOVar3->field_0x90 & 4)" ( (binary_expression "pOVar3->field_0x90 & 4" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "((pOVar3->field_0x90 & 8) == 0)" ( (binary_expression "(pOVar3->field_0x90 & 8) == 0" (parenthesized_expression "(pOVar3->field_0x90 & 8)" ( (binary_expression "pOVar3->field_0x90 & 8" (field_expression "pOVar3->field_0x90" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    pOVar3->link_section_ = &dynstr->super_Output_data;\n    if (((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))) {\n      pOVar3->info_ = vnentries;\n      if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = DT_VERNEED;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = DT_VERNEEDNUM;\n      local_20 = 0xffffffff;\n      if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);\n      return;\n    }\nLAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");\n  }" { (expression_statement "pOVar3->link_section_ = &dynstr->super_Output_data;" (assignment_expression "pOVar3->link_section_ = &dynstr->super_Output_data" (field_expression "pOVar3->link_section_" identifier -> field_identifier) = (pointer_expression "&dynstr->super_Output_data" & (field_expression "dynstr->super_Output_data" identifier -> field_identifier))) ;) (if_statement "if (((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))) {\n      pOVar3->info_ = vnentries;\n      if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = DT_VERNEED;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = DT_VERNEEDNUM;\n      local_20 = 0xffffffff;\n      if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);\n      return;\n    }" if (parenthesized_expression "(((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0))))" ( (binary_expression "((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        ) && ((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))" (parenthesized_expression "((pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)\n        )" ( (binary_expression "(pOVar3->info_section_ == (Output_section *)0x0) && (pOVar3->info_symndx_ == (Symbol *)0x0)" (parenthesized_expression "(pOVar3->info_section_ == (Output_section *)0x0)" ( (binary_expression "pOVar3->info_section_ == (Output_section *)0x0" (field_expression "pOVar3->info_section_" identifier -> field_identifier) == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pOVar3->info_symndx_ == (Symbol *)0x0)" ( (binary_expression "pOVar3->info_symndx_ == (Symbol *)0x0" (field_expression "pOVar3->info_symndx_" identifier -> field_identifier) == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((vnentries == pOVar3->info_ || (pOVar3->info_ == 0)))" ( (parenthesized_expression "(vnentries == pOVar3->info_ || (pOVar3->info_ == 0))" ( (binary_expression "vnentries == pOVar3->info_ || (pOVar3->info_ == 0)" (binary_expression "vnentries == pOVar3->info_" identifier == (field_expression "pOVar3->info_" identifier -> field_identifier)) || (parenthesized_expression "(pOVar3->info_ == 0)" ( (binary_expression "pOVar3->info_ == 0" (field_expression "pOVar3->info_" identifier -> field_identifier) == number_literal) ))) )) ))) )) (compound_statement "{\n      pOVar3->info_ = vnentries;\n      if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }\n      pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;\n      iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;\n      local_24 = DT_VERNEED;\n      local_20 = 0;\n      local_28 = (Output_data *)0x0;\n      if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }\n      local_24 = DT_VERNEEDNUM;\n      local_20 = 0xffffffff;\n      if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }\n      std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);\n      return;\n    }" { (expression_statement "pOVar3->info_ = vnentries;" (assignment_expression "pOVar3->info_ = vnentries" (field_expression "pOVar3->info_" identifier -> field_identifier) = identifier) ;) (if_statement "if (pOVar6 == (Output_data_dynamic *)0x0) {\n        return;\n      }" if (parenthesized_expression "(pOVar6 == (Output_data_dynamic *)0x0)" ( (binary_expression "pOVar6 == (Output_data_dynamic *)0x0" identifier == (cast_expression "(Output_data_dynamic *)0x0" ( (type_descriptor "Output_data_dynamic *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (ERROR "pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold::" (assignment_expression "pDVar2 = (pOVar6->entries_).\n               super__Vector_base<gold" identifier = (binary_expression "(pOVar6->entries_).\n               super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n               super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n               ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n               ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n               ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n               ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (ERROR "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar5._M_current =\n           (pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "iVar5._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n           super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n           super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n           ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n           ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (expression_statement "local_24 = DT_VERNEED;" (assignment_expression "local_24 = DT_VERNEED" identifier = identifier) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (Output_data *)0x0;" (assignment_expression "local_28 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pDVar2 == iVar5._M_current) {\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }\n      else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" if (parenthesized_expression "(pDVar2 == iVar5._M_current)" ( (binary_expression "pDVar2 == iVar5._M_current" identifier == (field_expression "iVar5._M_current" identifier . field_identifier)) )) (compound_statement "{\n        vsize = (uint)pOVar3;\n        std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);\n        __position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;\n        iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;\n      }" { (expression_statement "vsize = (uint)pOVar3;" (assignment_expression "vsize = (uint)pOVar3" identifier = (cast_expression "(uint)pOVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (labeled_statement "std::\n        vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::\n        vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry>_>\n        ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize);" (binary_expression "Dynamic_entry&>\n                  (&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize)" ( (comma_expression "&pOVar6->entries_,iVar5,(Dynamic_entry *)&vsize" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "iVar5,(Dynamic_entry *)&vsize" identifier , (cast_expression "(Dynamic_entry *)&vsize" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&vsize" & identifier)))) ))) ;))))) (ERROR "__position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "__position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "__position._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_finish;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (ERROR "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::" (comma_expression "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std" (assignment_expression "iVar5._M_current =\n             (pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "iVar5._M_current" identifier . field_identifier) = (binary_expression "(pOVar6->entries_).\n             super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n             super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data_dynamic::Dynamic_entry" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n             ._M_impl._M_end_of_storage;" (field_expression "Dynamic_entry>_>\n             ._M_impl._M_end_of_storage" (field_expression "Dynamic_entry>_>\n             ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) }) (else_clause "else {\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" else (compound_statement "{\n        (pDVar2->u_).od = &pOVar3->super_Output_data;\n        __position._M_current = pDVar2 + 1;\n        pDVar2->od2 = (Output_data *)0x0;\n        pDVar2->tag_ = DT_VERNEED;\n        pDVar2->offset_ = 0;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;\n      }" { (expression_statement "(pDVar2->u_).od = &pOVar3->super_Output_data;" (assignment_expression "(pDVar2->u_).od = &pOVar3->super_Output_data" (field_expression "(pDVar2->u_).od" (parenthesized_expression "(pDVar2->u_)" ( (field_expression "pDVar2->u_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "&pOVar3->super_Output_data" & (field_expression "pOVar3->super_Output_data" identifier -> field_identifier))) ;) (expression_statement "__position._M_current = pDVar2 + 1;" (assignment_expression "__position._M_current = pDVar2 + 1" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "pDVar2 + 1" identifier + number_literal)) ;) (expression_statement "pDVar2->od2 = (Output_data *)0x0;" (assignment_expression "pDVar2->od2 = (Output_data *)0x0" (field_expression "pDVar2->od2" identifier -> field_identifier) = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pDVar2->tag_ = DT_VERNEED;" (assignment_expression "pDVar2->tag_ = DT_VERNEED" (field_expression "pDVar2->tag_" identifier -> field_identifier) = identifier) ;) (expression_statement "pDVar2->offset_ = 0;" (assignment_expression "pDVar2->offset_ = 0" (field_expression "pDVar2->offset_" identifier -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (field_expression "__position._M_current" identifier . field_identifier)) ;))) }))) (expression_statement "local_24 = DT_VERNEEDNUM;" (assignment_expression "local_24 = DT_VERNEEDNUM" identifier = identifier) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (__position._M_current != iVar5._M_current) {\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }" if (parenthesized_expression "(__position._M_current != iVar5._M_current)" ( (binary_expression "__position._M_current != iVar5._M_current" (field_expression "__position._M_current" identifier . field_identifier) != (field_expression "iVar5._M_current" identifier . field_identifier)) )) (compound_statement "{\n        ((__position._M_current)->u_).val = vnentries;\n        (__position._M_current)->od2 = local_28;\n        (__position._M_current)->tag_ = DT_VERNEEDNUM;\n        (__position._M_current)->offset_ = 0xffffffff;\n        (pOVar6->entries_).\n        super__Vector_base<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;\n        return;\n      }" { (expression_statement "((__position._M_current)->u_).val = vnentries;" (assignment_expression "((__position._M_current)->u_).val = vnentries" (field_expression "((__position._M_current)->u_).val" (parenthesized_expression "((__position._M_current)->u_)" ( (field_expression "(__position._M_current)->u_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->od2 = local_28;" (assignment_expression "(__position._M_current)->od2 = local_28" (field_expression "(__position._M_current)->od2" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->tag_ = DT_VERNEEDNUM;" (assignment_expression "(__position._M_current)->tag_ = DT_VERNEEDNUM" (field_expression "(__position._M_current)->tag_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "(__position._M_current)->offset_ = 0xffffffff;" (assignment_expression "(__position._M_current)->offset_ = 0xffffffff" (field_expression "(__position._M_current)->offset_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = number_literal) ;) (ERROR "(pOVar6->entries_).\n        super__Vector_base<gold::" (binary_expression "(pOVar6->entries_).\n        super__Vector_base<gold" (field_expression "(pOVar6->entries_).\n        super__Vector_base" (parenthesized_expression "(pOVar6->entries_)" ( (field_expression "pOVar6->entries_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Dynamic_entry>_>\n        ._M_impl._M_finish = __position._M_current + 1" (field_expression "Dynamic_entry>_>\n        ._M_impl._M_finish" (field_expression "Dynamic_entry>_>\n        ._M_impl" (binary_expression "Dynamic_entry>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) (return_statement "return;" return ;) })) (labeled_statement "std::\n      vector<gold::Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::\n      vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry,_std::allocator<gold::Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry,_std::allocator<gold:" : : (comma_expression "Dynamic_entry,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold::Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);" statement_identifier (ERROR "::Dynamic_entry>_>\n      ::_M_realloc_insert<const_gold:" : : (binary_expression "Dynamic_entry>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_data_dynamic::Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);" statement_identifier : (ERROR ":" :) (expression_statement "Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize);" (binary_expression "Dynamic_entry&>\n                (&pOVar6->entries_,__position,(Dynamic_entry *)&vsize)" identifier (ERROR "&" &) > (parenthesized_expression "(&pOVar6->entries_,__position,(Dynamic_entry *)&vsize)" ( (comma_expression "&pOVar6->entries_,__position,(Dynamic_entry *)&vsize" (pointer_expression "&pOVar6->entries_" & (field_expression "pOVar6->entries_" identifier -> field_identifier)) , (comma_expression "__position,(Dynamic_entry *)&vsize" identifier , (cast_expression "(Dynamic_entry *)&vsize" ( (type_descriptor "Dynamic_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&vsize" & identifier)))) ))) ;))))) (return_statement "return;" return ;) })) (labeled_statement "LAB_000acf96:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd5e,"set_info");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd5e,"set_info")" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") ))) ;)) })) (labeled_statement "LAB_000ad053:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "void FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}\n\n" (function_definition "void FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" primitive_type (function_declarator "FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" ( (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 identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xaca49;" (assignment_expression "uStack_14 = 0xaca49" identifier = number_literal) ;) (expression_statement "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" else (compound_statement "{\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" { (expression_statement "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);" (call_expression "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" identifier (argument_list "(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" ( identifier , identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , identifier , identifier , (pointer_expression "&local_48" & identifier) , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 2;" (assignment_expression "puVar3[9] = 2" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_2c;" (assignment_expression "puVar3[3] = local_2c" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_48;" (assignment_expression "puVar3[0xb] = local_48" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** versions";" (assignment_expression "puVar3[0xc] = "** versions"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** versions"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (expression_statement "FUN_000ee490(iVar2,2,0);" (call_expression "FUN_000ee490(iVar2,2,0)" identifier (argument_list "(iVar2,2,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;" if (parenthesized_expression "(((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);" (assignment_expression "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c)" (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" * (cast_expression "(undefined4 *)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x17c)" * (cast_expression "(undefined4 *)(param_1 + 0x17c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x17c)" ( (binary_expression "param_1 + 0x17c" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" identifier = (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" { (expression_statement "local_24 = 0x6ffffff0;" (assignment_expression "local_24 = 0x6ffffff0" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (if_statement "if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" if (parenthesized_expression "(piVar1 == *(int **)(iVar7 + 0x34))" ( (binary_expression "piVar1 == *(int **)(iVar7 + 0x34)" identifier == (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) )) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }" { (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar1,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffff0;" (assignment_expression "piVar1[2] = 0x6ffffff0" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar1 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar1 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) }))) })) }))) (if_statement "if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" if (parenthesized_expression "((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0))" ( (binary_expression "(param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" (parenthesized_expression "(param_2[1] != *param_2)" ( (binary_expression "param_2[1] != *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) != (pointer_expression "*param_2" * identifier)) )) && (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version_d"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" { (expression_statement "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);" (call_expression "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" identifier (argument_list "(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" ( identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , (pointer_expression "&local_44" & identifier) , (pointer_expression "&local_40" & identifier) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_40;" (assignment_expression "puVar3[3] = local_40" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_44;" (assignment_expression "puVar3[0xb] = local_44" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** version defs";" (assignment_expression "puVar3[0xc] = "** version defs"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** version defs"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;" if (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" ( (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000ad053;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" * (cast_expression "(int *)(iVar2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x44)" identifier = (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;" if (parenthesized_expression "((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))))" ( (binary_expression "(*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) != 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (binary_expression "*(int *)(iVar2 + 0x48) != 0" (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) )))) != number_literal) || (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) , (binary_expression "iVar6 != 0 && (local_3c != iVar6)" (binary_expression "iVar6 != 0" identifier != number_literal) && (parenthesized_expression "(local_3c != iVar6)" ( (binary_expression "local_3c != iVar6" identifier != identifier) )))) )) )))) )) ))) )) (goto_statement "goto LAB_000acf96;" goto statement_identifier ;)) (expression_statement "*(int *)(iVar2 + 0x4c) = local_3c;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_3c" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" { (expression_statement "local_24 = 0x6ffffffc;" (assignment_expression "local_24 = 0x6ffffffc" identifier = number_literal) ;) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" if (parenthesized_expression "(piVar1 == local_54)" ( (binary_expression "piVar1 == local_54" identifier == identifier) )) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }" { (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,local_54,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar4 = piVar1 + 4;" (assignment_expression "piVar4 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffffc;" (assignment_expression "piVar1[2] = 0x6ffffffc" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0x6ffffffd;" (assignment_expression "local_24 = 0x6ffffffd" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = local_3c;" (assignment_expression "local_2c = local_3c" identifier = identifier) ;) (if_statement "if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" if (parenthesized_expression "(piVar4 == local_54)" ( (binary_expression "piVar4 == local_54" identifier == identifier) )) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }" { (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) }) (else_clause "else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" else (compound_statement "{\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" { (expression_statement "*piVar4 = local_3c;" (assignment_expression "*piVar4 = local_3c" (pointer_expression "*piVar4" * identifier) = identifier) ;) (expression_statement "piVar4[1] = local_28;" (assignment_expression "piVar4[1] = local_28" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[2] = 0x6ffffffd;" (assignment_expression "piVar4[2] = 0x6ffffffd" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4[3] = -1;" (assignment_expression "piVar4[3] = -1" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar4 + 4" identifier + number_literal)) ;) }))) })) })) (if_statement "if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }" if (parenthesized_expression "((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0))" ( (binary_expression "(param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" (parenthesized_expression "(param_2[4] == param_2[3])" ( (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" identifier [ number_literal ]) == (subscript_expression "param_2[3]" identifier [ number_literal ])) )) || (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" ( (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" identifier = (call_expression "FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" identifier (argument_list "(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" ( identifier , number_literal , (string_literal "".gnu.version_r"" " string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal )))) , (binary_expression "iVar2 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);" (call_expression "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" identifier (argument_list "(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" ( identifier , (binary_expression "param_1 + 0xa0" identifier + number_literal) , (pointer_expression "&local_38" & identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" identifier = (cast_expression "(undefined4 *)FUN_001e5200(0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(0x34)" identifier (argument_list "(0x34)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" * (cast_expression "(byte *)(puVar3 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 7)" ( (binary_expression "puVar3 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" * identifier) = (pointer_expression "&PTR_FUN_00383c70" & identifier)) ;) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xb] = local_38;" (assignment_expression "puVar3[0xb] = local_38" (subscript_expression "puVar3[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xc] = "** version refs";" (assignment_expression "puVar3[0xc] = "** version refs"" (subscript_expression "puVar3[0xc]" identifier [ number_literal ]) = (string_literal ""** version refs"" " string_content ")) ;) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" identifier (argument_list "(iVar2,puVar3)" ( identifier , identifier ))) ;) (if_statement "if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" if (parenthesized_expression "((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))))" ( (binary_expression "(*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x40) == 0" (pointer_expression "*(int *)(iVar2 + 0x40)" * (cast_expression "(int *)(iVar2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" ( (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" * (cast_expression "(byte *)(iVar2 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" { (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" * (cast_expression "(int *)(iVar2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = param_6;" (assignment_expression "iVar6 = param_6" identifier = identifier) ;) (if_statement "if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" if (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))))" ( (binary_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0))" ( (binary_expression "(*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" ( (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" * (cast_expression "(int *)(iVar2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" identifier = (pointer_expression "*(int *)(iVar2 + 0x48)" * (cast_expression "(int *)(iVar2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" ( (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))" ( (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) , (binary_expression "local_30 == iVar6 || (iVar6 == 0)" (binary_expression "local_30 == iVar6" identifier == identifier) || (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )))) )) ))) )) (compound_statement "{\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" { (expression_statement "*(int *)(iVar2 + 0x4c) = local_30;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_30" (pointer_expression "*(int *)(iVar2 + 0x4c)" * (cast_expression "(int *)(iVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 0x6ffffffe;" (assignment_expression "local_24 = 0x6ffffffe" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" if (parenthesized_expression "(piVar1 == piVar4)" ( (binary_expression "piVar1 == piVar4" identifier == identifier) )) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }" { (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" identifier = identifier) ;) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (expression_statement "piVar5 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar5 = *(int **)(iVar7 + 0x30)" identifier = (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" identifier = (pointer_expression "*(int **)(iVar7 + 0x34)" * (cast_expression "(int **)(iVar7 + 0x34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" else (compound_statement "{\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" { (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" * identifier) = identifier) ;) (expression_statement "piVar5 = piVar1 + 4;" (assignment_expression "piVar5 = piVar1 + 4" identifier = (binary_expression "piVar1 + 4" identifier + number_literal)) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[2] = 0x6ffffffe;" (assignment_expression "piVar1[2] = 0x6ffffffe" (subscript_expression "piVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "local_24 = 0x6fffffff;" (assignment_expression "local_24 = 0x6fffffff" identifier = number_literal) ;) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" if (parenthesized_expression "(piVar5 != piVar4)" ( (binary_expression "piVar5 != piVar4" identifier != identifier) )) (compound_statement "{\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" { (expression_statement "*piVar5 = local_30;" (assignment_expression "*piVar5 = local_30" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "piVar5[1] = local_28;" (assignment_expression "piVar5[1] = local_28" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar5[2] = 0x6fffffff;" (assignment_expression "piVar5[2] = 0x6fffffff" (subscript_expression "piVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar5[3] = -1;" (assignment_expression "piVar5[3] = -1" (subscript_expression "piVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" * (cast_expression "(int **)(iVar7 + 0x30)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = (binary_expression "piVar5 + 4" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c)" identifier (argument_list "(iVar7 + 0x2c,piVar5,&local_2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) , identifier , (pointer_expression "&local_2c" & identifier) ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6)" identifier (argument_list "("../../gold/output.h",0xd5e,"set_info",iVar6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_info"" " string_content ") , identifier ))) ;)) })) (labeled_statement "LAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" statement_identifier : (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 = LIT) ;) (expression_statement (assignment_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 ]) = 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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != IDENT) )))) )) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 = LIT) ;) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 ]) = 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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression IDENT == IDENT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 ]) = 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 IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "void FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)\n\n{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" (primitive_type "void") (function_declarator "FUN_000aca40(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" (identifier "FUN_000aca40") (parameter_list "(int param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n                 int param_6)" (( "(") (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") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xaca49;\n  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);\n  if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }\n  if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }\n  if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }\n  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);\n  puVar3 = (undefined4 *)FUN_001e5200(0x34);\n  puVar3[1] = 0;\n  puVar3[2] = 0;\n  puVar3[8] = 0;\n  puVar3[9] = 4;\n  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n  puVar3[10] = 0;\n  puVar3[3] = local_34;\n  *puVar3 = &PTR_FUN_00383c70;\n  puVar3[4] = 0;\n  puVar3[0xb] = local_38;\n  puVar3[5] = 0xffffffff;\n  puVar3[6] = 0xffffffff;\n  puVar3[0xc] = "** version refs";\n  FUN_000f2600(iVar2,puVar3);\n  if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }\nLAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *local_54;" (primitive_type "int") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0xaca49;" (assignment_expression "uStack_14 = 0xaca49" (identifier "uStack_14") (= "=") (number_literal "0xaca49")) (; ";")) (expression_statement "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".gnu.version"" (" """) (string_content ".gnu.version") (" """)) (, ",") (number_literal "0x6fffffff") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }\n  else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = *(int *)(param_1 + 0x18c);\n  }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x18c)" (* "*") (cast_expression "(int *)(param_1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 2;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_2c;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_48;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** versions";\n    FUN_000f2600(iVar2,puVar3);\n    FUN_000ee490(iVar2,2,0);\n    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;\n    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);\n    iVar7 = *(int *)(param_1 + 0x18c);\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }\n  }" ({ "{") (expression_statement "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);" (call_expression "FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" (identifier "FUN_001b0290") (argument_list "(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[9] = 2;" (assignment_expression "puVar3[9] = 2" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = local_2c;" (assignment_expression "puVar3[3] = local_2c" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb] = local_48;" (assignment_expression "puVar3[0xb] = local_48" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[0xc] = "** versions";" (assignment_expression "puVar3[0xc] = "** versions"" (subscript_expression "puVar3[0xc]" (identifier "puVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** versions"" (" """) (string_content "** versions") (" """))) (; ";")) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" (identifier "FUN_000f2600") (argument_list "(iVar2,puVar3)" (( "(") (identifier "iVar2") (, ",") (identifier "puVar3") () ")"))) (; ";")) (expression_statement "FUN_000ee490(iVar2,2,0);" (call_expression "FUN_000ee490(iVar2,2,0)" (identifier "FUN_000ee490") (argument_list "(iVar2,2,0)" (( "(") (identifier "iVar2") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;" (if "if") (parenthesized_expression "(((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0))" (( "(") (binary_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||\n       ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000ad053;" (goto "goto") (statement_identifier "LAB_000ad053") (; ";"))) (expression_statement "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);" (assignment_expression "*(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c)" (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3c)" (( "(") (binary_expression "iVar2 + 0x3c" (identifier "iVar2") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x17c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x17c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x17c)" (( "(") (binary_expression "param_1 + 0x17c" (identifier "param_1") (+ "+") (number_literal "0x17c")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x18c);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x18c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x18c)" (* "*") (cast_expression "(int *)(param_1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_24 = 0x6ffffff0;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_28 = 0;\n      local_2c = iVar2;\n      if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }\n    }" ({ "{") (expression_statement "local_24 = 0x6ffffff0;" (assignment_expression "local_24 = 0x6ffffff0" (identifier "local_24") (= "=") (number_literal "0x6ffffff0")) (; ";")) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" (identifier "local_2c") (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (piVar1 == *(int **)(iVar7 + 0x34)) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" (if "if") (parenthesized_expression "(piVar1 == *(int **)(iVar7 + 0x34))" (( "(") (binary_expression "piVar1 == *(int **)(iVar7 + 0x34)" (identifier "piVar1") (== "==") (pointer_expression "*(int **)(iVar7 + 0x34)" (* "*") (cast_expression "(int **)(iVar7 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);\n      }" ({ "{") (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar7 + 0x2c,piVar1,&local_2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar1") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" (else "else") (compound_statement "{\n        *piVar1 = iVar2;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffff0;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar1 + 4;\n      }" ({ "{") (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[2] = 0x6ffffff0;" (assignment_expression "piVar1[2] = 0x6ffffff0" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffff0")) (; ";")) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x30) = piVar1 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar1 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "piVar1 + 4" (identifier "piVar1") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (if_statement "if ((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0))" (( "(") (binary_expression "(param_2[1] != *param_2) &&\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" (parenthesized_expression "(param_2[1] != *param_2)" (( "(") (binary_expression "param_2[1] != *param_2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (!= "!=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".gnu.version_d"" (" """) (string_content ".gnu.version_d") (" """)) (, ",") (number_literal "0x6ffffffd") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);\n    puVar3 = (undefined4 *)FUN_001e5200(0x34);\n    puVar3[1] = 0;\n    puVar3[2] = 0;\n    puVar3[8] = 0;\n    puVar3[9] = 4;\n    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;\n    puVar3[10] = 0;\n    puVar3[3] = local_40;\n    *puVar3 = &PTR_FUN_00383c70;\n    puVar3[4] = 0;\n    puVar3[0xb] = local_44;\n    puVar3[5] = 0xffffffff;\n    puVar3[6] = 0xffffffff;\n    puVar3[0xc] = "** version defs";\n    FUN_000f2600(iVar2,puVar3);\n    if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = *(int *)(iVar2 + 0x44);\n    if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;\n    *(int *)(iVar2 + 0x4c) = local_3c;\n    if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }\n  }" ({ "{") (expression_statement "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);" (call_expression "FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" (identifier "FUN_001a5d90") (argument_list "(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c)" (( "(") (identifier "param_2") (, ",") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = local_40;" (assignment_expression "puVar3[3] = local_40" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb] = local_44;" (assignment_expression "puVar3[0xb] = local_44" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[0xc] = "** version defs";" (assignment_expression "puVar3[0xc] = "** version defs"" (subscript_expression "puVar3[0xc]" (identifier "puVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** version defs"" (" """) (string_content "** version defs") (" """))) (; ";")) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" (identifier "FUN_000f2600") (argument_list "(iVar2,puVar3)" (( "(") (identifier "iVar2") (, ",") (identifier "puVar3") () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))\n    goto LAB_000ad053;" (if "if") (parenthesized_expression "((*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x40) != 0) ||\n       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) != 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)))" (( "(") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000ad053;" (goto "goto") (statement_identifier "LAB_000ad053") (; ";"))) (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" (* "*") (cast_expression "(int *)(iVar2 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3c)" (( "(") (binary_expression "iVar2 + 0x3c" (identifier "iVar2") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar6 = *(int *)(iVar2 + 0x44);" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x44)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;" (if "if") (parenthesized_expression "((*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x44) != 0) ||\n       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" (parenthesized_expression "(*(int *)(iVar2 + 0x44) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x44) != 0" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))" (( "(") (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))))" (( "(") (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar2 + 0x48)" (* "*") (cast_expression "(int *)(iVar2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")"))))) (, ",") (binary_expression "*(int *)(iVar2 + 0x48) != 0 ||\n        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (binary_expression "*(int *)(iVar2 + 0x48) != 0" (pointer_expression "*(int *)(iVar2 + 0x48)" (* "*") (cast_expression "(int *)(iVar2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))" (( "(") (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6))" (( "(") (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")"))))) (, ",") (binary_expression "iVar6 != 0 && (local_3c != iVar6)" (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(local_3c != iVar6)" (( "(") (binary_expression "local_3c != iVar6" (identifier "local_3c") (!= "!=") (identifier "iVar6")) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_000acf96;" (goto "goto") (statement_identifier "LAB_000acf96") (; ";"))) (expression_statement "*(int *)(iVar2 + 0x4c) = local_3c;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_3c" (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (iVar7 != 0) {\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_24 = 0x6ffffffc;\n      piVar1 = *(int **)(iVar7 + 0x30);\n      local_20 = 0;\n      local_54 = *(int **)(iVar7 + 0x34);\n      local_28 = 0;\n      if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }\n      local_24 = 0x6ffffffd;\n      local_20 = 0xffffffff;\n      local_2c = local_3c;\n      if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }\n    }" ({ "{") (expression_statement "local_24 = 0x6ffffffc;" (assignment_expression "local_24 = 0x6ffffffc" (identifier "local_24") (= "=") (number_literal "0x6ffffffc")) (; ";")) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" (identifier "local_54") (= "=") (pointer_expression "*(int **)(iVar7 + 0x34)" (* "*") (cast_expression "(int **)(iVar7 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar1 == local_54) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" (if "if") (parenthesized_expression "(piVar1 == local_54)" (( "(") (binary_expression "piVar1 == local_54" (identifier "piVar1") (== "==") (identifier "local_54")) () ")")) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);\n        local_54 = *(int **)(iVar7 + 0x34);\n        piVar4 = *(int **)(iVar7 + 0x30);\n      }" ({ "{") (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" (identifier "local_2c") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar7 + 0x2c,local_54,&local_2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) (, ",") (identifier "local_54") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "local_54 = *(int **)(iVar7 + 0x34);" (assignment_expression "local_54 = *(int **)(iVar7 + 0x34)" (identifier "local_54") (= "=") (pointer_expression "*(int **)(iVar7 + 0x34)" (* "*") (cast_expression "(int **)(iVar7 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x30)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" (else "else") (compound_statement "{\n        *piVar1 = iVar2;\n        piVar4 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffc;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar4;\n      }" ({ "{") (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar4 = piVar1 + 4;" (assignment_expression "piVar4 = piVar1 + 4" (identifier "piVar4") (= "=") (binary_expression "piVar1 + 4" (identifier "piVar1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[2] = 0x6ffffffc;" (assignment_expression "piVar1[2] = 0x6ffffffc" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffffc")) (; ";")) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4" (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (} "}")))) (expression_statement "local_24 = 0x6ffffffd;" (assignment_expression "local_24 = 0x6ffffffd" (identifier "local_24") (= "=") (number_literal "0x6ffffffd")) (; ";")) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" (identifier "local_20") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_2c = local_3c;" (assignment_expression "local_2c = local_3c" (identifier "local_2c") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (piVar4 == local_54) {\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }\n      else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" (if "if") (parenthesized_expression "(piVar4 == local_54)" (( "(") (binary_expression "piVar4 == local_54" (identifier "piVar4") (== "==") (identifier "local_54")) () ")")) (compound_statement "{\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n      }" ({ "{") (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar4") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" (else "else") (compound_statement "{\n        *piVar4 = local_3c;\n        piVar4[1] = local_28;\n        piVar4[2] = 0x6ffffffd;\n        piVar4[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar4 + 4;\n      }" ({ "{") (expression_statement "*piVar4 = local_3c;" (assignment_expression "*piVar4 = local_3c" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "piVar4[1] = local_28;" (assignment_expression "piVar4[1] = local_28" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "piVar4[2] = 0x6ffffffd;" (assignment_expression "piVar4[2] = 0x6ffffffd" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffffd")) (; ";")) (expression_statement "piVar4[3] = -1;" (assignment_expression "piVar4[3] = -1" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x30) = piVar4 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar4 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "piVar4 + 4" (identifier "piVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if ((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {\n    return;\n  }" (if "if") (parenthesized_expression "((param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0))" (( "(") (binary_expression "(param_2[4] == param_2[3]) ||\n     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" (parenthesized_expression "(param_2[4] == param_2[3])" (( "(") (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (== "==") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)" (( "(") (comma_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0" (assignment_expression "iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" (identifier "FUN_0009fff0") (argument_list "(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (string_literal "".gnu.version_r"" (" """) (string_content ".gnu.version_r") (" """)) (, ",") (number_literal "0x6ffffffe") (, ",") (number_literal "2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);" (call_expression "FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" (identifier "FUN_001a68c0") (argument_list "(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30)" (( "(") (identifier "param_2") (, ",") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)FUN_001e5200(0x34);" (assignment_expression "puVar3 = (undefined4 *)FUN_001e5200(0x34)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001e5200(0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(0x34)" (identifier "FUN_001e5200") (argument_list "(0x34)" (( "(") (number_literal "0x34") () ")"))))) (; ";")) (expression_statement "puVar3[1] = 0;" (assignment_expression "puVar3[1] = 0" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[2] = 0;" (assignment_expression "puVar3[2] = 0" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[8] = 0;" (assignment_expression "puVar3[8] = 0" (subscript_expression "puVar3[8]" (identifier "puVar3") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[9] = 4;" (assignment_expression "puVar3[9] = 4" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;" (assignment_expression "*(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar3 + 7) & 0xe0 | 10" (binary_expression "*(byte *)(puVar3 + 7) & 0xe0" (pointer_expression "*(byte *)(puVar3 + 7)" (* "*") (cast_expression "(byte *)(puVar3 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 7)" (( "(") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0xe0")) (| "|") (number_literal "10"))) (; ";")) (expression_statement "puVar3[10] = 0;" (assignment_expression "puVar3[10] = 0" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[3] = local_34;" (assignment_expression "puVar3[3] = local_34" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*puVar3 = &PTR_FUN_00383c70;" (assignment_expression "*puVar3 = &PTR_FUN_00383c70" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "&PTR_FUN_00383c70" (& "&") (identifier "PTR_FUN_00383c70"))) (; ";")) (expression_statement "puVar3[4] = 0;" (assignment_expression "puVar3[4] = 0" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[0xb] = local_38;" (assignment_expression "puVar3[0xb] = local_38" (subscript_expression "puVar3[0xb]" (identifier "puVar3") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar3[5] = 0xffffffff;" (assignment_expression "puVar3[5] = 0xffffffff" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[6] = 0xffffffff;" (assignment_expression "puVar3[6] = 0xffffffff" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar3[0xc] = "** version refs";" (assignment_expression "puVar3[0xc] = "** version refs"" (subscript_expression "puVar3[0xc]" (identifier "puVar3") ([ "[") (number_literal "0xc") (] "]")) (= "=") (string_literal ""** version refs"" (" """) (string_content "** version refs") (" """))) (; ";")) (expression_statement "FUN_000f2600(iVar2,puVar3);" (call_expression "FUN_000f2600(iVar2,puVar3)" (identifier "FUN_000f2600") (argument_list "(iVar2,puVar3)" (( "(") (identifier "iVar2") (, ",") (identifier "puVar3") () ")"))) (; ";")) (if_statement "if ((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" (if "if") (parenthesized_expression "((*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x40) == 0) &&\n     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" (parenthesized_expression "(*(int *)(iVar2 + 0x40) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x40) == 0" (pointer_expression "*(int *)(iVar2 + 0x40)" (* "*") (cast_expression "(int *)(iVar2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))" (( "(") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0))" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)" (binary_expression "(*(byte *)(iVar2 + 0x90) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 4" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar2 + 0x90) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar2 + 0x90) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar2 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar2 + 0x90) & 8" (pointer_expression "*(byte *)(iVar2 + 0x90)" (* "*") (cast_expression "(byte *)(iVar2 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    *(int *)(iVar2 + 0x3c) = param_6;\n    iVar6 = param_6;\n    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }\nLAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);\n  }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x3c) = param_6;" (assignment_expression "*(int *)(iVar2 + 0x3c) = param_6" (pointer_expression "*(int *)(iVar2 + 0x3c)" (* "*") (cast_expression "(int *)(iVar2 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3c)" (( "(") (binary_expression "iVar2 + 0x3c" (identifier "iVar2") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar6 = param_6;" (assignment_expression "iVar6 = param_6" (identifier "iVar6") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" (if "if") (parenthesized_expression "(((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))))" (( "(") (binary_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&\n       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" (parenthesized_expression "((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0))" (( "(") (binary_expression "(*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" (parenthesized_expression "(*(int *)(iVar2 + 0x44) == 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x44) == 0" (pointer_expression "*(int *)(iVar2 + 0x44)" (* "*") (cast_expression "(int *)(iVar2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)" (( "(") (comma_expression "iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x48)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar2 + 0x48)" (* "*") (cast_expression "(int *)(iVar2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")"))))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))" (( "(") (parenthesized_expression "(iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0))" (( "(") (comma_expression "iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)" (assignment_expression "iVar6 = *(int *)(iVar2 + 0x4c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")"))))) (, ",") (binary_expression "local_30 == iVar6 || (iVar6 == 0)" (binary_expression "local_30 == iVar6" (identifier "local_30") (== "==") (identifier "iVar6")) (|| "||") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar2 + 0x4c) = local_30;\n      if (iVar7 == 0) {\n        return;\n      }\n      piVar1 = *(int **)(iVar7 + 0x30);\n      piVar4 = *(int **)(iVar7 + 0x34);\n      local_24 = 0x6ffffffe;\n      local_20 = 0;\n      local_28 = 0;\n      if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }\n      local_24 = 0x6fffffff;\n      local_20 = 0xffffffff;\n      if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }\n      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);\n      return;\n    }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x4c) = local_30;" (assignment_expression "*(int *)(iVar2 + 0x4c) = local_30" (pointer_expression "*(int *)(iVar2 + 0x4c)" (* "*") (cast_expression "(int *)(iVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (if_statement "if (iVar7 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar1 = *(int **)(iVar7 + 0x30)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar7 + 0x34)" (* "*") (cast_expression "(int **)(iVar7 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_24 = 0x6ffffffe;" (assignment_expression "local_24 = 0x6ffffffe" (identifier "local_24") (= "=") (number_literal "0x6ffffffe")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar1 == piVar4) {\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }\n      else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" (if "if") (parenthesized_expression "(piVar1 == piVar4)" (( "(") (binary_expression "piVar1 == piVar4" (identifier "piVar1") (== "==") (identifier "piVar4")) () ")")) (compound_statement "{\n        local_2c = iVar2;\n        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);\n        piVar5 = *(int **)(iVar7 + 0x30);\n        piVar4 = *(int **)(iVar7 + 0x34);\n      }" ({ "{") (expression_statement "local_2c = iVar2;" (assignment_expression "local_2c = iVar2" (identifier "local_2c") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar7 + 0x2c,piVar4,&local_2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar4") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (expression_statement "piVar5 = *(int **)(iVar7 + 0x30);" (assignment_expression "piVar5 = *(int **)(iVar7 + 0x30)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar4 = *(int **)(iVar7 + 0x34);" (assignment_expression "piVar4 = *(int **)(iVar7 + 0x34)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(iVar7 + 0x34)" (* "*") (cast_expression "(int **)(iVar7 + 0x34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" (else "else") (compound_statement "{\n        *piVar1 = iVar2;\n        piVar5 = piVar1 + 4;\n        piVar1[1] = 0;\n        piVar1[2] = 0x6ffffffe;\n        piVar1[3] = 0;\n        *(int **)(iVar7 + 0x30) = piVar5;\n      }" ({ "{") (expression_statement "*piVar1 = iVar2;" (assignment_expression "*piVar1 = iVar2" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "piVar5 = piVar1 + 4;" (assignment_expression "piVar5 = piVar1 + 4" (identifier "piVar5") (= "=") (binary_expression "piVar1 + 4" (identifier "piVar1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar1[2] = 0x6ffffffe;" (assignment_expression "piVar1[2] = 0x6ffffffe" (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6ffffffe")) (; ";")) (expression_statement "piVar1[3] = 0;" (assignment_expression "piVar1[3] = 0" (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5" (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "piVar5")) (; ";")) (} "}")))) (expression_statement "local_24 = 0x6fffffff;" (assignment_expression "local_24 = 0x6fffffff" (identifier "local_24") (= "=") (number_literal "0x6fffffff")) (; ";")) (expression_statement "local_20 = 0xffffffff;" (assignment_expression "local_20 = 0xffffffff" (identifier "local_20") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (piVar5 != piVar4) {\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" (if "if") (parenthesized_expression "(piVar5 != piVar4)" (( "(") (binary_expression "piVar5 != piVar4" (identifier "piVar5") (!= "!=") (identifier "piVar4")) () ")")) (compound_statement "{\n        *piVar5 = local_30;\n        piVar5[1] = local_28;\n        piVar5[2] = 0x6fffffff;\n        piVar5[3] = -1;\n        *(int **)(iVar7 + 0x30) = piVar5 + 4;\n        return;\n      }" ({ "{") (expression_statement "*piVar5 = local_30;" (assignment_expression "*piVar5 = local_30" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "piVar5[1] = local_28;" (assignment_expression "piVar5[1] = local_28" (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "piVar5[2] = 0x6fffffff;" (assignment_expression "piVar5[2] = 0x6fffffff" (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x6fffffff")) (; ";")) (expression_statement "piVar5[3] = -1;" (assignment_expression "piVar5[3] = -1" (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x30) = piVar5 + 4;" (assignment_expression "*(int **)(iVar7 + 0x30) = piVar5 + 4" (pointer_expression "*(int **)(iVar7 + 0x30)" (* "*") (cast_expression "(int **)(iVar7 + 0x30)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "piVar5 + 4" (identifier "piVar5") (+ "+") (number_literal "4"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);" (call_expression "FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c)" (identifier "FUN_000a5aa0") (argument_list "(iVar7 + 0x2c,piVar5,&local_2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) (, ",") (identifier "piVar5") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000acf96:\n                    \n    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" (statement_identifier "LAB_000acf96") (: ":") (expression_statement "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);" (call_expression "FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6)" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xd5e,"set_info",iVar6)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd5e") (, ",") (string_literal ""set_info"" (" """) (string_content "set_info") (" """)) (, ",") (identifier "iVar6") () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_000ad053:\n                    \n  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (statement_identifier "LAB_000ad053") (: ":") (expression_statement "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");" (call_expression "FUN_00069d00("../../gold/output.h",0xd07,"set_link_section")" (identifier "FUN_00069d00") (argument_list "("../../gold/output.h",0xd07,"set_link_section")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xd07") (, ",") (string_literal ""set_link_section"" (" """) (string_content "set_link_section") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: sized_create_version_sections<64, true>
   DWARF original prototype: void sized_create_version_sections<64,_true>(Layout * this, Versions *
   versions, Symbol_table * symtab, uint local_symcount,
   vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> * dynamic_symbols, Output_section * dynstr)
    */

void __thiscall
var_11::Layout::sized_create_version_sections<64,var_4>
          (Layout *this,Versions *versions,Symbol_table *symtab,type_7 local_symcount,
          vector<var_11::type_13*,var_12::allocator<var_11::type_13*>var_10> *dynamic_symbols,
          type_2 *dynstr)

{
  byte var_6;
  type_1 *var_15;
  type_2 *var_2;
  type_3 *pOVar4;
  type_4 iVar5;
  type_4 __position;
  type_5 *var_9;
  type_1 *var_16;
  type_6 *vbuf;
  type_6 *vdbuf;
  type_7 vdsize;
  type_7 var_14;
  type_6 *vnbuf;
  type_7 vnsize;
  type_7 var_18;
  type_7 vsize;
  type_8 *local_28;
  type_9 local_24;
  type_7 local_20;
  type_10 uStack_14;
  
  uStack_14 = 0xaca49;
  var_2 = var_1
                     (this,(type_11 *)0x0,".gnu.version",0x6fffffff,2,false,ORDER_DYNAMIC_LINKER,
                      false,false,false);
  if (var_2 == (type_2 *)0x0) {
    var_9 = this->dynamic_data_;
  }
  else {
    Versions::var_3<64,var_4>
              (versions,symtab,&this->dynpool_,local_symcount,dynamic_symbols,&vbuf,&vsize);
    pOVar4 = (type_3 *)var_5(0x34);
    var_6 = (pOVar4->super_Output_data).field_0x1c;
    *(type_10 *)&(pOVar4->super_Output_data).address_ = 0;
    *(type_10 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
    pOVar4->output_section_ = (type_2 *)0x0;
    *(type_10 *)&pOVar4->addralign_ = 2;
    (pOVar4->super_Output_data).field_0x1c = var_6 & 0xe0 | 10;
    *(type_10 *)((int)&pOVar4->addralign_ + 4) = 0;
    *(type_7 *)&(pOVar4->super_Output_data).data_size_ = vsize;
    (pOVar4->super_Output_data)._vptr_Output_data =
         (type_12 **)&PTR__Output_data_const_buffer_00383c70;
    *(type_10 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
    pOVar4[1].super_Output_data._vptr_Output_data = (type_12 **)vbuf;
    *(type_10 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
    *(type_10 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar4[1].super_Output_data.address_ = "** versions";
    Output_section::var_7(var_2,pOVar4);
    Output_section::var_8(var_2,2);
    if (((var_2->link_ != 0) || ((var_2->field_0x90 & 4) != 0)) || ((var_2->field_0x90 & 8) != 0)
       ) goto LAB_000ad053;
    var_2->link_section_ = &this->dynsym_section_->super_Output_data;
    var_9 = this->dynamic_data_;
    if (var_9 != (type_5 *)0x0) {
      local_24 = DT_VERSYM;
      iVar5._M_current =
           (var_9->entries_).
           super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
           ._M_impl._M_finish;
      local_20 = 0;
      local_28 = (type_8 *)0x0;
      vsize = (type_7)var_2;
      if (iVar5._M_current ==
          (var_9->entries_).
          super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::type_5::type_1>var_10>
          ._M_impl._M_end_of_storage) {
        std::
        vector<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::type_1&>
                  (&var_9->entries_,iVar5,(type_1 *)&vsize);
      }
      else {
        ((iVar5._M_current)->u_).od = &var_2->super_Output_data;
        (iVar5._M_current)->od2 = (type_8 *)0x0;
        (iVar5._M_current)->tag_ = DT_VERSYM;
        (iVar5._M_current)->offset_ = 0;
        (var_9->entries_).
        super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ._M_impl._M_finish = iVar5._M_current + 1;
      }
    }
  }
  if (((versions->defs_).super__Vector_base<var_11::Verdef*,var_12::allocator<var_11::Verdef*>var_10>._M_impl.
       _M_finish !=
       (versions->defs_).super__Vector_base<var_11::Verdef*,var_12::allocator<var_11::Verdef*>var_10>._M_impl.
       _M_start) &&
     (var_2 = var_1
                         (this,(type_11 *)0x0,".gnu.version_d",0x6ffffffd,2,false,
                          ORDER_DYNAMIC_LINKER,false,false,false), var_2 != (type_2 *)0x0))
  {
    Versions::var_13<64,var_4>(versions,&this->dynpool_,&vdbuf,&vdsize,&var_14);
    pOVar4 = (type_3 *)var_5(0x34);
    var_6 = (pOVar4->super_Output_data).field_0x1c;
    *(type_10 *)&(pOVar4->super_Output_data).address_ = 0;
    *(type_10 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
    pOVar4->output_section_ = (type_2 *)0x0;
    *(type_10 *)&pOVar4->addralign_ = 4;
    (pOVar4->super_Output_data).field_0x1c = var_6 & 0xe0 | 10;
    *(type_10 *)((int)&pOVar4->addralign_ + 4) = 0;
    *(type_7 *)&(pOVar4->super_Output_data).data_size_ = vdsize;
    (pOVar4->super_Output_data)._vptr_Output_data =
         (type_12 **)&PTR__Output_data_const_buffer_00383c70;
    *(type_10 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
    pOVar4[1].super_Output_data._vptr_Output_data = (type_12 **)vdbuf;
    *(type_10 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
    *(type_10 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
    *(char **)&pOVar4[1].super_Output_data.address_ = "** version defs";
    Output_section::var_7(var_2,pOVar4);
    if ((var_2->link_ != 0) || (((var_2->field_0x90 & 4) != 0 || ((var_2->field_0x90 & 8) != 0)))
       ) goto LAB_000ad053;
    var_2->link_section_ = &dynstr->super_Output_data;
    if ((var_2->info_section_ != (type_2 *)0x0) ||
       ((var_2->info_symndx_ != (type_13 *)0x0 ||
        ((var_2->info_ != 0 && (var_14 != var_2->info_)))))) goto LAB_000acf96;
    var_2->info_ = var_14;
    if (var_9 != (type_5 *)0x0) {
      local_24 = DT_VERDEF;
      var_15 = (var_9->entries_).
               super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
               ._M_impl._M_finish;
      local_20 = 0;
      var_16 = (var_9->entries_).
                 super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
                 ._M_impl._M_end_of_storage;
      local_28 = (type_8 *)0x0;
      if (var_15 == var_16) {
        vsize = (type_7)var_2;
        std::
        vector<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::type_1&>
                  (&var_9->entries_,(type_4)var_16,(type_1 *)&vsize);
        var_16 = (var_9->entries_).
                   super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
                   ._M_impl._M_end_of_storage;
        iVar5._M_current =
             (var_9->entries_).
             super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
             ._M_impl._M_finish;
      }
      else {
        (var_15->u_).od = &var_2->super_Output_data;
        iVar5._M_current = var_15 + 1;
        var_15->od2 = (type_8 *)0x0;
        var_15->tag_ = DT_VERDEF;
        var_15->offset_ = 0;
        (var_9->entries_).
        super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ._M_impl._M_finish = iVar5._M_current;
      }
      local_24 = DT_VERDEFNUM;
      local_20 = 0xffffffff;
      vsize = var_14;
      if (iVar5._M_current == var_16) {
        std::
        vector<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::type_1&>
                  (&var_9->entries_,iVar5,(type_1 *)&vsize);
      }
      else {
        ((iVar5._M_current)->u_).val = var_14;
        (iVar5._M_current)->od2 = local_28;
        (iVar5._M_current)->tag_ = DT_VERDEFNUM;
        (iVar5._M_current)->offset_ = 0xffffffff;
        (var_9->entries_).
        super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ._M_impl._M_finish = iVar5._M_current + 1;
      }
    }
  }
  if (((versions->needs_).super__Vector_base<var_11::Verneed*,var_12::allocator<var_11::Verneed*>var_10>.
       _M_impl._M_finish ==
       (versions->needs_).super__Vector_base<var_11::Verneed*,var_12::allocator<var_11::Verneed*>var_10>.
       _M_impl._M_start) ||
     (var_2 = var_1
                         (this,(type_11 *)0x0,".gnu.version_r",0x6ffffffe,2,false,
                          ORDER_DYNAMIC_LINKER,false,false,false), var_2 == (type_2 *)0x0))
  {
    return;
  }
  Versions::var_17<64,var_4>(versions,&this->dynpool_,&vnbuf,&vnsize,&var_18);
  pOVar4 = (type_3 *)var_5(0x34);
  var_6 = (pOVar4->super_Output_data).field_0x1c;
  *(type_10 *)&(pOVar4->super_Output_data).address_ = 0;
  *(type_10 *)((int)&(pOVar4->super_Output_data).address_ + 4) = 0;
  pOVar4->output_section_ = (type_2 *)0x0;
  *(type_10 *)&pOVar4->addralign_ = 4;
  (pOVar4->super_Output_data).field_0x1c = var_6 & 0xe0 | 10;
  *(type_10 *)((int)&pOVar4->addralign_ + 4) = 0;
  *(type_7 *)&(pOVar4->super_Output_data).data_size_ = vnsize;
  (pOVar4->super_Output_data)._vptr_Output_data =
       (type_12 **)&PTR__Output_data_const_buffer_00383c70;
  *(type_10 *)((int)&(pOVar4->super_Output_data).data_size_ + 4) = 0;
  pOVar4[1].super_Output_data._vptr_Output_data = (type_12 **)vnbuf;
  *(type_10 *)&(pOVar4->super_Output_data).offset_ = 0xffffffff;
  *(type_10 *)((int)&(pOVar4->super_Output_data).offset_ + 4) = 0xffffffff;
  *(char **)&pOVar4[1].super_Output_data.address_ = "** version refs";
  Output_section::var_7(var_2,pOVar4);
  if ((var_2->link_ == 0) && (((var_2->field_0x90 & 4) == 0 && ((var_2->field_0x90 & 8) == 0))))
  {
    var_2->link_section_ = &dynstr->super_Output_data;
    if (((var_2->info_section_ == (type_2 *)0x0) && (var_2->info_symndx_ == (type_13 *)0x0)
        ) && ((var_18 == var_2->info_ || (var_2->info_ == 0)))) {
      var_2->info_ = var_18;
      if (var_9 == (type_5 *)0x0) {
        return;
      }
      var_15 = (var_9->entries_).
               super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
               ._M_impl._M_finish;
      iVar5._M_current =
           (var_9->entries_).
           super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
           ._M_impl._M_end_of_storage;
      local_24 = DT_VERNEED;
      local_20 = 0;
      local_28 = (type_8 *)0x0;
      if (var_15 == iVar5._M_current) {
        vsize = (type_7)var_2;
        std::
        vector<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ::_M_realloc_insert<const_gold::Output_data_dynamic::type_1&>
                  (&var_9->entries_,iVar5,(type_1 *)&vsize);
        __position._M_current =
             (var_9->entries_).
             super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
             ._M_impl._M_finish;
        iVar5._M_current =
             (var_9->entries_).
             super__Vector_base<var_11::type_5::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
             ._M_impl._M_end_of_storage;
      }
      else {
        (var_15->u_).od = &var_2->super_Output_data;
        __position._M_current = var_15 + 1;
        var_15->od2 = (type_8 *)0x0;
        var_15->tag_ = DT_VERNEED;
        var_15->offset_ = 0;
        (var_9->entries_).
        super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ._M_impl._M_finish = __position._M_current;
      }
      local_24 = DT_VERNEEDNUM;
      local_20 = 0xffffffff;
      if (__position._M_current != iVar5._M_current) {
        ((__position._M_current)->u_).val = var_18;
        (__position._M_current)->od2 = local_28;
        (__position._M_current)->tag_ = DT_VERNEEDNUM;
        (__position._M_current)->offset_ = 0xffffffff;
        (var_9->entries_).
        super__Vector_base<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
        ._M_impl._M_finish = __position._M_current + 1;
        return;
      }
      std::
      vector<var_11::Output_data_dynamic::type_1,var_12::allocator<var_11::Output_data_dynamic::type_1>var_10>
      ::_M_realloc_insert<const_gold::Output_data_dynamic::type_1&>
                (&var_9->entries_,__position,(type_1 *)&vsize);
      return;
    }
LAB_000acf96:
                    /* WARNING: Subroutine does not return */
    var_19("../../gold/output.h",0xd5e,"set_info");
  }
LAB_000ad053:
                    /* WARNING: Subroutine does not return */
  var_19("../../gold/output.h",0xd07,"set_link_section");
}


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

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

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

{
  int *piVar1;
  int iVar2;
  undefined4 *puVar3;
  int *piVar4;
  int *piVar5;
  int iVar6;
  int iVar7;
  int *local_54;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  undefined4 local_38;
  undefined4 local_34;
  int local_30;
  int local_2c;
  int local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xaca49;
  iVar2 = FUN_0009fff0(param_1,0,".gnu.version",0x6fffffff,2,0,0,3,0,0,0);
  if (iVar2 == 0) {
    iVar7 = *(int *)(param_1 + 0x18c);
  }
  else {
    FUN_001b0290(param_2,param_3,param_1 + 0xa0,param_4,param_5,&local_48,&local_2c);
    puVar3 = (undefined4 *)FUN_001e5200(0x34);
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[8] = 0;
    puVar3[9] = 2;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
    puVar3[10] = 0;
    puVar3[3] = local_2c;
    *puVar3 = &PTR_FUN_00383c70;
    puVar3[4] = 0;
    puVar3[0xb] = local_48;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    puVar3[0xc] = "** versions";
    FUN_000f2600(iVar2,puVar3);
    FUN_000ee490(iVar2,2,0);
    if (((*(int *)(iVar2 + 0x40) != 0) || ((*(byte *)(iVar2 + 0x90) & 4) != 0)) ||
       ((*(byte *)(iVar2 + 0x90) & 8) != 0)) goto LAB_000ad053;
    *(undefined4 *)(iVar2 + 0x3c) = *(undefined4 *)(param_1 + 0x17c);
    iVar7 = *(int *)(param_1 + 0x18c);
    if (iVar7 != 0) {
      local_24 = 0x6ffffff0;
      piVar1 = *(int **)(iVar7 + 0x30);
      local_20 = 0;
      local_28 = 0;
      local_2c = iVar2;
      if (piVar1 == *(int **)(iVar7 + 0x34)) {
        FUN_000a5aa0(iVar7 + 0x2c,piVar1,&local_2c);
      }
      else {
        *piVar1 = iVar2;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffff0;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar1 + 4;
      }
    }
  }
  if ((param_2[1] != *param_2) &&
     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_d",0x6ffffffd,2,0,0,3,0,0,0), iVar2 != 0)) {
    FUN_001a5d90(param_2,param_1 + 0xa0,&local_44,&local_40,&local_3c);
    puVar3 = (undefined4 *)FUN_001e5200(0x34);
    puVar3[1] = 0;
    puVar3[2] = 0;
    puVar3[8] = 0;
    puVar3[9] = 4;
    *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
    puVar3[10] = 0;
    puVar3[3] = local_40;
    *puVar3 = &PTR_FUN_00383c70;
    puVar3[4] = 0;
    puVar3[0xb] = local_44;
    puVar3[5] = 0xffffffff;
    puVar3[6] = 0xffffffff;
    puVar3[0xc] = "** version defs";
    FUN_000f2600(iVar2,puVar3);
    if ((*(int *)(iVar2 + 0x40) != 0) ||
       (((*(byte *)(iVar2 + 0x90) & 4) != 0 || ((*(byte *)(iVar2 + 0x90) & 8) != 0))))
    goto LAB_000ad053;
    *(int *)(iVar2 + 0x3c) = param_6;
    iVar6 = *(int *)(iVar2 + 0x44);
    if ((*(int *)(iVar2 + 0x44) != 0) ||
       ((iVar6 = *(int *)(iVar2 + 0x48), *(int *)(iVar2 + 0x48) != 0 ||
        ((iVar6 = *(int *)(iVar2 + 0x4c), iVar6 != 0 && (local_3c != iVar6)))))) goto LAB_000acf96;
    *(int *)(iVar2 + 0x4c) = local_3c;
    if (iVar7 != 0) {
      local_24 = 0x6ffffffc;
      piVar1 = *(int **)(iVar7 + 0x30);
      local_20 = 0;
      local_54 = *(int **)(iVar7 + 0x34);
      local_28 = 0;
      if (piVar1 == local_54) {
        local_2c = iVar2;
        FUN_000a5aa0(iVar7 + 0x2c,local_54,&local_2c);
        local_54 = *(int **)(iVar7 + 0x34);
        piVar4 = *(int **)(iVar7 + 0x30);
      }
      else {
        *piVar1 = iVar2;
        piVar4 = piVar1 + 4;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffffc;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar4;
      }
      local_24 = 0x6ffffffd;
      local_20 = 0xffffffff;
      local_2c = local_3c;
      if (piVar4 == local_54) {
        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);
      }
      else {
        *piVar4 = local_3c;
        piVar4[1] = local_28;
        piVar4[2] = 0x6ffffffd;
        piVar4[3] = -1;
        *(int **)(iVar7 + 0x30) = piVar4 + 4;
      }
    }
  }
  if ((param_2[4] == param_2[3]) ||
     (iVar2 = FUN_0009fff0(param_1,0,".gnu.version_r",0x6ffffffe,2,0,0,3,0,0,0), iVar2 == 0)) {
    return;
  }
  FUN_001a68c0(param_2,param_1 + 0xa0,&local_38,&local_34,&local_30);
  puVar3 = (undefined4 *)FUN_001e5200(0x34);
  puVar3[1] = 0;
  puVar3[2] = 0;
  puVar3[8] = 0;
  puVar3[9] = 4;
  *(byte *)(puVar3 + 7) = *(byte *)(puVar3 + 7) & 0xe0 | 10;
  puVar3[10] = 0;
  puVar3[3] = local_34;
  *puVar3 = &PTR_FUN_00383c70;
  puVar3[4] = 0;
  puVar3[0xb] = local_38;
  puVar3[5] = 0xffffffff;
  puVar3[6] = 0xffffffff;
  puVar3[0xc] = "** version refs";
  FUN_000f2600(iVar2,puVar3);
  if ((*(int *)(iVar2 + 0x40) == 0) &&
     (((*(byte *)(iVar2 + 0x90) & 4) == 0 && ((*(byte *)(iVar2 + 0x90) & 8) == 0)))) {
    *(int *)(iVar2 + 0x3c) = param_6;
    iVar6 = param_6;
    if (((*(int *)(iVar2 + 0x44) == 0) && (iVar6 = *(int *)(iVar2 + 0x48), iVar6 == 0)) &&
       ((iVar6 = *(int *)(iVar2 + 0x4c), local_30 == iVar6 || (iVar6 == 0)))) {
      *(int *)(iVar2 + 0x4c) = local_30;
      if (iVar7 == 0) {
        return;
      }
      piVar1 = *(int **)(iVar7 + 0x30);
      piVar4 = *(int **)(iVar7 + 0x34);
      local_24 = 0x6ffffffe;
      local_20 = 0;
      local_28 = 0;
      if (piVar1 == piVar4) {
        local_2c = iVar2;
        FUN_000a5aa0(iVar7 + 0x2c,piVar4,&local_2c);
        piVar5 = *(int **)(iVar7 + 0x30);
        piVar4 = *(int **)(iVar7 + 0x34);
      }
      else {
        *piVar1 = iVar2;
        piVar5 = piVar1 + 4;
        piVar1[1] = 0;
        piVar1[2] = 0x6ffffffe;
        piVar1[3] = 0;
        *(int **)(iVar7 + 0x30) = piVar5;
      }
      local_24 = 0x6fffffff;
      local_20 = 0xffffffff;
      if (piVar5 != piVar4) {
        *piVar5 = local_30;
        piVar5[1] = local_28;
        piVar5[2] = 0x6fffffff;
        piVar5[3] = -1;
        *(int **)(iVar7 + 0x30) = piVar5 + 4;
        return;
      }
      FUN_000a5aa0(iVar7 + 0x2c,piVar5,&local_2c);
      return;
    }
LAB_000acf96:
                    /* WARNING: Subroutine does not return */
    FUN_00069d00("../../gold/output.h",0xd5e,"set_info",iVar6);
  }
LAB_000ad053:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/output.h",0xd07,"set_link_section");
}

