
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_version_sections(Layout * this, Versions * versions,
   Symbol_table * symtab, uint local_symcount, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>
   * dynamic_symbols, Output_section * dynstr) */

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

{
  Target_size_endianness TVar1;
  
  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
       _M_start ==
       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
       _M_finish) &&
     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl
      ._M_finish ==
      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl
      ._M_start)) {
    return;
  }
  TVar1 = Parameters::size_and_endianness(parameters);
  if (TVar1 == TARGET_32_BIG) {
    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
    return;
  }
  if (TVar1 != TARGET_32_LITTLE) {
    if (TVar1 == TARGET_64_LITTLE) {
      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
      return;
    }
    if (TVar1 == TARGET_64_BIG) {
      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
      return;
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");
  }
  sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
  return;
}



void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,
                 undefined8 param_5,undefined8 param_6)

{
  int iVar1;
  
  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {
    return;
  }
  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);
  if (iVar1 == 1) {
    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);
    return;
  }
  if (iVar1 != 0) {
    if (iVar1 == 2) {
      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);
      return;
    }
    if (iVar1 == 3) {
      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");
  }
  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);
  return;
}


MOV RAX,qword ptr [RSI + 0x8]
CMP qword ptr [RSI],RAX
JZ 0x001af088
PUSH R15
MOV R15,R9
PUSH R14
MOV R14,R8
PUSH R13
MOV R13D,ECX
PUSH R12
MOV R12,RDX
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOV RBX,RSI
SUB RSP,0x8
MOV RDI,qword ptr [0x0043e6b0]
CALL 0x002375c0
CMP EAX,0x1
JZ 0x001af0c8
TEST EAX,EAX
JZ 0x001af0a0
CMP EAX,0x2
JZ 0x001af060
CMP EAX,0x3
JNZ 0x001af0ed
ADD RSP,0x8
MOV R9,R15
MOV R8,R14
MOV ECX,R13D
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x001b8730
ADD RSP,0x8
MOV R9,R15
MOV R8,R14
MOV ECX,R13D
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x001b8190
MOV RAX,qword ptr [RSI + 0x18]
CMP qword ptr [RSI + 0x20],RAX
JNZ 0x001aefed
RET
ADD RSP,0x8
MOV R9,R15
MOV R8,R14
MOV ECX,R13D
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x001b7650
ADD RSP,0x8
MOV R9,R15
MOV R8,R14
MOV ECX,R13D
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x001b7bf0
LEA RDX,[0x377350]
MOV ESI,0x131e
LEA RDI,[0x37612f]
CALL 0x0017c650
(translation_unit "void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)\n\n{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}\n\n" (function_definition "void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)\n\n{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }" if (parenthesized_expression "((*param_2 == param_2[1]) && (param_2[4] == param_2[3]))" ( (binary_expression "(*param_2 == param_2[1]) && (param_2[4] == param_2[3])" (parenthesized_expression "(*param_2 == param_2[1])" ( (binary_expression "*param_2 == param_2[1]" (pointer_expression "*param_2" * identifier) == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(param_2[4] == param_2[3])" ( (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" identifier [ number_literal ]) == (subscript_expression "param_2[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);" (assignment_expression "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002375c0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) ;) (if_statement "if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" { (expression_statement "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" { (if_statement "if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" { (expression_statement "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" { (expression_statement "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections")" identifier (argument_list "("../../gold/layout.cc",0x131e,"create_version_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_version_sections"" " string_content ") ))) ;) })) (expression_statement "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void create_version_sections(Layout * this, Versions * versions,\n   Symbol_table * symtab, uint local_symcount, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n   * dynamic_symbols, Output_section * dynstr) */\n\nvoid __thiscall\ngold::Layout::create_version_sections\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint param_3,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)\n\n{\n  Target_size_endianness TVar1;\n  \n  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)) {\n    return;\n  }\n  TVar1 = Parameters::size_and_endianness(parameters);\n  if (TVar1 == TARGET_32_BIG) {\n    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n    return;\n  }\n  if (TVar1 != TARGET_32_LITTLE) {\n    if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n    if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Layout::create_version_sections\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint param_3,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)\n\n{\n  Target_size_endianness TVar1;\n  \n  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)) {\n    return;\n  }\n  TVar1 = Parameters::size_and_endianness(parameters);\n  if (TVar1 == TARGET_32_BIG) {\n    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n    return;\n  }\n  if (TVar1 != TARGET_32_LITTLE) {\n    if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n    if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "create_version_sections\n          (Layout *this,Versions *versions,Symbol_table *symtab,uint param_3,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)" identifier (parameter_list "(Layout *this,Versions *versions,Symbol_table *symtab,uint param_3,\n          vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynamic_symbols,\n          Output_section *dynstr)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Versions *versions" type_identifier (pointer_declarator "*versions" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *dynamic_symbols" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*dynamic_symbols" * identifier)) , (parameter_declaration "Output_section *dynstr" type_identifier (pointer_declarator "*dynstr" * identifier)) ))) (compound_statement "{\n  Target_size_endianness TVar1;\n  \n  if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)) {\n    return;\n  }\n  TVar1 = Parameters::size_and_endianness(parameters);\n  if (TVar1 == TARGET_32_BIG) {\n    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n    return;\n  }\n  if (TVar1 != TARGET_32_LITTLE) {\n    if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n    if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n  return;\n}" { (declaration "Target_size_endianness TVar1;" type_identifier identifier ;) (if_statement "if (((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)) {\n    return;\n  }" if (parenthesized_expression "(((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start))" ( (binary_expression "((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish) &&\n     ((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)" (parenthesized_expression "((versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish)" ( (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_finish" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold::Verdef*,_std" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start ==\n       (versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n       _M_start" (field_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "(versions->defs_).super__Vector_base<gold::Verdef*,_std" (binary_expression "(versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base" (parenthesized_expression "(versions->defs_)" ( (field_expression "versions->defs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(versions->defs_).super__Vector_base<gold" (field_expression "(versions->defs_).super__Vector_base" (parenthesized_expression "(versions->defs_)" ( (field_expression "versions->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) && (parenthesized_expression "((versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start)" ( (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_start" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold::Verneed*,_std" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish ==\n      (versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl\n      ._M_finish" (field_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_>._M_impl" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold::Verneed*>_" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std::allocator<gold" (binary_expression "(versions->needs_).super__Vector_base<gold::Verneed*,_std" (binary_expression "(versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base" (parenthesized_expression "(versions->needs_)" ( (field_expression "versions->needs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(versions->needs_).super__Vector_base<gold" (field_expression "(versions->needs_).super__Vector_base" (parenthesized_expression "(versions->needs_)" ( (field_expression "versions->needs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verneed" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verneed" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (ERROR "TVar1 = Parameters::" (assignment_expression "TVar1 = Parameters" identifier = identifier) : :) (expression_statement "size_and_endianness(parameters);" (call_expression "size_and_endianness(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (TVar1 == TARGET_32_BIG) {\n    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n    return;\n  }" if (parenthesized_expression "(TVar1 == TARGET_32_BIG)" ( (binary_expression "TVar1 == TARGET_32_BIG" identifier == identifier) )) (compound_statement "{\n    sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n    return;\n  }" { (expression_statement "sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);" (comma_expression "sized_create_version_sections<32,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" (binary_expression "sized_create_version_sections<32" identifier < number_literal) , (binary_expression "_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" identifier > (parenthesized_expression "(this,versions,symtab,param_3,dynamic_symbols,dynstr)" ( (comma_expression "this,versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "param_3,dynamic_symbols,dynstr" identifier , (comma_expression "dynamic_symbols,dynstr" identifier , identifier))))) )))) ;) (return_statement "return;" return ;) })) (if_statement "if (TVar1 != TARGET_32_LITTLE) {\n    if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n    if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" if (parenthesized_expression "(TVar1 != TARGET_32_LITTLE)" ( (binary_expression "TVar1 != TARGET_32_LITTLE" identifier != identifier) )) (compound_statement "{\n    if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n    if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" { (if_statement "if (TVar1 == TARGET_64_LITTLE) {\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }" if (parenthesized_expression "(TVar1 == TARGET_64_LITTLE)" ( (binary_expression "TVar1 == TARGET_64_LITTLE" identifier == identifier) )) (compound_statement "{\n      sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }" { (expression_statement "sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);" (comma_expression "sized_create_version_sections<64,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" (binary_expression "sized_create_version_sections<64" identifier < number_literal) , (binary_expression "_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" identifier > (parenthesized_expression "(this,versions,symtab,param_3,dynamic_symbols,dynstr)" ( (comma_expression "this,versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "param_3,dynamic_symbols,dynstr" identifier , (comma_expression "dynamic_symbols,dynstr" identifier , identifier))))) )))) ;) (return_statement "return;" return ;) })) (if_statement "if (TVar1 == TARGET_64_BIG) {\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }" if (parenthesized_expression "(TVar1 == TARGET_64_BIG)" ( (binary_expression "TVar1 == TARGET_64_BIG" identifier == identifier) )) (compound_statement "{\n      sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);\n      return;\n    }" { (expression_statement "sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr);" (comma_expression "sized_create_version_sections<64,_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" (binary_expression "sized_create_version_sections<64" identifier < number_literal) , (binary_expression "_true>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" identifier > (parenthesized_expression "(this,versions,symtab,param_3,dynamic_symbols,dynstr)" ( (comma_expression "this,versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "param_3,dynamic_symbols,dynstr" identifier , (comma_expression "dynamic_symbols,dynstr" identifier , identifier))))) )))) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x131e,"create_version_sections")" identifier (argument_list "("../../gold/layout.cc",0x131e,"create_version_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_version_sections"" " string_content ") ))) ;) })) (expression_statement "sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr);" (comma_expression "sized_create_version_sections<32,_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" (binary_expression "sized_create_version_sections<32" identifier < number_literal) , (binary_expression "_false>(this,versions,symtab,param_3,dynamic_symbols,dynstr)" identifier > (parenthesized_expression "(this,versions,symtab,param_3,dynamic_symbols,dynstr)" ( (comma_expression "this,versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "versions,symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "symtab,param_3,dynamic_symbols,dynstr" identifier , (comma_expression "param_3,dynamic_symbols,dynstr" identifier , (comma_expression "dynamic_symbols,dynstr" identifier , identifier))))) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)\n\n{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}\n\n" (function_definition "void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)\n\n{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }" if (parenthesized_expression "((*param_2 == param_2[1]) && (param_2[4] == param_2[3]))" ( (binary_expression "(*param_2 == param_2[1]) && (param_2[4] == param_2[3])" (parenthesized_expression "(*param_2 == param_2[1])" ( (binary_expression "*param_2 == param_2[1]" (pointer_expression "*param_2" * identifier) == (subscript_expression "param_2[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(param_2[4] == param_2[3])" ( (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" identifier [ number_literal ]) == (subscript_expression "param_2[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);" (assignment_expression "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002375c0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) ;) (if_statement "if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" { (expression_statement "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" { (if_statement "if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" { (expression_statement "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" { (expression_statement "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections")" identifier (argument_list "("../../gold/layout.cc",0x131e,"create_version_sections")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""create_version_sections"" " string_content ") ))) ;) })) (expression_statement "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)\n\n{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001aefe0(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" (identifier "FUN_001aefe0") (parameter_list "(undefined8 param_1,long *param_2,undefined8 param_3,undefined4 param_4,\n                 undefined8 param_5,undefined8 param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }\n  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);\n  if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }\n  if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }\n  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {\n    return;\n  }" (if "if") (parenthesized_expression "((*param_2 == param_2[1]) && (param_2[4] == param_2[3]))" (( "(") (binary_expression "(*param_2 == param_2[1]) && (param_2[4] == param_2[3])" (parenthesized_expression "(*param_2 == param_2[1])" (( "(") (binary_expression "*param_2 == param_2[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(param_2[4] == param_2[3])" (( "(") (binary_expression "param_2[4] == param_2[3]" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (== "==") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);" (assignment_expression "iVar1 = FUN_002375c0(PTR_DAT_0043e6b0)" (identifier "iVar1") (= "=") (call_expression "FUN_002375c0(PTR_DAT_0043e6b0)" (identifier "FUN_002375c0") (argument_list "(PTR_DAT_0043e6b0)" (( "(") (identifier "PTR_DAT_0043e6b0") () ")")))) (; ";")) (if_statement "if (iVar1 == 1) {\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 == 1)" (( "(") (binary_expression "iVar1 == 1" (identifier "iVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);\n    return;\n  }" ({ "{") (expression_statement "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_001b7bf0") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 != 0) {\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n    if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }\n                    \n    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");\n  }" ({ "{") (if_statement "if (iVar1 == 2) {\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar1 == 2)" (( "(") (binary_expression "iVar1 == 2" (identifier "iVar1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" ({ "{") (expression_statement "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_001b8190") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (iVar1 == 3) {\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar1 == 3)" (( "(") (binary_expression "iVar1 == 3" (identifier "iVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);\n      return;\n    }" ({ "{") (expression_statement "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_001b8730") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");" (call_expression "FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0x131e,"create_version_sections")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x131e") (, ",") (string_literal ""create_version_sections"" (" """) (string_content "create_version_sections") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);" (call_expression "FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6)" (identifier "FUN_001b7650") (argument_list "(param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_version_sections(Layout * this, Versions * versions,
   Symbol_table * symtab, uint local_symcount, vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>
   * dynamic_symbols, Output_section * dynstr) */

void __thiscall
var_1::type_1::function_1
          (type_1 *this,type_2 *versions,type_3 *symtab,type_4 param_3,
          type_5<var_1::Symbol*,type_6::allocator<var_1::Symbol*>var_2> *dynamic_symbols,
          type_7 *dynstr)

{
  type_8 var_4;
  
  if (((versions->defs_).super__Vector_base<var_1::Verdef*,type_6::allocator<var_1::Verdef*>var_2>._M_impl.
       _M_start ==
       (versions->defs_).super__Vector_base<var_1::Verdef*,type_6::allocator<var_1::Verdef*>var_2>._M_impl.
       _M_finish) &&
     ((versions->needs_).super__Vector_base<var_1::Verneed*,type_6::allocator<var_1::Verneed*>var_2>._M_impl
      ._M_finish ==
      (versions->needs_).super__Vector_base<var_1::Verneed*,type_6::allocator<var_1::Verneed*>var_2>._M_impl
      ._M_start)) {
    return;
  }
  var_4 = Parameters::var_3(parameters);
  if (var_4 == var_5) {
    var_6<32,var_7>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
    return;
  }
  if (var_4 != var_8) {
    if (var_4 == var_9) {
      var_6<64,var_10>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
      return;
    }
    if (var_4 == var_11) {
      var_6<64,var_7>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
      return;
    }
                    /* WARNING: Subroutine does not return */
    var_12("../../gold/layout.cc",0x131e,"create_version_sections");
  }
  var_6<32,var_10>(this,versions,symtab,param_3,dynamic_symbols,dynstr);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))))

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

{
  int iVar1;
  
  if ((*param_2 == param_2[1]) && (param_2[4] == param_2[3])) {
    return;
  }
  iVar1 = FUN_002375c0(PTR_DAT_0043e6b0);
  if (iVar1 == 1) {
    FUN_001b7bf0(param_1,param_2,param_3,param_4,param_5,param_6);
    return;
  }
  if (iVar1 != 0) {
    if (iVar1 == 2) {
      FUN_001b8190(param_1,param_2,param_3,param_4,param_5,param_6);
      return;
    }
    if (iVar1 == 3) {
      FUN_001b8730(param_1,param_2,param_3,param_4,param_5,param_6);
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/layout.cc",0x131e,"create_version_sections");
  }
  FUN_001b7650(param_1,param_2,param_3,param_4,param_5,param_6);
  return;
}

