
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* 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_8_4_c82d8563_for_u1_ *__last)

{
  int iVar1;
  anon_union_8_4_c82d8563_for_u1_ *r2;
  value_type __val;
  
  __val.u1_ = *__last;
  __val.u2_ = *(anon_union_8_2_238bdeaa_for_u2_ *)(__last + 1);
  __val.address_ = *(Address *)(__last + 2);
  __val._24_8_ = __last[3];
  __val._32_8_ = __last[4];
  r2 = __last + -5;
  while( true ) {
    iVar1 = gold::Output_reloc<9,_true,_64,_true>::compare
                      (&__val,(Output_reloc<9,_true,_64,_true> *)r2);
    if (-1 < iVar1) break;
    r2[5] = *r2;
    r2[6] = r2[1];
    r2[7] = r2[2];
    r2[8] = r2[3];
    *(uint *)(r2 + 9) = *(uint *)(r2 + 4);
    r2 = r2 + -5;
  }
  r2[5] = __val.u1_;
  r2[6] = (anon_union_8_4_c82d8563_for_u1_)__val.u2_;
  r2[7] = (anon_union_8_4_c82d8563_for_u1_)__val.address_;
  r2[8] = (anon_union_8_4_c82d8563_for_u1_)__val._24_8_;
  *(uint *)(r2 + 9) = __val.shndx_;
  return;
}



void FUN_002e91c0(undefined8 *param_1)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 local_48;
  undefined8 uStack_40;
  undefined8 local_38;
  undefined8 uStack_30;
  undefined8 local_28;
  
  local_48 = *param_1;
  uStack_40 = param_1[1];
  local_38 = param_1[2];
  uStack_30 = param_1[3];
  local_28 = param_1[4];
  puVar2 = param_1 + -5;
  while( true ) {
    iVar1 = FUN_003fc590(&local_48,puVar2);
    if (-1 < iVar1) break;
    puVar2[5] = *puVar2;
    puVar2[6] = puVar2[1];
    puVar2[7] = puVar2[2];
    puVar2[8] = puVar2[3];
    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);
    puVar2 = puVar2 + -5;
  }
  puVar2[5] = local_48;
  puVar2[6] = uStack_40;
  puVar2[7] = local_38;
  puVar2[8] = uStack_30;
  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;
  return;
}


PUSH R12
PUSH RBP
PUSH RBX
LEA RBX,[RDI + -0x28]
SUB RSP,0x30
MOVDQU XMM2,xmmword ptr [RDI]
MOVDQU XMM3,xmmword ptr [RDI + 0x10]
MOV RAX,qword ptr [RDI + 0x20]
MOV R12,RSP
MOVAPS xmmword ptr [RSP],XMM2
MOVAPS xmmword ptr [RSP + 0x10],XMM3
MOV qword ptr [RSP + 0x20],RAX
JMP 0x002e920b
MOVDQU XMM0,xmmword ptr [RBX]
MOVDQU XMM1,xmmword ptr [RBX + 0x10]
SUB RBX,0x28
MOV EAX,dword ptr [RBX + 0x48]
MOVUPS xmmword ptr [RBX + 0x50],XMM0
MOVUPS xmmword ptr [RBX + 0x60],XMM1
MOV dword ptr [RBX + 0x70],EAX
MOV RSI,RBX
MOV RDI,R12
LEA RBP,[RBX + 0x28]
CALL 0x003fc590
TEST EAX,EAX
JS 0x002e91f0
MOVDQA XMM4,xmmword ptr [RSP]
MOVDQA XMM5,xmmword ptr [RSP + 0x10]
MOV EAX,dword ptr [RSP + 0x20]
MOVUPS xmmword ptr [RBP],XMM4
MOVUPS xmmword ptr [RBP + 0x10],XMM5
MOV dword ptr [RBP + 0x20],EAX
ADD RSP,0x30
POP RBX
POP RBP
POP R12
RET
(translation_unit "void FUN_002e91c0(undefined8 *param_1)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}\n\n" (function_definition "void FUN_002e91c0(undefined8 *param_1)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" primitive_type (function_declarator "FUN_002e91c0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 uStack_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 uStack_30;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (expression_statement "local_48 = *param_1;" (assignment_expression "local_48 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uStack_40 = param_1[1];" (assignment_expression "uStack_40 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[2];" (assignment_expression "local_38 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uStack_30 = param_1[3];" (assignment_expression "uStack_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[4];" (assignment_expression "local_28 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = param_1 + -5;" (assignment_expression "puVar2 = param_1 + -5" identifier = (binary_expression "param_1 + -5" identifier + number_literal)) ;) (while_statement "while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" { (expression_statement "iVar1 = FUN_003fc590(&local_48,puVar2);" (assignment_expression "iVar1 = FUN_003fc590(&local_48,puVar2)" identifier = (call_expression "FUN_003fc590(&local_48,puVar2)" identifier (argument_list "(&local_48,puVar2)" ( (pointer_expression "&local_48" & 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 "puVar2[5] = *puVar2;" (assignment_expression "puVar2[5] = *puVar2" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2[6] = puVar2[1];" (assignment_expression "puVar2[6] = puVar2[1]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar2[2];" (assignment_expression "puVar2[7] = puVar2[2]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar2[3];" (assignment_expression "puVar2[8] = puVar2[3]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);" (assignment_expression "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4)" (pointer_expression "*(undefined4 *)(puVar2 + 9)" * (cast_expression "(undefined4 *)(puVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 9)" ( (binary_expression "puVar2 + 9" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar2 + 4)" * (cast_expression "(undefined4 *)(puVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = puVar2 + -5;" (assignment_expression "puVar2 = puVar2 + -5" identifier = (binary_expression "puVar2 + -5" identifier + number_literal)) ;) })) (expression_statement "puVar2[5] = local_48;" (assignment_expression "puVar2[5] = local_48" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[6] = uStack_40;" (assignment_expression "puVar2[6] = uStack_40" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[7] = local_38;" (assignment_expression "puVar2[7] = local_38" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[8] = uStack_30;" (assignment_expression "puVar2[8] = uStack_30" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28;" (assignment_expression "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28" (pointer_expression "*(undefined4 *)(puVar2 + 9)" * (cast_expression "(undefined4 *)(puVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 9)" ( (binary_expression "puVar2 + 9" identifier + number_literal) )))) = (cast_expression "(undefined4)local_28" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\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_8_4_c82d8563_for_u1_ *__last)\n\n{\n  int iVar1;\n  anon_union_8_4_c82d8563_for_u1_ *r2;\n  value_type __val;\n  \n  __val.u1_ = *__last;\n  __val.u2_ = *(anon_union_8_2_238bdeaa_for_u2_ *)(__last + 1);\n  __val.address_ = *(Address *)(__last + 2);\n  __val._24_8_ = __last[3];\n  __val._32_8_ = __last[4];\n  r2 = __last + -5;\n  while( true ) {\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    r2[5] = *r2;\n    r2[6] = r2[1];\n    r2[7] = r2[2];\n    r2[8] = r2[3];\n    *(uint *)(r2 + 9) = *(uint *)(r2 + 4);\n    r2 = r2 + -5;\n  }\n  r2[5] = __val.u1_;\n  r2[6] = (anon_union_8_4_c82d8563_for_u1_)__val.u2_;\n  r2[7] = (anon_union_8_4_c82d8563_for_u1_)__val.address_;\n  r2[8] = (anon_union_8_4_c82d8563_for_u1_)__val._24_8_;\n  *(uint *)(r2 + 9) = __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_8_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_8_4_c82d8563_for_u1_ *__last)\n\n{\n  int" identifier > : : identifier > (function_declarator "_>\n               (anon_union_8_4_c82d8563_for_u1_ *__last)" identifier (ERROR ">" >) (parameter_list "(anon_union_8_4_c82d8563_for_u1_ *__last)" ( (parameter_declaration "anon_union_8_4_c82d8563_for_u1_ *__last" type_identifier (pointer_declarator "*__last" * identifier)) ))) { primitive_type) identifier ;) (declaration "anon_union_8_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_8_2_238bdeaa_for_u2_ *)(__last + 1);" (assignment_expression "__val.u2_ = *(anon_union_8_2_238bdeaa_for_u2_ *)(__last + 1)" (field_expression "__val.u2_" identifier . field_identifier) = (pointer_expression "*(anon_union_8_2_238bdeaa_for_u2_ *)(__last + 1)" * (cast_expression "(anon_union_8_2_238bdeaa_for_u2_ *)(__last + 1)" ( (type_descriptor "anon_union_8_2_238bdeaa_for_u2_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__last + 1)" ( (binary_expression "__last + 1" identifier + number_literal) ))))) ;) (expression_statement "__val.address_ = *(Address *)(__last + 2);" (assignment_expression "__val.address_ = *(Address *)(__last + 2)" (field_expression "__val.address_" identifier . field_identifier) = (pointer_expression "*(Address *)(__last + 2)" * (cast_expression "(Address *)(__last + 2)" ( (type_descriptor "Address *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__last + 2)" ( (binary_expression "__last + 2" identifier + number_literal) ))))) ;) (expression_statement "__val._24_8_ = __last[3];" (assignment_expression "__val._24_8_ = __last[3]" (field_expression "__val._24_8_" identifier . field_identifier) = (subscript_expression "__last[3]" identifier [ number_literal ])) ;) (expression_statement "__val._32_8_ = __last[4];" (assignment_expression "__val._32_8_ = __last[4]" (field_expression "__val._32_8_" identifier . field_identifier) = (subscript_expression "__last[4]" identifier [ number_literal ])) ;) (expression_statement "r2 = __last + -5;" (assignment_expression "r2 = __last + -5" identifier = (binary_expression "__last + -5" identifier + number_literal)) ;) (while_statement "while( true ) {\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    r2[5] = *r2;\n    r2[6] = r2[1];\n    r2[7] = r2[2];\n    r2[8] = r2[3];\n    *(uint *)(r2 + 9) = *(uint *)(r2 + 4);\n    r2 = r2 + -5;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\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    r2[5] = *r2;\n    r2[6] = r2[1];\n    r2[7] = r2[2];\n    r2[8] = r2[3];\n    *(uint *)(r2 + 9) = *(uint *)(r2 + 4);\n    r2 = r2 + -5;\n  }" { (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 "r2[5] = *r2;" (assignment_expression "r2[5] = *r2" (subscript_expression "r2[5]" identifier [ number_literal ]) = (pointer_expression "*r2" * identifier)) ;) (expression_statement "r2[6] = r2[1];" (assignment_expression "r2[6] = r2[1]" (subscript_expression "r2[6]" identifier [ number_literal ]) = (subscript_expression "r2[1]" identifier [ number_literal ])) ;) (expression_statement "r2[7] = r2[2];" (assignment_expression "r2[7] = r2[2]" (subscript_expression "r2[7]" identifier [ number_literal ]) = (subscript_expression "r2[2]" identifier [ number_literal ])) ;) (expression_statement "r2[8] = r2[3];" (assignment_expression "r2[8] = r2[3]" (subscript_expression "r2[8]" identifier [ number_literal ]) = (subscript_expression "r2[3]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)(r2 + 9) = *(uint *)(r2 + 4);" (assignment_expression "*(uint *)(r2 + 9) = *(uint *)(r2 + 4)" (pointer_expression "*(uint *)(r2 + 9)" * (cast_expression "(uint *)(r2 + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(r2 + 9)" ( (binary_expression "r2 + 9" identifier + number_literal) )))) = (pointer_expression "*(uint *)(r2 + 4)" * (cast_expression "(uint *)(r2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(r2 + 4)" ( (binary_expression "r2 + 4" identifier + number_literal) ))))) ;) (expression_statement "r2 = r2 + -5;" (assignment_expression "r2 = r2 + -5" identifier = (binary_expression "r2 + -5" identifier + number_literal)) ;) })) (expression_statement "r2[5] = __val.u1_;" (assignment_expression "r2[5] = __val.u1_" (subscript_expression "r2[5]" identifier [ number_literal ]) = (field_expression "__val.u1_" identifier . field_identifier)) ;) (expression_statement "r2[6] = (anon_union_8_4_c82d8563_for_u1_)__val.u2_;" (assignment_expression "r2[6] = (anon_union_8_4_c82d8563_for_u1_)__val.u2_" (subscript_expression "r2[6]" identifier [ number_literal ]) = (cast_expression "(anon_union_8_4_c82d8563_for_u1_)__val.u2_" ( (type_descriptor "anon_union_8_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val.u2_" identifier . field_identifier))) ;) (expression_statement "r2[7] = (anon_union_8_4_c82d8563_for_u1_)__val.address_;" (assignment_expression "r2[7] = (anon_union_8_4_c82d8563_for_u1_)__val.address_" (subscript_expression "r2[7]" identifier [ number_literal ]) = (cast_expression "(anon_union_8_4_c82d8563_for_u1_)__val.address_" ( (type_descriptor "anon_union_8_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val.address_" identifier . field_identifier))) ;) (expression_statement "r2[8] = (anon_union_8_4_c82d8563_for_u1_)__val._24_8_;" (assignment_expression "r2[8] = (anon_union_8_4_c82d8563_for_u1_)__val._24_8_" (subscript_expression "r2[8]" identifier [ number_literal ]) = (cast_expression "(anon_union_8_4_c82d8563_for_u1_)__val._24_8_" ( (type_descriptor "anon_union_8_4_c82d8563_for_u1_" type_identifier) ) (field_expression "__val._24_8_" identifier . field_identifier))) ;) (expression_statement "*(uint *)(r2 + 9) = __val.shndx_;" (assignment_expression "*(uint *)(r2 + 9) = __val.shndx_" (pointer_expression "*(uint *)(r2 + 9)" * (cast_expression "(uint *)(r2 + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(r2 + 9)" ( (binary_expression "r2 + 9" identifier + number_literal) )))) = (field_expression "__val.shndx_" identifier . field_identifier)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_002e91c0(undefined8 *param_1)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}\n\n" (function_definition "void FUN_002e91c0(undefined8 *param_1)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" primitive_type (function_declarator "FUN_002e91c0(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined8 local_48;" type_identifier identifier ;) (declaration "undefined8 uStack_40;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined8 uStack_30;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (expression_statement "local_48 = *param_1;" (assignment_expression "local_48 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uStack_40 = param_1[1];" (assignment_expression "uStack_40 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_38 = param_1[2];" (assignment_expression "local_38 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uStack_30 = param_1[3];" (assignment_expression "uStack_30 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[4];" (assignment_expression "local_28 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = param_1 + -5;" (assignment_expression "puVar2 = param_1 + -5" identifier = (binary_expression "param_1 + -5" identifier + number_literal)) ;) (while_statement "while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" { (expression_statement "iVar1 = FUN_003fc590(&local_48,puVar2);" (assignment_expression "iVar1 = FUN_003fc590(&local_48,puVar2)" identifier = (call_expression "FUN_003fc590(&local_48,puVar2)" identifier (argument_list "(&local_48,puVar2)" ( (pointer_expression "&local_48" & 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 "puVar2[5] = *puVar2;" (assignment_expression "puVar2[5] = *puVar2" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2[6] = puVar2[1];" (assignment_expression "puVar2[6] = puVar2[1]" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[7] = puVar2[2];" (assignment_expression "puVar2[7] = puVar2[2]" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "puVar2[8] = puVar2[3];" (assignment_expression "puVar2[8] = puVar2[3]" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);" (assignment_expression "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4)" (pointer_expression "*(undefined4 *)(puVar2 + 9)" * (cast_expression "(undefined4 *)(puVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 9)" ( (binary_expression "puVar2 + 9" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar2 + 4)" * (cast_expression "(undefined4 *)(puVar2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = puVar2 + -5;" (assignment_expression "puVar2 = puVar2 + -5" identifier = (binary_expression "puVar2 + -5" identifier + number_literal)) ;) })) (expression_statement "puVar2[5] = local_48;" (assignment_expression "puVar2[5] = local_48" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[6] = uStack_40;" (assignment_expression "puVar2[6] = uStack_40" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[7] = local_38;" (assignment_expression "puVar2[7] = local_38" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[8] = uStack_30;" (assignment_expression "puVar2[8] = uStack_30" (subscript_expression "puVar2[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28;" (assignment_expression "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28" (pointer_expression "*(undefined4 *)(puVar2 + 9)" * (cast_expression "(undefined4 *)(puVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 9)" ( (binary_expression "puVar2 + 9" identifier + number_literal) )))) = (cast_expression "(undefined4)local_28" ( (type_descriptor "undefined4" type_identifier) ) 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 ;) (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 = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_002e91c0(undefined8 *param_1)\n\n{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002e91c0(undefined8 *param_1)" (identifier "FUN_002e91c0") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 *puVar2;\n  undefined8 local_48;\n  undefined8 uStack_40;\n  undefined8 local_38;\n  undefined8 uStack_30;\n  undefined8 local_28;\n  \n  local_48 = *param_1;\n  uStack_40 = param_1[1];\n  local_38 = param_1[2];\n  uStack_30 = param_1[3];\n  local_28 = param_1[4];\n  puVar2 = param_1 + -5;\n  while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }\n  puVar2[5] = local_48;\n  puVar2[6] = uStack_40;\n  puVar2[7] = local_38;\n  puVar2[8] = uStack_30;\n  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined8 local_48;" (type_identifier "undefined8") (identifier "local_48") (; ";")) (declaration "undefined8 uStack_40;" (type_identifier "undefined8") (identifier "uStack_40") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "undefined8 uStack_30;" (type_identifier "undefined8") (identifier "uStack_30") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (expression_statement "local_48 = *param_1;" (assignment_expression "local_48 = *param_1" (identifier "local_48") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uStack_40 = param_1[1];" (assignment_expression "uStack_40 = param_1[1]" (identifier "uStack_40") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_38 = param_1[2];" (assignment_expression "local_38 = param_1[2]" (identifier "local_38") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uStack_30 = param_1[3];" (assignment_expression "uStack_30 = param_1[3]" (identifier "uStack_30") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_28 = param_1[4];" (assignment_expression "local_28 = param_1[4]" (identifier "local_28") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar2 = param_1 + -5;" (assignment_expression "puVar2 = param_1 + -5" (identifier "puVar2") (= "=") (binary_expression "param_1 + -5" (identifier "param_1") (+ "+") (number_literal "-5"))) (; ";")) (while_statement "while( true ) {\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar1 = FUN_003fc590(&local_48,puVar2);\n    if (-1 < iVar1) break;\n    puVar2[5] = *puVar2;\n    puVar2[6] = puVar2[1];\n    puVar2[7] = puVar2[2];\n    puVar2[8] = puVar2[3];\n    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);\n    puVar2 = puVar2 + -5;\n  }" ({ "{") (expression_statement "iVar1 = FUN_003fc590(&local_48,puVar2);" (assignment_expression "iVar1 = FUN_003fc590(&local_48,puVar2)" (identifier "iVar1") (= "=") (call_expression "FUN_003fc590(&local_48,puVar2)" (identifier "FUN_003fc590") (argument_list "(&local_48,puVar2)" (( "(") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (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 "puVar2[5] = *puVar2;" (assignment_expression "puVar2[5] = *puVar2" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "puVar2[6] = puVar2[1];" (assignment_expression "puVar2[6] = puVar2[1]" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2[7] = puVar2[2];" (assignment_expression "puVar2[7] = puVar2[2]" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar2[8] = puVar2[3];" (assignment_expression "puVar2[8] = puVar2[3]" (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);" (assignment_expression "*(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4)" (pointer_expression "*(undefined4 *)(puVar2 + 9)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 9)" (( "(") (binary_expression "puVar2 + 9" (identifier "puVar2") (+ "+") (number_literal "9")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar2 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar2 = puVar2 + -5;" (assignment_expression "puVar2 = puVar2 + -5" (identifier "puVar2") (= "=") (binary_expression "puVar2 + -5" (identifier "puVar2") (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "puVar2[5] = local_48;" (assignment_expression "puVar2[5] = local_48" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "puVar2[6] = uStack_40;" (assignment_expression "puVar2[6] = uStack_40" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_40")) (; ";")) (expression_statement "puVar2[7] = local_38;" (assignment_expression "puVar2[7] = local_38" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar2[8] = uStack_30;" (assignment_expression "puVar2[8] = uStack_30" (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uStack_30")) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28;" (assignment_expression "*(undefined4 *)(puVar2 + 9) = (undefined4)local_28" (pointer_expression "*(undefined4 *)(puVar2 + 9)" (* "*") (cast_expression "(undefined4 *)(puVar2 + 9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 9)" (( "(") (binary_expression "puVar2 + 9" (identifier "puVar2") (+ "+") (number_literal "9")) () ")")))) (= "=") (cast_expression "(undefined4)local_28" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "local_28"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* 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 *var_6;
  type_2 __val;
  
  __val.u1_ = *var_1;
  __val.u2_ = *(type_3 *)(var_1 + 1);
  __val.address_ = *(type_4 *)(var_1 + 2);
  __val._24_8_ = var_1[3];
  __val._32_8_ = var_1[4];
  var_6 = var_1 + -5;
  while( true ) {
    var_5 = gold::var_2<9,var_3,_64,var_3>::var_4
                      (&__val,(var_2<9,var_3,_64,var_3> *)var_6);
    if (-1 < var_5) break;
    var_6[5] = *var_6;
    var_6[6] = var_6[1];
    var_6[7] = var_6[2];
    var_6[8] = var_6[3];
    *(type_5 *)(var_6 + 9) = *(type_5 *)(var_6 + 4);
    var_6 = var_6 + -5;
  }
  var_6[5] = __val.u1_;
  var_6[6] = (type_1)__val.u2_;
  var_6[7] = (type_1)__val.address_;
  var_6[8] = (type_1)__val._24_8_;
  *(type_5 *)(var_6 + 9) = __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)) (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: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (return_statement))))

void MASKED(undefined8 *param_1)

{
  int iVar1;
  undefined8 *puVar2;
  undefined8 local_48;
  undefined8 uStack_40;
  undefined8 local_38;
  undefined8 uStack_30;
  undefined8 local_28;
  
  local_48 = *param_1;
  uStack_40 = param_1[1];
  local_38 = param_1[2];
  uStack_30 = param_1[3];
  local_28 = param_1[4];
  puVar2 = param_1 + -5;
  while( true ) {
    iVar1 = FUN_003fc590(&local_48,puVar2);
    if (-1 < iVar1) break;
    puVar2[5] = *puVar2;
    puVar2[6] = puVar2[1];
    puVar2[7] = puVar2[2];
    puVar2[8] = puVar2[3];
    *(undefined4 *)(puVar2 + 9) = *(undefined4 *)(puVar2 + 4);
    puVar2 = puVar2 + -5;
  }
  puVar2[5] = local_48;
  puVar2[6] = uStack_40;
  puVar2[7] = local_38;
  puVar2[8] = uStack_30;
  *(undefined4 *)(puVar2 + 9) = (undefined4)local_28;
  return;
}

