
/* DWARF original prototype: uint finalize(Verneed * this, uint index) */

uint __thiscall gold::Verneed::finalize(Verneed *this,uint index)

{
  int *piVar1;
  undefined4 *puVar2;
  pointer ppVVar3;
  int *piVar4;
  Verneed_version *pVVar5;
  int iVar6;
  int *piVar7;
  undefined4 uVar8;
  int __in_chrg;
  pointer ppVVar9;
  undefined *puVar10;
  uint uVar11;
  int *piVar12;
  undefined4 *puVar13;
  Verneed *this_00;
  code *pcVar14;
  code *pcVar15;
  
  ppVVar3 = (this->need_versions_).
            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.
            _M_impl._M_start;
  ppVVar9 = (this->need_versions_).
            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.
            _M_impl._M_finish;
  if (ppVVar3 == ppVVar9) {
    return index;
  }
  pVVar5 = *ppVVar3;
  uVar11 = (pVVar5->super_Version_base).index_;
  pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;
  while (PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff) {
    ppVVar3 = ppVVar3 + 1;
    (pVVar5->super_Version_base).index_ = index;
    index = index + 1;
    if (ppVVar3 == ppVVar9) {
      return index;
    }
    pVVar5 = *ppVVar3;
    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;
    uVar11 = (pVVar5->super_Version_base).index_;
  }
  uVar8 = 0x181;
  puVar10 = PTR_s__0043226c + 0x1abc;
  (*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181);
  if ((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0) {
                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);
    return uVar11;
  }
  iVar6 = *(int *)(pcVar14 + 0x1d2138);
  if ((*(uint *)(puVar10 + 0x28) & 0xe000) == 0) {
    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {
      return *(uint *)(puVar10 + 8);
    }
    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;
    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);
  }
  __in_chrg = 0xa1;
  pcVar15 = *(code **)(pcVar14 + 0x1d2148);
  piVar7 = (int *)(iVar6 + -0x5bdc);
  (*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8);
  piVar4 = (int *)piVar7[1];
  piVar12 = (int *)*piVar7;
  while (piVar12 != piVar4) {
    while( true ) {
      piVar1 = (int *)*piVar12;
      piVar12 = piVar12 + 1;
      if (piVar1 == (int *)0x0) break;
      (**(code **)(*piVar1 + 4))(piVar1);
      piVar4 = (int *)piVar7[1];
      if (piVar12 == piVar4) goto LAB_00260378;
    }
  }
LAB_00260378:
  puVar13 = (undefined4 *)piVar7[3];
  puVar2 = (undefined4 *)piVar7[4];
  if (puVar13 != puVar2) {
    do {
      this_00 = (Verneed *)*puVar13;
      puVar13 = puVar13 + 1;
      if (this_00 != (Verneed *)0x0) {
        ~Verneed(this_00,__in_chrg);
        __in_chrg = 0x10;
        (**(code **)(pcVar15 + 0x1d20b0))(this_00);
        puVar2 = (undefined4 *)piVar7[4];
      }
    } while (puVar2 != puVar13);
  }
  std::
  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                 *)(piVar7 + 6),__in_chrg);
  if (piVar7[3] != 0) {
    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();
  }
  if (*piVar7 == 0) {
    return (uint)puVar2;
  }
                    /* WARNING: Could not recover jumptable at 0x00260410. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))();
  return uVar11;
}



void FUN_002601f8(int param_1,int param_2)

{
  int *piVar1;
  int iVar2;
  int *piVar3;
  int iVar4;
  
  piVar1 = *(int **)(param_1 + 4);
  piVar3 = *(int **)(param_1 + 8);
  if (piVar1 != piVar3) {
    iVar2 = *piVar1;
    iVar4 = *(int *)(iVar2 + 4);
    while( true ) {
      if (iVar4 != -1) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);
        return;
      }
      piVar1 = piVar1 + 1;
      *(int *)(iVar2 + 4) = param_2;
      param_2 = param_2 + 1;
      if (piVar1 == piVar3) break;
      iVar2 = *piVar1;
      iVar4 = *(int *)(iVar2 + 4);
    }
  }
  return;
}


lui gp,0x1e
addiu gp,gp,-0x6028
addu gp,gp,t9
lw v1,0x4(a0)
lw a2,0x8(a0)
beq v1,a2,0x0026024c
_or v0,a1,zero
lw a0,0x0(v1)
li a1,-0x1
lw a3,0x4(a0)
bne a3,a1,0x00260254
_li a3,-0x1
b 0x00260240
_addiu v1,v1,0x4
lw a0,0x0(v1)
lw a1,0x4(a0)
bne a1,a3,0x00260254
_addiu v1,v1,0x4
sw v0,0x4(a0)
bne v1,a2,0x00260230
_addiu v0,v0,0x1
jr ra
_nop
lw a2,-0x7f64(gp)
addiu sp,sp,-0x20
lw a0,-0x7e1c(gp)
li a1,0x181
lw t9,-0x7e0c(gp)
addiu a2,a2,0x1abc
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,-0x4f94
(translation_unit "void FUN_002601f8(int param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002601f8(int param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002601f8(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "piVar1 = *(int **)(param_1 + 4);" (assignment_expression "piVar1 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" if (parenthesized_expression "(piVar1 != piVar3)" ( (binary_expression "piVar1 != piVar3" identifier != identifier) )) (compound_statement "{\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" { (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" { (if_statement "if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1abc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar2 + 4) = param_2;" (assignment_expression "*(int *)(iVar2 + 4) = param_2" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (piVar1 == piVar3) break;" if (parenthesized_expression "(piVar1 == piVar3)" ( (binary_expression "piVar1 == piVar3" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: uint finalize(Verneed * this, uint index) */\n\nuint __thiscall gold::Verneed::finalize(Verneed *this,uint index)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  pointer ppVVar3;\n  int *piVar4;\n  Verneed_version *pVVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int __in_chrg;\n  pointer ppVVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  Verneed *this_00;\n  code *pcVar14;\n  code *pcVar15;\n  \n  ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_start;\n  ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_finish;\n  if (ppVVar3 == ppVVar9) {\n    return index;\n  }\n  pVVar5 = *ppVVar3;\n  uVar11 = (pVVar5->super_Version_base).index_;\n  pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n  while (PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff) {\n    ppVVar3 = ppVVar3 + 1;\n    (pVVar5->super_Version_base).index_ = index;\n    index = index + 1;\n    if (ppVVar3 == ppVVar9) {\n      return index;\n    }\n    pVVar5 = *ppVVar3;\n    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n    uVar11 = (pVVar5->super_Version_base).index_;\n  }\n  uVar8 = 0x181;\n  puVar10 = PTR_s__0043226c + 0x1abc;\n  (*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181);\n  if ((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0) {\n                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);\n    return uVar11;\n  }\n  iVar6 = *(int *)(pcVar14 + 0x1d2138);\n  if ((*(uint *)(puVar10 + 0x28) & 0xe000) == 0) {\n    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }\n    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;\n    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);\n  }\n  __in_chrg = 0xa1;\n  pcVar15 = *(code **)(pcVar14 + 0x1d2148);\n  piVar7 = (int *)(iVar6 + -0x5bdc);\n  (*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8);\n  piVar4 = (int *)piVar7[1];\n  piVar12 = (int *)*piVar7;\n  while (piVar12 != piVar4) {\n    while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }\n  }\nLAB_00260378:\n  puVar13 = (undefined4 *)piVar7[3];\n  puVar2 = (undefined4 *)piVar7[4];\n  if (puVar13 != puVar2) {\n    do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);\n  }\n  std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg);\n  if (piVar7[3] != 0) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();\n  }\n  if (*piVar7 == 0) {\n    return (uint)puVar2;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00260410. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))();\n  return uVar11;\n}\n\n" comment (function_definition "uint __thiscall gold::Verneed::finalize(Verneed *this,uint index)\n\n{\n  int *piVar1;\n  undefined4 *puVar2;\n  pointer ppVVar3;\n  int *piVar4;\n  Verneed_version *pVVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int __in_chrg;\n  pointer ppVVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  Verneed *this_00;\n  code *pcVar14;\n  code *pcVar15;\n  \n  ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_start;\n  ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_finish;\n  if (ppVVar3 == ppVVar9) {\n    return index;\n  }\n  pVVar5 = *ppVVar3;\n  uVar11 = (pVVar5->super_Version_base).index_;\n  pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n  while (PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff) {\n    ppVVar3 = ppVVar3 + 1;\n    (pVVar5->super_Version_base).index_ = index;\n    index = index + 1;\n    if (ppVVar3 == ppVVar9) {\n      return index;\n    }\n    pVVar5 = *ppVVar3;\n    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n    uVar11 = (pVVar5->super_Version_base).index_;\n  }\n  uVar8 = 0x181;\n  puVar10 = PTR_s__0043226c + 0x1abc;\n  (*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181);\n  if ((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0) {\n                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);\n    return uVar11;\n  }\n  iVar6 = *(int *)(pcVar14 + 0x1d2138);\n  if ((*(uint *)(puVar10 + 0x28) & 0xe000) == 0) {\n    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }\n    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;\n    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);\n  }\n  __in_chrg = 0xa1;\n  pcVar15 = *(code **)(pcVar14 + 0x1d2148);\n  piVar7 = (int *)(iVar6 + -0x5bdc);\n  (*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8);\n  piVar4 = (int *)piVar7[1];\n  piVar12 = (int *)*piVar7;\n  while (piVar12 != piVar4) {\n    while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }\n  }\nLAB_00260378:\n  puVar13 = (undefined4 *)piVar7[3];\n  puVar2 = (undefined4 *)piVar7[4];\n  if (puVar13 != puVar2) {\n    do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);\n  }\n  std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg);\n  if (piVar7[3] != 0) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();\n  }\n  if (*piVar7 == 0) {\n    return (uint)puVar2;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00260410. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))();\n  return uVar11;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Verneed::" identifier : : identifier : :) (function_declarator "finalize(Verneed *this,uint index)" identifier (parameter_list "(Verneed *this,uint index)" ( (parameter_declaration "Verneed *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint index" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 *puVar2;\n  pointer ppVVar3;\n  int *piVar4;\n  Verneed_version *pVVar5;\n  int iVar6;\n  int *piVar7;\n  undefined4 uVar8;\n  int __in_chrg;\n  pointer ppVVar9;\n  undefined *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  Verneed *this_00;\n  code *pcVar14;\n  code *pcVar15;\n  \n  ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_start;\n  ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_finish;\n  if (ppVVar3 == ppVVar9) {\n    return index;\n  }\n  pVVar5 = *ppVVar3;\n  uVar11 = (pVVar5->super_Version_base).index_;\n  pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n  while (PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff) {\n    ppVVar3 = ppVVar3 + 1;\n    (pVVar5->super_Version_base).index_ = index;\n    index = index + 1;\n    if (ppVVar3 == ppVVar9) {\n      return index;\n    }\n    pVVar5 = *ppVVar3;\n    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n    uVar11 = (pVVar5->super_Version_base).index_;\n  }\n  uVar8 = 0x181;\n  puVar10 = PTR_s__0043226c + 0x1abc;\n  (*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181);\n  if ((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0) {\n                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);\n    return uVar11;\n  }\n  iVar6 = *(int *)(pcVar14 + 0x1d2138);\n  if ((*(uint *)(puVar10 + 0x28) & 0xe000) == 0) {\n    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }\n    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;\n    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);\n  }\n  __in_chrg = 0xa1;\n  pcVar15 = *(code **)(pcVar14 + 0x1d2148);\n  piVar7 = (int *)(iVar6 + -0x5bdc);\n  (*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8);\n  piVar4 = (int *)piVar7[1];\n  piVar12 = (int *)*piVar7;\n  while (piVar12 != piVar4) {\n    while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }\n  }\nLAB_00260378:\n  puVar13 = (undefined4 *)piVar7[3];\n  puVar2 = (undefined4 *)piVar7[4];\n  if (puVar13 != puVar2) {\n    do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);\n  }\n  std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg);\n  if (piVar7[3] != 0) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();\n  }\n  if (*piVar7 == 0) {\n    return (uint)puVar2;\n  }\n                    /* WARNING: Could not recover jumptable at 0x00260410. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))();\n  return uVar11;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "pointer ppVVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "Verneed_version *pVVar5;" type_identifier (pointer_declarator "*pVVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int __in_chrg;" primitive_type identifier ;) (declaration "pointer ppVVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "Verneed *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (expression_statement "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_start;" (field_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_start" (field_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl" (binary_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_" (binary_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold" (binary_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std" (assignment_expression "ppVVar3 = (this->need_versions_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->need_versions_).\n            super__Vector_base<gold" (field_expression "(this->need_versions_).\n            super__Vector_base" (parenthesized_expression "(this->need_versions_)" ( (field_expression "this->need_versions_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verneed_version" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed_version" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_finish;" (field_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl._M_finish" (field_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_>.\n            _M_impl" (binary_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold::Verneed_version*>_" (binary_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std::allocator<gold" (binary_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold::Verneed_version*,_std" (assignment_expression "ppVVar9 = (this->need_versions_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->need_versions_).\n            super__Vector_base<gold" (field_expression "(this->need_versions_).\n            super__Vector_base" (parenthesized_expression "(this->need_versions_)" ( (field_expression "this->need_versions_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verneed_version" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed_version" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar3 == ppVVar9) {\n    return index;\n  }" if (parenthesized_expression "(ppVVar3 == ppVVar9)" ( (binary_expression "ppVVar3 == ppVVar9" identifier == identifier) )) (compound_statement "{\n    return index;\n  }" { (return_statement "return index;" return identifier ;) })) (expression_statement "pVVar5 = *ppVVar3;" (assignment_expression "pVVar5 = *ppVVar3" identifier = (pointer_expression "*ppVVar3" * identifier)) ;) (expression_statement "uVar11 = (pVVar5->super_Version_base).index_;" (assignment_expression "uVar11 = (pVVar5->super_Version_base).index_" identifier = (field_expression "(pVVar5->super_Version_base).index_" (parenthesized_expression "(pVVar5->super_Version_base)" ( (field_expression "pVVar5->super_Version_base" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;" (assignment_expression "pcVar14 = (code *)PTR_do_gold_unreachable_004323c4" identifier = (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff) {\n    ppVVar3 = ppVVar3 + 1;\n    (pVVar5->super_Version_base).index_ = index;\n    index = index + 1;\n    if (ppVVar3 == ppVVar9) {\n      return index;\n    }\n    pVVar5 = *ppVVar3;\n    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n    uVar11 = (pVVar5->super_Version_base).index_;\n  }" while (parenthesized_expression "(PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff)" ( (comma_expression "PTR_do_gold_unreachable_004323c4 = pcVar14, uVar11 == 0xffffffff" (assignment_expression "PTR_do_gold_unreachable_004323c4 = pcVar14" identifier = identifier) , (binary_expression "uVar11 == 0xffffffff" identifier == number_literal)) )) (compound_statement "{\n    ppVVar3 = ppVVar3 + 1;\n    (pVVar5->super_Version_base).index_ = index;\n    index = index + 1;\n    if (ppVVar3 == ppVVar9) {\n      return index;\n    }\n    pVVar5 = *ppVVar3;\n    pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;\n    uVar11 = (pVVar5->super_Version_base).index_;\n  }" { (expression_statement "ppVVar3 = ppVVar3 + 1;" (assignment_expression "ppVVar3 = ppVVar3 + 1" identifier = (binary_expression "ppVVar3 + 1" identifier + number_literal)) ;) (expression_statement "(pVVar5->super_Version_base).index_ = index;" (assignment_expression "(pVVar5->super_Version_base).index_ = index" (field_expression "(pVVar5->super_Version_base).index_" (parenthesized_expression "(pVVar5->super_Version_base)" ( (field_expression "pVVar5->super_Version_base" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "index = index + 1;" (assignment_expression "index = index + 1" identifier = (binary_expression "index + 1" identifier + number_literal)) ;) (if_statement "if (ppVVar3 == ppVVar9) {\n      return index;\n    }" if (parenthesized_expression "(ppVVar3 == ppVVar9)" ( (binary_expression "ppVVar3 == ppVVar9" identifier == identifier) )) (compound_statement "{\n      return index;\n    }" { (return_statement "return index;" return identifier ;) })) (expression_statement "pVVar5 = *ppVVar3;" (assignment_expression "pVVar5 = *ppVVar3" identifier = (pointer_expression "*ppVVar3" * identifier)) ;) (expression_statement "pcVar14 = (code *)PTR_do_gold_unreachable_004323c4;" (assignment_expression "pcVar14 = (code *)PTR_do_gold_unreachable_004323c4" identifier = (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar11 = (pVVar5->super_Version_base).index_;" (assignment_expression "uVar11 = (pVVar5->super_Version_base).index_" identifier = (field_expression "(pVVar5->super_Version_base).index_" (parenthesized_expression "(pVVar5->super_Version_base)" ( (field_expression "pVVar5->super_Version_base" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "uVar8 = 0x181;" (assignment_expression "uVar8 = 0x181" identifier = number_literal) ;) (expression_statement "puVar10 = PTR_s__0043226c + 0x1abc;" (assignment_expression "puVar10 = PTR_s__0043226c + 0x1abc" identifier = (binary_expression "PTR_s__0043226c + 0x1abc" identifier + number_literal)) ;) (expression_statement "(*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181);" (call_expression "(*pcVar14)(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal ))) ;) (if_statement "if ((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0) {\n                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);\n    return uVar11;\n  }" if (parenthesized_expression "((int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0)" ( (binary_expression "(int)(*(uint *)(puVar10 + 0x28) << 0x1b) < 0" (cast_expression "(int)(*(uint *)(puVar10 + 0x28) << 0x1b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(puVar10 + 0x28) << 0x1b)" ( (binary_expression "*(uint *)(puVar10 + 0x28) << 0x1b" (pointer_expression "*(uint *)(puVar10 + 0x28)" * (cast_expression "(uint *)(puVar10 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) << number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);\n    return uVar11;\n  }" { comment comment (expression_statement "uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10);" (assignment_expression "uVar11 = (**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10)" identifier = (call_expression "(**(code **)(pcVar14 + 0x1d4070))(uVar8,puVar10)" (parenthesized_expression "(**(code **)(pcVar14 + 0x1d4070))" ( (pointer_expression "**(code **)(pcVar14 + 0x1d4070)" * (pointer_expression "*(code **)(pcVar14 + 0x1d4070)" * (cast_expression "(code **)(pcVar14 + 0x1d4070)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x1d4070)" ( (binary_expression "pcVar14 + 0x1d4070" identifier + number_literal) ))))) )) (argument_list "(uVar8,puVar10)" ( identifier , identifier )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar6 = *(int *)(pcVar14 + 0x1d2138);" (assignment_expression "iVar6 = *(int *)(pcVar14 + 0x1d2138)" identifier = (pointer_expression "*(int *)(pcVar14 + 0x1d2138)" * (cast_expression "(int *)(pcVar14 + 0x1d2138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x1d2138)" ( (binary_expression "pcVar14 + 0x1d2138" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(puVar10 + 0x28) & 0xe000) == 0) {\n    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }\n    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;\n    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);\n  }" if (parenthesized_expression "((*(uint *)(puVar10 + 0x28) & 0xe000) == 0)" ( (binary_expression "(*(uint *)(puVar10 + 0x28) & 0xe000) == 0" (parenthesized_expression "(*(uint *)(puVar10 + 0x28) & 0xe000)" ( (binary_expression "*(uint *)(puVar10 + 0x28) & 0xe000" (pointer_expression "*(uint *)(puVar10 + 0x28)" * (cast_expression "(uint *)(puVar10 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x28)" ( (binary_expression "puVar10 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }\n    iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;\n    (**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);\n  }" { (if_statement "if (*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0) {\n      return *(uint *)(puVar10 + 8);\n    }" if (parenthesized_expression "(*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0)" ( (binary_expression "*(int *)(*(uint *)(puVar10 + 8) + 0x2c) < 0" (pointer_expression "*(int *)(*(uint *)(puVar10 + 8) + 0x2c)" * (cast_expression "(int *)(*(uint *)(puVar10 + 8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar10 + 8) + 0x2c)" ( (binary_expression "*(uint *)(puVar10 + 8) + 0x2c" (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) (compound_statement "{\n      return *(uint *)(puVar10 + 8);\n    }" { (return_statement "return *(uint *)(puVar10 + 8);" return (pointer_expression "*(uint *)(puVar10 + 8)" * (cast_expression "(uint *)(puVar10 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 8)" ( (binary_expression "puVar10 + 8" identifier + number_literal) )))) ;) })) (expression_statement "iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0;" (assignment_expression "iVar6 = *(int *)(pcVar14 + 0x1d1ff0) + 0x13e0" identifier = (binary_expression "*(int *)(pcVar14 + 0x1d1ff0) + 0x13e0" (pointer_expression "*(int *)(pcVar14 + 0x1d1ff0)" * (cast_expression "(int *)(pcVar14 + 0x1d1ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x1d1ff0)" ( (binary_expression "pcVar14 + 0x1d1ff0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94);" (call_expression "(**(code **)(pcVar14 + 0x1d2148))(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94)" (parenthesized_expression "(**(code **)(pcVar14 + 0x1d2148))" ( (pointer_expression "**(code **)(pcVar14 + 0x1d2148)" * (pointer_expression "*(code **)(pcVar14 + 0x1d2148)" * (cast_expression "(code **)(pcVar14 + 0x1d2148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x1d2148)" ( (binary_expression "pcVar14 + 0x1d2148" identifier + number_literal) ))))) )) (argument_list "(iVar6,0x5eb,*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x1d1ff0) + 0x1a94" (pointer_expression "*(int *)(pcVar14 + 0x1d1ff0)" * (cast_expression "(int *)(pcVar14 + 0x1d1ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x1d1ff0)" ( (binary_expression "pcVar14 + 0x1d1ff0" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "__in_chrg = 0xa1;" (assignment_expression "__in_chrg = 0xa1" identifier = number_literal) ;) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x1d2148);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x1d2148)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x1d2148)" * (cast_expression "(code **)(pcVar14 + 0x1d2148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x1d2148)" ( (binary_expression "pcVar14 + 0x1d2148" identifier + number_literal) ))))) ;) (expression_statement "piVar7 = (int *)(iVar6 + -0x5bdc);" (assignment_expression "piVar7 = (int *)(iVar6 + -0x5bdc)" identifier = (cast_expression "(int *)(iVar6 + -0x5bdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -0x5bdc)" ( (binary_expression "iVar6 + -0x5bdc" identifier + number_literal) )))) ;) (expression_statement "(*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8);" (call_expression "(*pcVar15)(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(piVar7,0xa1,*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x1d1ff0) + 0x1ae8" (pointer_expression "*(int *)(pcVar14 + 0x1d1ff0)" * (cast_expression "(int *)(pcVar14 + 0x1d1ff0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x1d1ff0)" ( (binary_expression "pcVar14 + 0x1d1ff0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "piVar4 = (int *)piVar7[1];" (assignment_expression "piVar4 = (int *)piVar7[1]" identifier = (cast_expression "(int *)piVar7[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = (int *)*piVar7;" (assignment_expression "piVar12 = (int *)*piVar7" identifier = (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier))) ;) (while_statement "while (piVar12 != piVar4) {\n    while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }\n  }" while (parenthesized_expression "(piVar12 != piVar4)" ( (binary_expression "piVar12 != piVar4" identifier != identifier) )) (compound_statement "{\n    while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }\n  }" { (while_statement "while( true ) {\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar1 = (int *)*piVar12;\n      piVar12 = piVar12 + 1;\n      if (piVar1 == (int *)0x0) break;\n      (**(code **)(*piVar1 + 4))(piVar1);\n      piVar4 = (int *)piVar7[1];\n      if (piVar12 == piVar4) goto LAB_00260378;\n    }" { (expression_statement "piVar1 = (int *)*piVar12;" (assignment_expression "piVar1 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (if_statement "if (piVar1 == (int *)0x0) break;" if (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(*piVar1 + 4))(piVar1);" (call_expression "(**(code **)(*piVar1 + 4))(piVar1)" (parenthesized_expression "(**(code **)(*piVar1 + 4))" ( (pointer_expression "**(code **)(*piVar1 + 4)" * (pointer_expression "*(code **)(*piVar1 + 4)" * (cast_expression "(code **)(*piVar1 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar1 + 4)" ( (binary_expression "*piVar1 + 4" (pointer_expression "*piVar1" * identifier) + number_literal) ))))) )) (argument_list "(piVar1)" ( identifier ))) ;) (expression_statement "piVar4 = (int *)piVar7[1];" (assignment_expression "piVar4 = (int *)piVar7[1]" identifier = (cast_expression "(int *)piVar7[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar12 == piVar4) goto LAB_00260378;" if (parenthesized_expression "(piVar12 == piVar4)" ( (binary_expression "piVar12 == piVar4" identifier == identifier) )) (goto_statement "goto LAB_00260378;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00260378:\n  puVar13 = (undefined4 *)piVar7[3];" statement_identifier : (expression_statement "puVar13 = (undefined4 *)piVar7[3];" (assignment_expression "puVar13 = (undefined4 *)piVar7[3]" identifier = (cast_expression "(undefined4 *)piVar7[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[3]" identifier [ number_literal ]))) ;)) (expression_statement "puVar2 = (undefined4 *)piVar7[4];" (assignment_expression "puVar2 = (undefined4 *)piVar7[4]" identifier = (cast_expression "(undefined4 *)piVar7[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 != puVar2) {\n    do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);\n  }" if (parenthesized_expression "(puVar13 != puVar2)" ( (binary_expression "puVar13 != puVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);\n  }" { (do_statement "do {\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    } while (puVar2 != puVar13);" do (compound_statement "{\n      this_00 = (Verneed *)*puVar13;\n      puVar13 = puVar13 + 1;\n      if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }\n    }" { (expression_statement "this_00 = (Verneed *)*puVar13;" (assignment_expression "this_00 = (Verneed *)*puVar13" identifier = (cast_expression "(Verneed *)*puVar13" ( (type_descriptor "Verneed *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (if_statement "if (this_00 != (Verneed *)0x0) {\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }" if (parenthesized_expression "(this_00 != (Verneed *)0x0)" ( (binary_expression "this_00 != (Verneed *)0x0" identifier != (cast_expression "(Verneed *)0x0" ( (type_descriptor "Verneed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ~Verneed(this_00,__in_chrg);\n        __in_chrg = 0x10;\n        (**(code **)(pcVar15 + 0x1d20b0))(this_00);\n        puVar2 = (undefined4 *)piVar7[4];\n      }" { (expression_statement "~Verneed(this_00,__in_chrg);" (unary_expression "~Verneed(this_00,__in_chrg)" ~ (call_expression "Verneed(this_00,__in_chrg)" identifier (argument_list "(this_00,__in_chrg)" ( identifier , identifier )))) ;) (expression_statement "__in_chrg = 0x10;" (assignment_expression "__in_chrg = 0x10" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar15 + 0x1d20b0))(this_00);" (call_expression "(**(code **)(pcVar15 + 0x1d20b0))(this_00)" (parenthesized_expression "(**(code **)(pcVar15 + 0x1d20b0))" ( (pointer_expression "**(code **)(pcVar15 + 0x1d20b0)" * (pointer_expression "*(code **)(pcVar15 + 0x1d20b0)" * (cast_expression "(code **)(pcVar15 + 0x1d20b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1d20b0)" ( (binary_expression "pcVar15 + 0x1d20b0" identifier + number_literal) ))))) )) (argument_list "(this_00)" ( identifier ))) ;) (expression_statement "puVar2 = (undefined4 *)piVar7[4];" (assignment_expression "puVar2 = (undefined4 *)piVar7[4]" identifier = (cast_expression "(undefined4 *)piVar7[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[4]" identifier [ number_literal ]))) ;) })) }) while (parenthesized_expression "(puVar2 != puVar13)" ( (binary_expression "puVar2 != puVar13" identifier != identifier) )) ;) })) (ERROR "std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold" (binary_expression "std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std" (binary_expression "std::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_" identifier (ERROR "::\n  _Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Version_base*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Select1st" : : identifier : : identifier) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" ~ (call_expression "_Hashtable((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" identifier (argument_list "((_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6),__in_chrg)" ( (call_expression "(_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)(piVar7 + 6)" (parenthesized_expression "(_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)" ( (ERROR "_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,_std::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>_>,_std::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<unsigned_int,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<unsigned_int" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (comma_expression "Version_base*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_gold" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier)) : : (binary_expression "Version_base*>_>,_std" (binary_expression "Version_base*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : identifier : : (comma_expression "Version_table_eq,_gold" identifier , identifier) : : identifier : : (comma_expression "Version_table_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                 *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                 *" identifier , (binary_expression "_true>_>\n                 *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) (argument_list "(piVar7 + 6)" ( (binary_expression "piVar7 + 6" identifier + number_literal) ))) , identifier ))))))) ;) (if_statement "if (piVar7[3] != 0) {\n    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();\n  }" if (parenthesized_expression "(piVar7[3] != 0)" ( (binary_expression "piVar7[3] != 0" (subscript_expression "piVar7[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();\n  }" { (expression_statement "puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))();" (assignment_expression "puVar2 = (undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar15 + 0x1d1f7c))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar15 + 0x1d1f7c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1d1f7c))" ( (pointer_expression "**(code **)(pcVar15 + 0x1d1f7c)" * (pointer_expression "*(code **)(pcVar15 + 0x1d1f7c)" * (cast_expression "(code **)(pcVar15 + 0x1d1f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1d1f7c)" ( (binary_expression "pcVar15 + 0x1d1f7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) })) (if_statement "if (*piVar7 == 0) {\n    return (uint)puVar2;\n  }" if (parenthesized_expression "(*piVar7 == 0)" ( (binary_expression "*piVar7 == 0" (pointer_expression "*piVar7" * identifier) == number_literal) )) (compound_statement "{\n    return (uint)puVar2;\n  }" { (return_statement "return (uint)puVar2;" return (cast_expression "(uint)puVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ;) })) comment comment (expression_statement "uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))();" (assignment_expression "uVar11 = (**(code **)(pcVar15 + 0x1d1f7c))()" identifier = (call_expression "(**(code **)(pcVar15 + 0x1d1f7c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1d1f7c))" ( (pointer_expression "**(code **)(pcVar15 + 0x1d1f7c)" * (pointer_expression "*(code **)(pcVar15 + 0x1d1f7c)" * (cast_expression "(code **)(pcVar15 + 0x1d1f7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1d1f7c)" ( (binary_expression "pcVar15 + 0x1d1f7c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar11;" return identifier ;) })))
(translation_unit "void FUN_002601f8(int param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_002601f8(int param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_002601f8(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "piVar1 = *(int **)(param_1 + 4);" (assignment_expression "piVar1 = *(int **)(param_1 + 4)" identifier = (pointer_expression "*(int **)(param_1 + 4)" * (cast_expression "(int **)(param_1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" if (parenthesized_expression "(piVar1 != piVar3)" ( (binary_expression "piVar1 != piVar3" identifier != identifier) )) (compound_statement "{\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" { (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" { (if_statement "if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1abc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar2 + 4) = param_2;" (assignment_expression "*(int *)(iVar2 + 4) = param_2" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (if_statement "if (piVar1 == piVar3) break;" if (parenthesized_expression "(piVar1 == piVar3)" ( (binary_expression "piVar1 == piVar3" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" identifier = (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_002601f8(int param_1,int param_2)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002601f8(int param_1,int param_2)" (identifier "FUN_002601f8") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  \n  piVar1 = *(int **)(param_1 + 4);\n  piVar3 = *(int **)(param_1 + 8);\n  if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "piVar1 = *(int **)(param_1 + 4);" (assignment_expression "piVar1 = *(int **)(param_1 + 4)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(param_1 + 4)" (* "*") (cast_expression "(int **)(param_1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar3 = *(int **)(param_1 + 8);" (assignment_expression "piVar3 = *(int **)(param_1 + 8)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar1 != piVar3) {\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" (if "if") (parenthesized_expression "(piVar1 != piVar3)" (( "(") (binary_expression "piVar1 != piVar3" (identifier "piVar1") (!= "!=") (identifier "piVar3")) () ")")) (compound_statement "{\n    iVar2 = *piVar1;\n    iVar4 = *(int *)(iVar2 + 4);\n    while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }\n  }" ({ "{") (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (while_statement "while( true ) {\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }\n      piVar1 = piVar1 + 1;\n      *(int *)(iVar2 + 4) = param_2;\n      param_2 = param_2 + 1;\n      if (piVar1 == piVar3) break;\n      iVar2 = *piVar1;\n      iVar4 = *(int *)(iVar2 + 4);\n    }" ({ "{") (if_statement "if (iVar4 != -1) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" (if "if") (parenthesized_expression "(iVar4 != -1)" (( "(") (binary_expression "iVar4 != -1" (identifier "iVar4") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);\n        return;\n      }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4f94" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4f94")) (, ",") (number_literal "0x181") (, ",") (binary_expression "PTR_DAT_0043226c + 0x1abc" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x1abc")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 1" (identifier "piVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar2 + 4) = param_2;" (assignment_expression "*(int *)(iVar2 + 4) = param_2" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar1 == piVar3) break;" (if "if") (parenthesized_expression "(piVar1 == piVar3)" (( "(") (binary_expression "piVar1 == piVar3" (identifier "piVar1") (== "==") (identifier "piVar3")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar2 + 4);" (assignment_expression "iVar4 = *(int *)(iVar2 + 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: uint finalize(Verneed * this, uint index) */

type_1 __thiscall var_1::type_2::function_1(type_2 *this,type_1 var_7)

{
  int *var_15;
  type_3 *var_17;
  type_4 var_4;
  int *var_14;
  type_5 *pVVar5;
  int var_12;
  int *var_23;
  type_3 uVar8;
  int __in_chrg;
  type_4 var_5;
  type_6 *var_10;
  type_1 var_6;
  int *var_13;
  type_3 *var_16;
  type_2 *var_18;
  type_7 *var_11;
  type_7 *var_19;
  
  var_4 = (this->need_versions_).
            super__Vector_base<var_1::type_5*,var_2::allocator<var_1::type_5*>var_3>.
            _M_impl._M_start;
  var_5 = (this->need_versions_).
            super__Vector_base<var_1::type_5*,var_2::allocator<var_1::type_5*>var_3>.
            _M_impl._M_finish;
  if (var_4 == var_5) {
    return var_7;
  }
  pVVar5 = *var_4;
  var_6 = (pVVar5->super_Version_base).index_;
  var_11 = (type_7 *)PTR_do_gold_unreachable_004323c4;
  while (PTR_do_gold_unreachable_004323c4 = var_11, var_6 == 0xffffffff) {
    var_4 = var_4 + 1;
    (pVVar5->super_Version_base).index_ = var_7;
    var_7 = var_7 + 1;
    if (var_4 == var_5) {
      return var_7;
    }
    pVVar5 = *var_4;
    var_11 = (type_7 *)PTR_do_gold_unreachable_004323c4;
    var_6 = (pVVar5->super_Version_base).index_;
  }
  uVar8 = 0x181;
  var_10 = var_8 + 0x1abc;
  (*var_11)(var_9 + -0x4f94,0x181);
  if ((int)(*(type_1 *)(var_10 + 0x28) << 0x1b) < 0) {
                    /* WARNING: Could not recover jumptable at 0x002602d4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    var_6 = (**(type_7 **)(var_11 + 0x1d4070))(uVar8,var_10);
    return var_6;
  }
  var_12 = *(int *)(var_11 + 0x1d2138);
  if ((*(type_1 *)(var_10 + 0x28) & 0xe000) == 0) {
    if (*(int *)(*(type_1 *)(var_10 + 8) + 0x2c) < 0) {
      return *(type_1 *)(var_10 + 8);
    }
    var_12 = *(int *)(var_11 + 0x1d1ff0) + 0x13e0;
    (**(type_7 **)(var_11 + 0x1d2148))(var_12,0x5eb,*(int *)(var_11 + 0x1d1ff0) + 0x1a94);
  }
  __in_chrg = 0xa1;
  var_19 = *(type_7 **)(var_11 + 0x1d2148);
  var_23 = (int *)(var_12 + -0x5bdc);
  (*var_19)(var_23,0xa1,*(int *)(var_11 + 0x1d1ff0) + 0x1ae8);
  var_14 = (int *)var_23[1];
  var_13 = (int *)*var_23;
  while (var_13 != var_14) {
    while( true ) {
      var_15 = (int *)*var_13;
      var_13 = var_13 + 1;
      if (var_15 == (int *)0x0) break;
      (**(type_7 **)(*var_15 + 4))(var_15);
      var_14 = (int *)var_23[1];
      if (var_13 == var_14) goto LAB_00260378;
    }
  }
LAB_00260378:
  var_16 = (type_3 *)var_23[3];
  var_17 = (type_3 *)var_23[4];
  if (var_16 != var_17) {
    do {
      var_18 = (type_2 *)*var_16;
      var_16 = var_16 + 1;
      if (var_18 != (type_2 *)0x0) {
        ~type_2(var_18,__in_chrg);
        __in_chrg = 0x10;
        (**(type_7 **)(var_19 + 0x1d20b0))(var_18);
        var_17 = (type_3 *)var_23[4];
      }
    } while (var_17 != var_16);
  }
  std::
  var_22<std::pair<unsigned_int,_unsigned_int>,var_2::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,var_2::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>var_3>,var_2::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,var_2::__detail::_Mod_range_hashing,var_2::__detail::_Default_ranged_hash,var_2::__detail::_Prime_rehash_policy,var_2::__detail::var_20<true,_false,var_21>var_3>
  ::~var_22((var_22<std::pair<unsigned_int,_unsigned_int>,var_2::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>,var_2::allocator<std::pair<const_std::pair<unsigned_int,_unsigned_int>,_gold::Version_base*>var_3>,var_2::__detail::_Select1st,_gold::Versions::Version_table_eq,_gold::Versions::Version_table_hash,var_2::__detail::_Mod_range_hashing,var_2::__detail::_Default_ranged_hash,var_2::__detail::_Prime_rehash_policy,var_2::__detail::var_20<true,_false,var_21>var_3>
                 *)(var_23 + 6),__in_chrg);
  if (var_23[3] != 0) {
    var_17 = (type_3 *)(**(type_7 **)(var_19 + 0x1d1f7c))();
  }
  if (*var_23 == 0) {
    return (type_1)var_17;
  }
                    /* WARNING: Could not recover jumptable at 0x00260410. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  var_6 = (**(type_7 **)(var_19 + 0x1d1f7c))();
  return var_6;
}


(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: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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))))))))))) (return_statement))))

void MASKED(int param_1,int param_2)

{
  int *piVar1;
  int iVar2;
  int *piVar3;
  int iVar4;
  
  piVar1 = *(int **)(param_1 + 4);
  piVar3 = *(int **)(param_1 + 8);
  if (piVar1 != piVar3) {
    iVar2 = *piVar1;
    iVar4 = *(int *)(iVar2 + 4);
    while( true ) {
      if (iVar4 != -1) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_s_alize_xindex_004323b4 + -0x4f94,0x181,PTR_DAT_0043226c + 0x1abc);
        return;
      }
      piVar1 = piVar1 + 1;
      *(int *)(iVar2 + 4) = param_2;
      param_2 = param_2 + 1;
      if (piVar1 == piVar3) break;
      iVar2 = *piVar1;
      iVar4 = *(int *)(iVar2 + 4);
    }
  }
  return;
}

