
/* WARNING: Unknown calling convention */
/* DWARF original name: __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,
   true, 64, true>*, std::vector<gold::Output_reloc<9, true, 64, true>,
   std::allocator<gold::Output_reloc<9, true, 64, true> > > >,
   __gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9, true, 64,
   true>::Sort_relocs_comparison> > */

void std::
     __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,_true,_64,_true>*,_std::vector<gold::Output_reloc<9,_true,_64,_true>,_std::allocator<gold::Output_reloc<9,_true,_64,_true>_>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9,_true,_64,_true>::Sort_relocs_comparison>_>
               (anon_union_4_4_c82d8563_for_u1_ *__last)

{
  int iVar1;
  anon_union_4_4_c82d8563_for_u1_ *r2;
  value_type __val;
  
  __val.u1_ = *__last;
  __val.u2_ = *(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1);
  __val.address_._0_4_ = __last[2];
  __val.address_._4_4_ = __last[3];
  __val.local_sym_index_ = *(uint *)(__last + 4);
  __val._20_4_ = __last[5];
  __val.shndx_ = *(uint *)(__last + 6);
  while( true ) {
    r2 = __last + -7;
    iVar1 = gold::Output_reloc<9,_true,_64,_true>::compare
                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);
    if (-1 < iVar1) break;
    *__last = *r2;
    __last[1] = __last[-6];
    __last[2] = __last[-5];
    __last[3] = __last[-4];
    __last[4] = __last[-3];
    __last[5] = __last[-2];
    __last[6] = __last[-1];
    __last = r2;
  }
  *__last = __val.u1_;
  __last[1] = (anon_union_4_4_c82d8563_for_u1_)__val.u2_;
  __last[2] = __val.address_._0_4_;
  __last[3] = __val.address_._4_4_;
  __last[4] = (anon_union_4_4_c82d8563_for_u1_)__val.local_sym_index_;
  __last[5] = (anon_union_4_4_c82d8563_for_u1_)__val._20_4_;
  __last[6] = (anon_union_4_4_c82d8563_for_u1_)__val.shndx_;
  return;
}



void FUN_001331d0(undefined4 *param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  undefined4 local_14;
  undefined4 local_10;
  
  local_28 = *param_1;
  local_24 = param_1[1];
  local_20 = param_1[2];
  local_1c = param_1[3];
  local_18 = param_1[4];
  local_14 = param_1[5];
  local_10 = param_1[6];
  while( true ) {
    puVar2 = param_1 + -7;
    iVar1 = FUN_0012b8e0(&local_28,puVar2);
    if (-1 < iVar1) break;
    *param_1 = *puVar2;
    param_1[1] = param_1[-6];
    param_1[2] = param_1[-5];
    param_1[3] = param_1[-4];
    param_1[4] = param_1[-3];
    param_1[5] = param_1[-2];
    param_1[6] = param_1[-1];
    param_1 = puVar2;
  }
  *param_1 = local_28;
  param_1[1] = local_24;
  param_1[2] = local_20;
  param_1[3] = local_1c;
  param_1[4] = local_18;
  param_1[5] = local_14;
  param_1[6] = local_10;
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x20
MOV EBX,dword ptr [ESP + 0x30]
LEA ESI,[ESP + 0x4]
MOV EAX,dword ptr [EBX]
SUB EBX,0x1c
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EBX + 0x20]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EBX + 0x24]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EBX + 0x28]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0x2c]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0x30]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EBX + 0x34]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00133244
MOV EAX,dword ptr [EBX]
SUB EBX,0x1c
MOV dword ptr [EBX + 0x38],EAX
MOV EAX,dword ptr [EBX + 0x20]
MOV dword ptr [EBX + 0x3c],EAX
MOV EAX,dword ptr [EBX + 0x24]
MOV dword ptr [EBX + 0x40],EAX
MOV EAX,dword ptr [EBX + 0x28]
MOV dword ptr [EBX + 0x44],EAX
MOV EAX,dword ptr [EBX + 0x2c]
MOV dword ptr [EBX + 0x48],EAX
MOV EAX,dword ptr [EBX + 0x30]
MOV dword ptr [EBX + 0x4c],EAX
MOV EAX,dword ptr [EBX + 0x34]
MOV dword ptr [EBX + 0x50],EAX
SUB ESP,0x8
LEA EDI,[EBX + 0x1c]
PUSH EBX
PUSH ESI
CALL 0x0012b8e0
ADD ESP,0x10
TEST EAX,EAX
JS 0x00133218
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EDI + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EDI + 0x18],EAX
ADD ESP,0x20
POP EBX
POP ESI
POP EDI
RET
(translation_unit "void FUN_001331d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}\n\n" (function_definition "void FUN_001331d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" primitive_type (function_declarator "FUN_001331d0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_28 = *param_1;" (assignment_expression "local_28 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_24 = param_1[1];" (assignment_expression "local_24 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_20 = param_1[2];" (assignment_expression "local_20 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_1c = param_1[3];" (assignment_expression "local_1c = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_18 = param_1[4];" (assignment_expression "local_18 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_14 = param_1[5];" (assignment_expression "local_14 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_10 = param_1[6];" (assignment_expression "local_10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" { (expression_statement "puVar2 = param_1 + -7;" (assignment_expression "puVar2 = param_1 + -7" identifier = (binary_expression "param_1 + -7" identifier + number_literal)) ;) (expression_statement "iVar1 = FUN_0012b8e0(&local_28,puVar2);" (assignment_expression "iVar1 = FUN_0012b8e0(&local_28,puVar2)" identifier = (call_expression "FUN_0012b8e0(&local_28,puVar2)" identifier (argument_list "(&local_28,puVar2)" ( (pointer_expression "&local_28" & identifier) , identifier )))) ;) (if_statement "if (-1 < iVar1) break;" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "*param_1 = *puVar2;" (assignment_expression "*param_1 = *puVar2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "param_1[1] = param_1[-6];" (assignment_expression "param_1[1] = param_1[-6]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "param_1[-6]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = param_1[-5];" (assignment_expression "param_1[2] = param_1[-5]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "param_1[-5]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = param_1[-4];" (assignment_expression "param_1[3] = param_1[-4]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_1[-4]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = param_1[-3];" (assignment_expression "param_1[4] = param_1[-3]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_1[-3]" identifier [ number_literal ])) ;) (expression_statement "param_1[5] = param_1[-2];" (assignment_expression "param_1[5] = param_1[-2]" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (subscript_expression "param_1[-2]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = param_1[-1];" (assignment_expression "param_1[6] = param_1[-1]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (subscript_expression "param_1[-1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = puVar2;" (assignment_expression "param_1 = puVar2" identifier = identifier) ;) })) (expression_statement "*param_1 = local_28;" (assignment_expression "*param_1 = local_28" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_20;" (assignment_expression "param_1[2] = local_20" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_1c;" (assignment_expression "param_1[3] = local_1c" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_18;" (assignment_expression "param_1[4] = local_18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_14;" (assignment_expression "param_1[5] = local_14" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = local_10;" (assignment_expression "param_1[6] = local_10" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n/* DWARF original name: __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,\n   true, 64, true>*, std::vector<gold::Output_reloc<9, true, 64, true>,\n   std::allocator<gold::Output_reloc<9, true, 64, true> > > >,\n   __gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9, true, 64,\n   true>::Sort_relocs_comparison> > */\n\nvoid std::\n     __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,_true,_64,_true>*,_std::vector<gold::Output_reloc<9,_true,_64,_true>,_std::allocator<gold::Output_reloc<9,_true,_64,_true>_>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9,_true,_64,_true>::Sort_relocs_comparison>_>\n               (anon_union_4_4_c82d8563_for_u1_ *__last)\n\n{\n  int iVar1;\n  anon_union_4_4_c82d8563_for_u1_ *r2;\n  value_type __val;\n  \n  __val.u1_ = *__last;\n  __val.u2_ = *(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1);\n  __val.address_._0_4_ = __last[2];\n  __val.address_._4_4_ = __last[3];\n  __val.local_sym_index_ = *(uint *)(__last + 4);\n  __val._20_4_ = __last[5];\n  __val.shndx_ = *(uint *)(__last + 6);\n  while( true ) {\n    r2 = __last + -7;\n    iVar1 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);\n    if (-1 < iVar1) break;\n    *__last = *r2;\n    __last[1] = __last[-6];\n    __last[2] = __last[-5];\n    __last[3] = __last[-4];\n    __last[4] = __last[-3];\n    __last[5] = __last[-2];\n    __last[6] = __last[-1];\n    __last = r2;\n  }\n  *__last = __val.u1_;\n  __last[1] = (anon_union_4_4_c82d8563_for_u1_)__val.u2_;\n  __last[2] = __val.address_._0_4_;\n  __last[3] = __val.address_._4_4_;\n  __last[4] = (anon_union_4_4_c82d8563_for_u1_)__val.local_sym_index_;\n  __last[5] = (anon_union_4_4_c82d8563_for_u1_)__val._20_4_;\n  __last[6] = (anon_union_4_4_c82d8563_for_u1_)__val.shndx_;\n  return;\n}\n\n" comment comment (declaration "void std::\n     __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,_true,_64,_true>*,_std::vector<gold::Output_reloc<9,_true,_64,_true>,_std::allocator<gold::Output_reloc<9,_true,_64,_true>_>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9,_true,_64,_true>::Sort_relocs_comparison>_>\n               (anon_union_4_4_c82d8563_for_u1_ *__last)\n\n{\n  int iVar1;" primitive_type (ERROR "std::\n     __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::" identifier : : identifier < identifier : : identifier < identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , identifier (ERROR ">*" > *) , (ERROR "_std::vector<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , identifier (ERROR ">" >) , (ERROR "_std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , identifier (ERROR ">_>_>_>" > identifier > identifier > identifier >) , (ERROR "___gnu_cxx::__ops::_Val_comp_iter<gold::" identifier : : identifier : : identifier < identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , (ERROR "_true>::Sort_relocs_comparison>_>\n               (anon_union_4_4_c82d8563_for_u1_ *__last)\n\n{\n  int" identifier > : : identifier > (function_declarator "_>\n               (anon_union_4_4_c82d8563_for_u1_ *__last)" identifier (ERROR ">" >) (parameter_list "(anon_union_4_4_c82d8563_for_u1_ *__last)" ( (parameter_declaration "anon_union_4_4_c82d8563_for_u1_ *__last" type_identifier (pointer_declarator "*__last" * identifier)) ))) { primitive_type) identifier ;) (declaration "anon_union_4_4_c82d8563_for_u1_ *r2;" type_identifier (pointer_declarator "*r2" * identifier) ;) (declaration "value_type __val;" type_identifier identifier ;) (expression_statement "__val.u1_ = *__last;" (assignment_expression "__val.u1_ = *__last" (field_expression "__val.u1_" identifier . field_identifier) = (pointer_expression "*__last" * identifier)) ;) (expression_statement "__val.u2_ = *(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1);" (assignment_expression "__val.u2_ = *(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1)" (field_expression "__val.u2_" identifier . field_identifier) = (pointer_expression "*(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1)" * (cast_expression "(anon_union_4_2_238bdeaa_for_u2_ *)(__last + 1)" ( (type_descriptor "anon_union_4_2_238bdeaa_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__last + 1)" ( (binary_expression "__last + 1" identifier + number_literal) ))))) ;) (expression_statement "__val.address_._0_4_ = __last[2];" (assignment_expression "__val.address_._0_4_ = __last[2]" (field_expression "__val.address_._0_4_" (field_expression "__val.address_" identifier . field_identifier) . field_identifier) = (subscript_expression "__last[2]" identifier [ number_literal ])) ;) (expression_statement "__val.address_._4_4_ = __last[3];" (assignment_expression "__val.address_._4_4_ = __last[3]" (field_expression "__val.address_._4_4_" (field_expression "__val.address_" identifier . field_identifier) . field_identifier) = (subscript_expression "__last[3]" identifier [ number_literal ])) ;) (expression_statement "__val.local_sym_index_ = *(uint *)(__last + 4);" (assignment_expression "__val.local_sym_index_ = *(uint *)(__last + 4)" (field_expression "__val.local_sym_index_" identifier . field_identifier) = (pointer_expression "*(uint *)(__last + 4)" * (cast_expression "(uint *)(__last + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__last + 4)" ( (binary_expression "__last + 4" identifier + number_literal) ))))) ;) (expression_statement "__val._20_4_ = __last[5];" (assignment_expression "__val._20_4_ = __last[5]" (field_expression "__val._20_4_" identifier . field_identifier) = (subscript_expression "__last[5]" identifier [ number_literal ])) ;) (expression_statement "__val.shndx_ = *(uint *)(__last + 6);" (assignment_expression "__val.shndx_ = *(uint *)(__last + 6)" (field_expression "__val.shndx_" identifier . field_identifier) = (pointer_expression "*(uint *)(__last + 6)" * (cast_expression "(uint *)(__last + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__last + 6)" ( (binary_expression "__last + 6" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    r2 = __last + -7;\n    iVar1 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);\n    if (-1 < iVar1) break;\n    *__last = *r2;\n    __last[1] = __last[-6];\n    __last[2] = __last[-5];\n    __last[3] = __last[-4];\n    __last[4] = __last[-3];\n    __last[5] = __last[-2];\n    __last[6] = __last[-1];\n    __last = r2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    r2 = __last + -7;\n    iVar1 = gold::Output_reloc<9,_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);\n    if (-1 < iVar1) break;\n    *__last = *r2;\n    __last[1] = __last[-6];\n    __last[2] = __last[-5];\n    __last[3] = __last[-4];\n    __last[4] = __last[-3];\n    __last[5] = __last[-2];\n    __last[6] = __last[-1];\n    __last = r2;\n  }" { (expression_statement "r2 = __last + -7;" (assignment_expression "r2 = __last + -7" identifier = (binary_expression "__last + -7" identifier + number_literal)) ;) (ERROR "iVar1 = gold::" (assignment_expression "iVar1 = gold" identifier = identifier) : :) (expression_statement "Output_reloc<9,_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);" (comma_expression "Output_reloc<9,_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2)" identifier , (comma_expression "_64,_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2)" identifier , (binary_expression "_true>::compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2)" identifier > (ERROR "::" : :) (call_expression "compare\n                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2)" identifier (argument_list "(&__val,(Output_reloc<9,_true,_64,_true> *)r2)" ( (pointer_expression "&__val" & identifier) , (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)r2)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *)r2" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *)r2" identifier , (comma_expression "_64,_true> *)r2" identifier , (binary_expression "_true> *)r2" identifier > (pointer_expression "*)r2" * (ERROR ")" )) identifier))))) )) ))))))) ;) (if_statement "if (-1 < iVar1) break;" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "*__last = *r2;" (assignment_expression "*__last = *r2" (pointer_expression "*__last" * identifier) = (pointer_expression "*r2" * identifier)) ;) (expression_statement "__last[1] = __last[-6];" (assignment_expression "__last[1] = __last[-6]" (subscript_expression "__last[1]" identifier [ number_literal ]) = (subscript_expression "__last[-6]" identifier [ number_literal ])) ;) (expression_statement "__last[2] = __last[-5];" (assignment_expression "__last[2] = __last[-5]" (subscript_expression "__last[2]" identifier [ number_literal ]) = (subscript_expression "__last[-5]" identifier [ number_literal ])) ;) (expression_statement "__last[3] = __last[-4];" (assignment_expression "__last[3] = __last[-4]" (subscript_expression "__last[3]" identifier [ number_literal ]) = (subscript_expression "__last[-4]" identifier [ number_literal ])) ;) (expression_statement "__last[4] = __last[-3];" (assignment_expression "__last[4] = __last[-3]" (subscript_expression "__last[4]" identifier [ number_literal ]) = (subscript_expression "__last[-3]" identifier [ number_literal ])) ;) (expression_statement "__last[5] = __last[-2];" (assignment_expression "__last[5] = __last[-2]" (subscript_expression "__last[5]" identifier [ number_literal ]) = (subscript_expression "__last[-2]" identifier [ number_literal ])) ;) (expression_statement "__last[6] = __last[-1];" (assignment_expression "__last[6] = __last[-1]" (subscript_expression "__last[6]" identifier [ number_literal ]) = (subscript_expression "__last[-1]" identifier [ number_literal ])) ;) (expression_statement "__last = r2;" (assignment_expression "__last = r2" identifier = identifier) ;) })) (expression_statement "*__last = __val.u1_;" (assignment_expression "*__last = __val.u1_" (pointer_expression "*__last" * identifier) = (field_expression "__val.u1_" identifier . field_identifier)) ;) (expression_statement "__last[1] = (anon_union_4_4_c82d8563_for_u1_)__val.u2_;" (assignment_expression "__last[1] = (anon_union_4_4_c82d8563_for_u1_)__val.u2_" (subscript_expression "__last[1]" identifier [ number_literal ]) = (cast_expression "(anon_union_4_4_c82d8563_for_u1_)__val.u2_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val.u2_" identifier . field_identifier))) ;) (expression_statement "__last[2] = __val.address_._0_4_;" (assignment_expression "__last[2] = __val.address_._0_4_" (subscript_expression "__last[2]" identifier [ number_literal ]) = (field_expression "__val.address_._0_4_" (field_expression "__val.address_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__last[3] = __val.address_._4_4_;" (assignment_expression "__last[3] = __val.address_._4_4_" (subscript_expression "__last[3]" identifier [ number_literal ]) = (field_expression "__val.address_._4_4_" (field_expression "__val.address_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__last[4] = (anon_union_4_4_c82d8563_for_u1_)__val.local_sym_index_;" (assignment_expression "__last[4] = (anon_union_4_4_c82d8563_for_u1_)__val.local_sym_index_" (subscript_expression "__last[4]" identifier [ number_literal ]) = (cast_expression "(anon_union_4_4_c82d8563_for_u1_)__val.local_sym_index_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val.local_sym_index_" identifier . field_identifier))) ;) (expression_statement "__last[5] = (anon_union_4_4_c82d8563_for_u1_)__val._20_4_;" (assignment_expression "__last[5] = (anon_union_4_4_c82d8563_for_u1_)__val._20_4_" (subscript_expression "__last[5]" identifier [ number_literal ]) = (cast_expression "(anon_union_4_4_c82d8563_for_u1_)__val._20_4_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val._20_4_" identifier . field_identifier))) ;) (expression_statement "__last[6] = (anon_union_4_4_c82d8563_for_u1_)__val.shndx_;" (assignment_expression "__last[6] = (anon_union_4_4_c82d8563_for_u1_)__val.shndx_" (subscript_expression "__last[6]" identifier [ number_literal ]) = (cast_expression "(anon_union_4_4_c82d8563_for_u1_)__val.shndx_" ( (type_descriptor "anon_union_4_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val.shndx_" identifier . field_identifier))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001331d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}\n\n" (function_definition "void FUN_001331d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" primitive_type (function_declarator "FUN_001331d0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (expression_statement "local_28 = *param_1;" (assignment_expression "local_28 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_24 = param_1[1];" (assignment_expression "local_24 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_20 = param_1[2];" (assignment_expression "local_20 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "local_1c = param_1[3];" (assignment_expression "local_1c = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_18 = param_1[4];" (assignment_expression "local_18 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "local_14 = param_1[5];" (assignment_expression "local_14 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_10 = param_1[6];" (assignment_expression "local_10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" { (expression_statement "puVar2 = param_1 + -7;" (assignment_expression "puVar2 = param_1 + -7" identifier = (binary_expression "param_1 + -7" identifier + number_literal)) ;) (expression_statement "iVar1 = FUN_0012b8e0(&local_28,puVar2);" (assignment_expression "iVar1 = FUN_0012b8e0(&local_28,puVar2)" identifier = (call_expression "FUN_0012b8e0(&local_28,puVar2)" identifier (argument_list "(&local_28,puVar2)" ( (pointer_expression "&local_28" & identifier) , identifier )))) ;) (if_statement "if (-1 < iVar1) break;" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "*param_1 = *puVar2;" (assignment_expression "*param_1 = *puVar2" (pointer_expression "*param_1" * identifier) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "param_1[1] = param_1[-6];" (assignment_expression "param_1[1] = param_1[-6]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "param_1[-6]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = param_1[-5];" (assignment_expression "param_1[2] = param_1[-5]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "param_1[-5]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = param_1[-4];" (assignment_expression "param_1[3] = param_1[-4]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_1[-4]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = param_1[-3];" (assignment_expression "param_1[4] = param_1[-3]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_1[-3]" identifier [ number_literal ])) ;) (expression_statement "param_1[5] = param_1[-2];" (assignment_expression "param_1[5] = param_1[-2]" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (subscript_expression "param_1[-2]" identifier [ number_literal ])) ;) (expression_statement "param_1[6] = param_1[-1];" (assignment_expression "param_1[6] = param_1[-1]" (subscript_expression "param_1[6]" identifier [ number_literal ]) = (subscript_expression "param_1[-1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = puVar2;" (assignment_expression "param_1 = puVar2" identifier = identifier) ;) })) (expression_statement "*param_1 = local_28;" (assignment_expression "*param_1 = local_28" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_20;" (assignment_expression "param_1[2] = local_20" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_1c;" (assignment_expression "param_1[3] = local_1c" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_18;" (assignment_expression "param_1[4] = local_18" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_14;" (assignment_expression "param_1[5] = local_14" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = local_10;" (assignment_expression "param_1[6] = local_10" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_001331d0(undefined4 *param_1)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001331d0(undefined4 *param_1)" (identifier "FUN_001331d0") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  undefined4 local_18;\n  undefined4 local_14;\n  undefined4 local_10;\n  \n  local_28 = *param_1;\n  local_24 = param_1[1];\n  local_20 = param_1[2];\n  local_1c = param_1[3];\n  local_18 = param_1[4];\n  local_14 = param_1[5];\n  local_10 = param_1[6];\n  while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }\n  *param_1 = local_28;\n  param_1[1] = local_24;\n  param_1[2] = local_20;\n  param_1[3] = local_1c;\n  param_1[4] = local_18;\n  param_1[5] = local_14;\n  param_1[6] = local_10;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (expression_statement "local_28 = *param_1;" (assignment_expression "local_28 = *param_1" (identifier "local_28") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_24 = param_1[1];" (assignment_expression "local_24 = param_1[1]" (identifier "local_24") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_20 = param_1[2];" (assignment_expression "local_20 = param_1[2]" (identifier "local_20") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_1c = param_1[3];" (assignment_expression "local_1c = param_1[3]" (identifier "local_1c") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_18 = param_1[4];" (assignment_expression "local_18 = param_1[4]" (identifier "local_18") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_14 = param_1[5];" (assignment_expression "local_14 = param_1[5]" (identifier "local_14") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_10 = param_1[6];" (assignment_expression "local_10 = param_1[6]" (identifier "local_10") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (while_statement "while( true ) {\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    puVar2 = param_1 + -7;\n    iVar1 = FUN_0012b8e0(&local_28,puVar2);\n    if (-1 < iVar1) break;\n    *param_1 = *puVar2;\n    param_1[1] = param_1[-6];\n    param_1[2] = param_1[-5];\n    param_1[3] = param_1[-4];\n    param_1[4] = param_1[-3];\n    param_1[5] = param_1[-2];\n    param_1[6] = param_1[-1];\n    param_1 = puVar2;\n  }" ({ "{") (expression_statement "puVar2 = param_1 + -7;" (assignment_expression "puVar2 = param_1 + -7" (identifier "puVar2") (= "=") (binary_expression "param_1 + -7" (identifier "param_1") (+ "+") (number_literal "-7"))) (; ";")) (expression_statement "iVar1 = FUN_0012b8e0(&local_28,puVar2);" (assignment_expression "iVar1 = FUN_0012b8e0(&local_28,puVar2)" (identifier "iVar1") (= "=") (call_expression "FUN_0012b8e0(&local_28,puVar2)" (identifier "FUN_0012b8e0") (argument_list "(&local_28,puVar2)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (identifier "puVar2") () ")")))) (; ";")) (if_statement "if (-1 < iVar1) break;" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*param_1 = *puVar2;" (assignment_expression "*param_1 = *puVar2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "param_1[1] = param_1[-6];" (assignment_expression "param_1[1] = param_1[-6]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_1[-6]" (identifier "param_1") ([ "[") (number_literal "-6") (] "]"))) (; ";")) (expression_statement "param_1[2] = param_1[-5];" (assignment_expression "param_1[2] = param_1[-5]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_1[-5]" (identifier "param_1") ([ "[") (number_literal "-5") (] "]"))) (; ";")) (expression_statement "param_1[3] = param_1[-4];" (assignment_expression "param_1[3] = param_1[-4]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_1[-4]" (identifier "param_1") ([ "[") (number_literal "-4") (] "]"))) (; ";")) (expression_statement "param_1[4] = param_1[-3];" (assignment_expression "param_1[4] = param_1[-3]" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_1[-3]" (identifier "param_1") ([ "[") (number_literal "-3") (] "]"))) (; ";")) (expression_statement "param_1[5] = param_1[-2];" (assignment_expression "param_1[5] = param_1[-2]" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "param_1[-2]" (identifier "param_1") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "param_1[6] = param_1[-1];" (assignment_expression "param_1[6] = param_1[-1]" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "param_1[-1]" (identifier "param_1") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "param_1 = puVar2;" (assignment_expression "param_1 = puVar2" (identifier "param_1") (= "=") (identifier "puVar2")) (; ";")) (} "}"))) (expression_statement "*param_1 = local_28;" (assignment_expression "*param_1 = local_28" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "param_1[2] = local_20;" (assignment_expression "param_1[2] = local_20" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "param_1[3] = local_1c;" (assignment_expression "param_1[3] = local_1c" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_1c")) (; ";")) (expression_statement "param_1[4] = local_18;" (assignment_expression "param_1[4] = local_18" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_18")) (; ";")) (expression_statement "param_1[5] = local_14;" (assignment_expression "param_1[5] = local_14" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_14")) (; ";")) (expression_statement "param_1[6] = local_10;" (assignment_expression "param_1[6] = local_10" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */
/* DWARF original name: __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Output_reloc<9,
   true, 64, true>*, std::vector<gold::Output_reloc<9, true, 64, true>,
   std::allocator<gold::Output_reloc<9, true, 64, true> > > >,
   __gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9, true, 64,
   true>::Sort_relocs_comparison> > */

void std::
     __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::var_2<9,var_3,_64,var_3>*,_std::vector<gold::var_2<9,var_3,_64,var_3>,_std::allocator<gold::var_2<9,var_3,_64,var_3>_>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Output_data_reloc_base<9,var_3,_64,var_3>::Sort_relocs_comparison>_>
               (type_1 *var_1)

{
  int var_5;
  type_1 *r2;
  type_2 __val;
  
  __val.u1_ = *var_1;
  __val.u2_ = *(type_3 *)(var_1 + 1);
  __val.address_._0_4_ = var_1[2];
  __val.address_._4_4_ = var_1[3];
  __val.local_sym_index_ = *(type_4 *)(var_1 + 4);
  __val._20_4_ = var_1[5];
  __val.shndx_ = *(type_4 *)(var_1 + 6);
  while( true ) {
    r2 = var_1 + -7;
    var_5 = gold::var_2<9,var_3,_64,var_3>::var_4
                      (&__val,(var_2<9,var_3,_64,var_3> *)r2);
    if (-1 < var_5) break;
    *var_1 = *r2;
    var_1[1] = var_1[-6];
    var_1[2] = var_1[-5];
    var_1[3] = var_1[-4];
    var_1[4] = var_1[-3];
    var_1[5] = var_1[-2];
    var_1[6] = var_1[-1];
    var_1 = r2;
  }
  *var_1 = __val.u1_;
  var_1[1] = (type_1)__val.u2_;
  var_1[2] = __val.address_._0_4_;
  var_1[3] = __val.address_._4_4_;
  var_1[4] = (type_1)__val.local_sym_index_;
  var_1[5] = (type_1)__val._20_4_;
  var_1[6] = (type_1)__val.shndx_;
  return;
}


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

void MASKED(undefined4 *param_1)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  undefined4 local_18;
  undefined4 local_14;
  undefined4 local_10;
  
  local_28 = *param_1;
  local_24 = param_1[1];
  local_20 = param_1[2];
  local_1c = param_1[3];
  local_18 = param_1[4];
  local_14 = param_1[5];
  local_10 = param_1[6];
  while( true ) {
    puVar2 = param_1 + -7;
    iVar1 = FUN_0012b8e0(&local_28,puVar2);
    if (-1 < iVar1) break;
    *param_1 = *puVar2;
    param_1[1] = param_1[-6];
    param_1[2] = param_1[-5];
    param_1[3] = param_1[-4];
    param_1[4] = param_1[-3];
    param_1[5] = param_1[-2];
    param_1[6] = param_1[-1];
    param_1 = puVar2;
  }
  *param_1 = local_28;
  param_1[1] = local_24;
  param_1[2] = local_20;
  param_1[3] = local_1c;
  param_1[4] = local_18;
  param_1[5] = local_14;
  param_1[6] = local_10;
  return;
}

