
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void
   reserve(vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> * this, size_type
   __n) */

void __thiscall
std::vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>::reserve
          (vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)

{
  pointer pSVar1;
  File_view *this_00;
  bool bVar2;
  undefined2 uVar3;
  pointer pSVar4;
  pointer pSVar5;
  pointer pSVar6;
  int iVar7;
  pointer pSVar8;
  int in_stack_ffffffb8;
  pointer local_30;
  pointer local_2c;
  
  if (0x9249249 < __n) {
                    /* WARNING: Subroutine does not return */
    __throw_length_error("vector::reserve");
  }
  pSVar6 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).
           _M_impl._M_start;
  if ((uint)(((int)(this->
                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).
                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249) < __n) {
    pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)
             ._M_impl._M_finish;
    iVar7 = (int)pSVar1 - (int)pSVar6;
    if (__n == 0) {
      local_30 = (pointer)0x0;
      pSVar5 = local_30;
      local_2c = pSVar1;
      pSVar8 = pSVar6;
      if (pSVar6 != pSVar1) goto LAB_0015a780;
    }
    else {
      pSVar4 = (pointer)operator_new(__n * 0x1c);
      pSVar8 = (this->
               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).
               _M_impl._M_start;
      local_2c = (this->
                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).
                 _M_impl._M_finish;
      local_30 = pSVar4;
      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {
LAB_0015a780:
        pSVar4 = pSVar5 + 1;
        pSVar5->reloc_shndx = pSVar6->reloc_shndx;
        pSVar5->data_shndx = pSVar6->data_shndx;
        pSVar5->contents = pSVar6->contents;
        pSVar5->sh_type = pSVar6->sh_type;
        pSVar5->reloc_count = pSVar6->reloc_count;
        pSVar5->output_section = pSVar6->output_section;
        bVar2 = pSVar6->is_data_section_allocated;
        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;
        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;
        pSVar5->is_data_section_allocated = bVar2;
        *(undefined2 *)&pSVar5->field_0x1a = uVar3;
      }
      pSVar6 = pSVar8;
      if (local_2c != pSVar8) {
        do {
          this_00 = pSVar8->contents;
          if (this_00 != (File_view *)0x0) {
            gold::File_view::~File_view(this_00,in_stack_ffffffb8);
            in_stack_ffffffb8 = 0xc;
            operator_delete(this_00,0xc);
          }
          pSVar8 = pSVar8 + 1;
        } while (pSVar8 != local_2c);
        pSVar6 = (this->
                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).
                 _M_impl._M_start;
      }
    }
    if (pSVar6 != (pointer)0x0) {
      operator_delete(pSVar6);
    }
    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.
    _M_start = local_30;
    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.
    _M_finish = (pointer)(iVar7 + (int)local_30);
    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.
    _M_end_of_storage = local_30 + __n;
    return;
  }
  return;
}



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

void FUN_0015a6f0(int *param_1,uint param_2)

{
  undefined4 *puVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *local_30;
  undefined4 *local_2c;
  
  if (0x9249249 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_00242a10("vector::reserve");
  }
  puVar5 = (undefined4 *)*param_1;
  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {
    puVar1 = (undefined4 *)param_1[1];
    iVar6 = (int)puVar1 - (int)puVar5;
    if (param_2 == 0) {
      local_30 = (undefined4 *)0x0;
      puVar4 = local_30;
      local_2c = puVar1;
      puVar7 = puVar5;
      if (puVar5 != puVar1) goto LAB_0015a780;
    }
    else {
      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);
      puVar7 = (undefined4 *)*param_1;
      local_2c = (undefined4 *)param_1[1];
      local_30 = puVar3;
      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {
LAB_0015a780:
        puVar3 = puVar4 + 7;
        *puVar4 = *puVar5;
        puVar4[1] = puVar5[1];
        puVar4[2] = puVar5[2];
        puVar4[3] = puVar5[3];
        puVar4[4] = puVar5[4];
        puVar4[5] = puVar5[5];
        puVar4[6] = puVar5[6];
      }
      puVar5 = puVar7;
      if (local_2c != puVar7) {
        do {
          iVar2 = puVar7[2];
          if (iVar2 != 0) {
            FUN_000740c0(iVar2);
            FUN_001fd000(iVar2,0xc);
          }
          puVar7 = puVar7 + 7;
        } while (puVar7 != local_2c);
        puVar5 = (undefined4 *)*param_1;
      }
    }
    if (puVar5 != (undefined4 *)0x0) {
      FUN_001fd020(puVar5);
    }
    *param_1 = (int)local_30;
    param_1[1] = iVar6 + (int)local_30;
    param_1[2] = (int)(local_30 + param_2 * 7);
    return;
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00036db0
ADD EBX,0x24f907
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x44]
MOV EBP,dword ptr [ESP + 0x40]
CMP EAX,0x9249249
JA 0x0015a840
MOV ESI,dword ptr [EBP]
MOV ECX,dword ptr [EBP + 0x8]
SUB ECX,ESI
SAR ECX,0x2
IMUL ECX,ECX,-0x49249249
CMP EAX,ECX
JA 0x0015a738
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,dword ptr [EBP + 0x4]
MOV EDI,ECX
SUB EDI,ESI
MOV dword ptr [ESP + 0x14],EDI
IMUL EDI,EAX,0x1c
MOV dword ptr [ESP + 0x18],EDI
TEST EAX,EAX
JZ 0x0015a828
MOV dword ptr [ESP + 0x1c],ECX
SUB ESP,0xc
PUSH EDI
CALL 0x001fb470
MOV EDI,dword ptr [EBP]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x1c]
CMP ESI,ECX
JZ 0x0015a7b3
MOV EAX,dword ptr [ESP + 0xc]
LEA ESI,[ESI]
MOV EDX,dword ptr [ESI]
ADD ESI,0x1c
ADD EAX,0x1c
MOV dword ptr [EAX + -0x1c],EDX
MOV EDX,dword ptr [ESI + -0x18]
MOV dword ptr [EAX + -0x18],EDX
MOV EDX,dword ptr [ESI + -0x14]
MOV dword ptr [EAX + -0x14],EDX
MOV EDX,dword ptr [ESI + -0x10]
MOV dword ptr [EAX + -0x10],EDX
MOV EDX,dword ptr [ESI + -0xc]
MOV dword ptr [EAX + -0xc],EDX
MOV EDX,dword ptr [ESI + -0x8]
MOV dword ptr [EAX + -0x8],EDX
MOV EDX,dword ptr [ESI + -0x4]
MOV dword ptr [EAX + -0x4],EDX
CMP ECX,ESI
JNZ 0x0015a780
CMP dword ptr [ESP + 0x10],EDI
JZ 0x0015a7f3
MOV dword ptr [ESP + 0x40],EBP
MOV ESI,dword ptr [ESP + 0x10]
LEA ESI,[ESI]
MOV EBP,dword ptr [EDI + 0x8]
TEST EBP,EBP
JZ 0x0015a7e5
SUB ESP,0xc
PUSH EBP
CALL 0x000740c0
POP EAX
POP EDX
PUSH 0xc
PUSH EBP
CALL 0x001fd000
ADD ESP,0x10
ADD EDI,0x1c
CMP EDI,ESI
JNZ 0x0015a7c8
MOV EBP,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [EBP]
TEST EDI,EDI
JZ 0x0015a803
SUB ESP,0xc
PUSH EDI
CALL 0x001fd020
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,EBX
MOV dword ptr [EBP],EBX
MOV dword ptr [EBP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD EAX,EBX
MOV dword ptr [EBP + 0x8],EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,ESI
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0xc],0x0
CMP ESI,ECX
JNZ 0x0015a778
JMP 0x0015a7f3
SUB ESP,0xc
LEA EAX,[EBX + 0xffef57c7]
PUSH EAX
CALL 0x00242a10
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0015a6f0(int *param_1,uint param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0015a6f0(int *param_1,uint param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0015a6f0(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (0x9249249 < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00242a10("vector::reserve");\n  }" if (parenthesized_expression "(0x9249249 < param_2)" ( (binary_expression "0x9249249 < param_2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00242a10("vector::reserve");\n  }" { comment (expression_statement "FUN_00242a10("vector::reserve");" (call_expression "FUN_00242a10("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" if (parenthesized_expression "((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2)" ( (binary_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2" (call_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" ( (binary_expression "(param_1[2] - (int)puVar5 >> 2) * -0x49249249" (parenthesized_expression "(param_1[2] - (int)puVar5 >> 2)" ( (binary_expression "param_1[2] - (int)puVar5 >> 2" (binary_expression "param_1[2] - (int)puVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" { (expression_statement "puVar1 = (undefined4 *)param_1[1];" (assignment_expression "puVar1 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = (int)puVar1 - (int)puVar5;" (assignment_expression "iVar6 = (int)puVar1 - (int)puVar5" identifier = (binary_expression "(int)puVar1 - (int)puVar5" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }" { (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (expression_statement "local_2c = puVar1;" (assignment_expression "local_2c = puVar1" identifier = identifier) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5 != puVar1) goto LAB_0015a780;" if (parenthesized_expression "(puVar5 != puVar1)" ( (binary_expression "puVar5 != puVar1" identifier != identifier) )) (goto_statement "goto LAB_0015a780;" goto statement_identifier ;)) }) (else_clause "else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" else (compound_statement "{\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" { (expression_statement "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c)" identifier = (cast_expression "(undefined4 *)FUN_001fb470(param_2 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fb470(param_2 * 0x1c)" identifier (argument_list "(param_2 * 0x1c)" ( (binary_expression "param_2 * 0x1c" identifier * number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)*param_1;" (assignment_expression "puVar7 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_2c = (undefined4 *)param_1[1];" (assignment_expression "local_2c = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_30 = puVar3;" (assignment_expression "local_30 = puVar3" identifier = identifier) ;) (for_statement "for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" for ( ; (comma_expression "puVar4 = puVar3, puVar5 != puVar1" (assignment_expression "puVar4 = puVar3" identifier = identifier) , (binary_expression "puVar5 != puVar1" identifier != identifier)) ; (assignment_expression "puVar5 = puVar5 + 7" identifier = (binary_expression "puVar5 + 7" identifier + number_literal)) ) (compound_statement "{\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" { (labeled_statement "LAB_0015a780:\n        puVar3 = puVar4 + 7;" statement_identifier : (expression_statement "puVar3 = puVar4 + 7;" (assignment_expression "puVar3 = puVar4 + 7" identifier = (binary_expression "puVar4 + 7" identifier + number_literal)) ;)) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar4[1] = puVar5[1];" (assignment_expression "puVar4[1] = puVar5[1]" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = puVar5[2];" (assignment_expression "puVar4[2] = puVar5[2]" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[3] = puVar5[3];" (assignment_expression "puVar4[3] = puVar5[3]" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = puVar5[4];" (assignment_expression "puVar4[4] = puVar5[4]" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[5] = puVar5[5];" (assignment_expression "puVar4[5] = puVar5[5]" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[6] = puVar5[6];" (assignment_expression "puVar4[6] = puVar5[6]" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) })) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) (if_statement "if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" if (parenthesized_expression "(local_2c != puVar7)" ( (binary_expression "local_2c != puVar7" identifier != identifier) )) (compound_statement "{\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" { (do_statement "do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);" do (compound_statement "{\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        }" { (expression_statement "iVar2 = puVar7[2];" (assignment_expression "iVar2 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" { (expression_statement "FUN_000740c0(iVar2);" (call_expression "FUN_000740c0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "FUN_001fd000(iVar2,0xc);" (call_expression "FUN_001fd000(iVar2,0xc)" identifier (argument_list "(iVar2,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "puVar7 = puVar7 + 7;" (assignment_expression "puVar7 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != local_2c)" ( (binary_expression "puVar7 != local_2c" identifier != identifier) )) ;) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) }))) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001fd020(puVar5);\n    }" { (expression_statement "FUN_001fd020(puVar5);" (call_expression "FUN_001fd020(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) })) (expression_statement "*param_1 = (int)local_30;" (assignment_expression "*param_1 = (int)local_30" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[1] = iVar6 + (int)local_30;" (assignment_expression "param_1[1] = iVar6 + (int)local_30" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar6 + (int)local_30" identifier + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[2] = (int)(local_30 + param_2 * 7);" (assignment_expression "param_1[2] = (int)(local_30 + param_2 * 7)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(local_30 + param_2 * 7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_30 + param_2 * 7)" ( (binary_expression "local_30 + param_2 * 7" identifier + (binary_expression "param_2 * 7" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void\n   reserve(vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> * this, size_type\n   __n) */\n\nvoid __thiscall\nstd::vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>::reserve\n          (vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)\n\n{\n  pointer pSVar1;\n  File_view *this_00;\n  bool bVar2;\n  undefined2 uVar3;\n  pointer pSVar4;\n  pointer pSVar5;\n  pointer pSVar6;\n  int iVar7;\n  pointer pSVar8;\n  int in_stack_ffffffb8;\n  pointer local_30;\n  pointer local_2c;\n  \n  if (0x9249249 < __n) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("vector::reserve");\n  }\n  pSVar6 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n           _M_impl._M_start;\n  if ((uint)(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249) < __n) {\n    pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish;\n    iVar7 = (int)pSVar1 - (int)pSVar6;\n    if (__n == 0) {\n      local_30 = (pointer)0x0;\n      pSVar5 = local_30;\n      local_2c = pSVar1;\n      pSVar8 = pSVar6;\n      if (pSVar6 != pSVar1) goto LAB_0015a780;\n    }\n    else {\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }\n    if (pSVar6 != (pointer)0x0) {\n      operator_delete(pSVar6);\n    }\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start = local_30;\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish = (pointer)(iVar7 + (int)local_30);\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage = local_30 + __n;\n    return;\n  }\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nstd::vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>::reserve\n          (vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)\n\n{\n  pointer pSVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "_std::allocator<gold::Section_relocs>_>::reserve\n          (vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)\n\n{\n  pointer" identifier : : identifier < identifier : : identifier > identifier > : : (function_declarator "reserve\n          (vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)" identifier (parameter_list "(vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> *this,size_type __n)" ( (parameter_declaration "vector<gold::Section_relocs" type_identifier (ERROR "<gold::" < identifier : :) identifier) , (parameter_declaration "_std::allocator<gold::Section_relocs>_> *this" type_identifier (ERROR "::allocator<gold::Section_relocs>_>" : : identifier < identifier : : identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "size_type __n" type_identifier identifier) ))) { identifier) identifier ;) (declaration "File_view *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined2 uVar3;" type_identifier identifier ;) (declaration "pointer pSVar4;" type_identifier identifier ;) (declaration "pointer pSVar5;" type_identifier identifier ;) (declaration "pointer pSVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "pointer pSVar8;" type_identifier identifier ;) (declaration "int in_stack_ffffffb8;" primitive_type identifier ;) (declaration "pointer local_30;" type_identifier identifier ;) (declaration "pointer local_2c;" type_identifier identifier ;) (if_statement "if (0x9249249 < __n) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("vector::reserve");\n  }" if (parenthesized_expression "(0x9249249 < __n)" ( (binary_expression "0x9249249 < __n" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("vector::reserve");\n  }" { comment (expression_statement "__throw_length_error("vector::reserve");" (call_expression "__throw_length_error("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "pSVar6 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n           _M_impl._M_start;" (assignment_expression "pSVar6 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n           _M_impl._M_start" identifier = (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n           _M_impl._M_start" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n           _M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((uint)(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249) < __n) {\n    pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish;\n    iVar7 = (int)pSVar1 - (int)pSVar6;\n    if (__n == 0) {\n      local_30 = (pointer)0x0;\n      pSVar5 = local_30;\n      local_2c = pSVar1;\n      pSVar8 = pSVar6;\n      if (pSVar6 != pSVar1) goto LAB_0015a780;\n    }\n    else {\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }\n    if (pSVar6 != (pointer)0x0) {\n      operator_delete(pSVar6);\n    }\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start = local_30;\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish = (pointer)(iVar7 + (int)local_30);\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage = local_30 + __n;\n    return;\n  }" if (parenthesized_expression "((uint)(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249) < __n)" ( (binary_expression "(uint)(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249) < __n" (call_expression "(uint)(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249)" ( (binary_expression "((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2) * -0x49249249" (parenthesized_expression "((int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2)" ( (binary_expression "(int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6 >> 2" (binary_expression "(int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage - (int)pSVar6" (cast_expression "(int)(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl._M_end_of_storage" (field_expression "(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                   _M_impl" (parenthesized_expression "(this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->\n                   super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->\n                   super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->\n                   super__Vector_base<gold" (field_expression "this->\n                   super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(int)pSVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish;\n    iVar7 = (int)pSVar1 - (int)pSVar6;\n    if (__n == 0) {\n      local_30 = (pointer)0x0;\n      pSVar5 = local_30;\n      local_2c = pSVar1;\n      pSVar8 = pSVar6;\n      if (pSVar6 != pSVar1) goto LAB_0015a780;\n    }\n    else {\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }\n    if (pSVar6 != (pointer)0x0) {\n      operator_delete(pSVar6);\n    }\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start = local_30;\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish = (pointer)(iVar7 + (int)local_30);\n    (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage = local_30 + __n;\n    return;\n  }" { (expression_statement "pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish;" (assignment_expression "pSVar1 = (this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish" identifier = (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl._M_finish" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)\n             ._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "iVar7 = (int)pSVar1 - (int)pSVar6;" (assignment_expression "iVar7 = (int)pSVar1 - (int)pSVar6" identifier = (binary_expression "(int)pSVar1 - (int)pSVar6" (cast_expression "(int)pSVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (__n == 0) {\n      local_30 = (pointer)0x0;\n      pSVar5 = local_30;\n      local_2c = pSVar1;\n      pSVar8 = pSVar6;\n      if (pSVar6 != pSVar1) goto LAB_0015a780;\n    }\n    else {\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (compound_statement "{\n      local_30 = (pointer)0x0;\n      pSVar5 = local_30;\n      local_2c = pSVar1;\n      pSVar8 = pSVar6;\n      if (pSVar6 != pSVar1) goto LAB_0015a780;\n    }" { (expression_statement "local_30 = (pointer)0x0;" (assignment_expression "local_30 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pSVar5 = local_30;" (assignment_expression "pSVar5 = local_30" identifier = identifier) ;) (expression_statement "local_2c = pSVar1;" (assignment_expression "local_2c = pSVar1" identifier = identifier) ;) (expression_statement "pSVar8 = pSVar6;" (assignment_expression "pSVar8 = pSVar6" identifier = identifier) ;) (if_statement "if (pSVar6 != pSVar1) goto LAB_0015a780;" if (parenthesized_expression "(pSVar6 != pSVar1)" ( (binary_expression "pSVar6 != pSVar1" identifier != identifier) )) (goto_statement "goto LAB_0015a780;" goto statement_identifier ;)) }) (else_clause "else {\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }" else (compound_statement "{\n      pSVar4 = (pointer)operator_new(__n * 0x1c);\n      pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;\n      local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;\n      local_30 = pSVar4;\n      for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }\n      pSVar6 = pSVar8;\n      if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }\n    }" { (expression_statement "pSVar4 = (pointer)operator_new(__n * 0x1c);" (assignment_expression "pSVar4 = (pointer)operator_new(__n * 0x1c)" identifier = (cast_expression "(pointer)operator_new(__n * 0x1c)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(__n * 0x1c)" identifier (argument_list "(__n * 0x1c)" ( (binary_expression "__n * 0x1c" identifier * number_literal) ))))) ;) (expression_statement "pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start;" (assignment_expression "pSVar8 = (this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start" identifier = (field_expression "(this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl._M_start" (field_expression "(this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n               _M_impl" (parenthesized_expression "(this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->\n               super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->\n               super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->\n               super__Vector_base<gold" (field_expression "this->\n               super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish;" (assignment_expression "local_2c = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish" identifier = (field_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_finish" (field_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl" (parenthesized_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->\n                 super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->\n                 super__Vector_base<gold" (field_expression "this->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "local_30 = pSVar4;" (assignment_expression "local_30 = pSVar4" identifier = identifier) ;) (for_statement "for (; pSVar5 = pSVar4, pSVar6 != pSVar1; pSVar6 = pSVar6 + 1) {\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }" for ( ; (comma_expression "pSVar5 = pSVar4, pSVar6 != pSVar1" (assignment_expression "pSVar5 = pSVar4" identifier = identifier) , (binary_expression "pSVar6 != pSVar1" identifier != identifier)) ; (assignment_expression "pSVar6 = pSVar6 + 1" identifier = (binary_expression "pSVar6 + 1" identifier + number_literal)) ) (compound_statement "{\nLAB_0015a780:\n        pSVar4 = pSVar5 + 1;\n        pSVar5->reloc_shndx = pSVar6->reloc_shndx;\n        pSVar5->data_shndx = pSVar6->data_shndx;\n        pSVar5->contents = pSVar6->contents;\n        pSVar5->sh_type = pSVar6->sh_type;\n        pSVar5->reloc_count = pSVar6->reloc_count;\n        pSVar5->output_section = pSVar6->output_section;\n        bVar2 = pSVar6->is_data_section_allocated;\n        uVar3 = *(undefined2 *)&pSVar6->field_0x1a;\n        pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;\n        pSVar5->is_data_section_allocated = bVar2;\n        *(undefined2 *)&pSVar5->field_0x1a = uVar3;\n      }" { (labeled_statement "LAB_0015a780:\n        pSVar4 = pSVar5 + 1;" statement_identifier : (expression_statement "pSVar4 = pSVar5 + 1;" (assignment_expression "pSVar4 = pSVar5 + 1" identifier = (binary_expression "pSVar5 + 1" identifier + number_literal)) ;)) (expression_statement "pSVar5->reloc_shndx = pSVar6->reloc_shndx;" (assignment_expression "pSVar5->reloc_shndx = pSVar6->reloc_shndx" (field_expression "pSVar5->reloc_shndx" identifier -> field_identifier) = (field_expression "pSVar6->reloc_shndx" identifier -> field_identifier)) ;) (expression_statement "pSVar5->data_shndx = pSVar6->data_shndx;" (assignment_expression "pSVar5->data_shndx = pSVar6->data_shndx" (field_expression "pSVar5->data_shndx" identifier -> field_identifier) = (field_expression "pSVar6->data_shndx" identifier -> field_identifier)) ;) (expression_statement "pSVar5->contents = pSVar6->contents;" (assignment_expression "pSVar5->contents = pSVar6->contents" (field_expression "pSVar5->contents" identifier -> field_identifier) = (field_expression "pSVar6->contents" identifier -> field_identifier)) ;) (expression_statement "pSVar5->sh_type = pSVar6->sh_type;" (assignment_expression "pSVar5->sh_type = pSVar6->sh_type" (field_expression "pSVar5->sh_type" identifier -> field_identifier) = (field_expression "pSVar6->sh_type" identifier -> field_identifier)) ;) (expression_statement "pSVar5->reloc_count = pSVar6->reloc_count;" (assignment_expression "pSVar5->reloc_count = pSVar6->reloc_count" (field_expression "pSVar5->reloc_count" identifier -> field_identifier) = (field_expression "pSVar6->reloc_count" identifier -> field_identifier)) ;) (expression_statement "pSVar5->output_section = pSVar6->output_section;" (assignment_expression "pSVar5->output_section = pSVar6->output_section" (field_expression "pSVar5->output_section" identifier -> field_identifier) = (field_expression "pSVar6->output_section" identifier -> field_identifier)) ;) (expression_statement "bVar2 = pSVar6->is_data_section_allocated;" (assignment_expression "bVar2 = pSVar6->is_data_section_allocated" identifier = (field_expression "pSVar6->is_data_section_allocated" identifier -> field_identifier)) ;) (expression_statement "uVar3 = *(undefined2 *)&pSVar6->field_0x1a;" (assignment_expression "uVar3 = *(undefined2 *)&pSVar6->field_0x1a" identifier = (pointer_expression "*(undefined2 *)&pSVar6->field_0x1a" * (cast_expression "(undefined2 *)&pSVar6->field_0x1a" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar6->field_0x1a" & (field_expression "pSVar6->field_0x1a" identifier -> field_identifier))))) ;) (expression_statement "pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling;" (assignment_expression "pSVar5->needs_special_offset_handling = pSVar6->needs_special_offset_handling" (field_expression "pSVar5->needs_special_offset_handling" identifier -> field_identifier) = (field_expression "pSVar6->needs_special_offset_handling" identifier -> field_identifier)) ;) (expression_statement "pSVar5->is_data_section_allocated = bVar2;" (assignment_expression "pSVar5->is_data_section_allocated = bVar2" (field_expression "pSVar5->is_data_section_allocated" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined2 *)&pSVar5->field_0x1a = uVar3;" (assignment_expression "*(undefined2 *)&pSVar5->field_0x1a = uVar3" (pointer_expression "*(undefined2 *)&pSVar5->field_0x1a" * (cast_expression "(undefined2 *)&pSVar5->field_0x1a" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar5->field_0x1a" & (field_expression "pSVar5->field_0x1a" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "pSVar6 = pSVar8;" (assignment_expression "pSVar6 = pSVar8" identifier = identifier) ;) (if_statement "if (local_2c != pSVar8) {\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }" if (parenthesized_expression "(local_2c != pSVar8)" ( (binary_expression "local_2c != pSVar8" identifier != identifier) )) (compound_statement "{\n        do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);\n        pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;\n      }" { (do_statement "do {\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        } while (pSVar8 != local_2c);" do (compound_statement "{\n          this_00 = pSVar8->contents;\n          if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }\n          pSVar8 = pSVar8 + 1;\n        }" { (expression_statement "this_00 = pSVar8->contents;" (assignment_expression "this_00 = pSVar8->contents" identifier = (field_expression "pSVar8->contents" identifier -> field_identifier)) ;) (if_statement "if (this_00 != (File_view *)0x0) {\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }" if (parenthesized_expression "(this_00 != (File_view *)0x0)" ( (binary_expression "this_00 != (File_view *)0x0" identifier != (cast_expression "(File_view *)0x0" ( (type_descriptor "File_view *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            gold::File_view::~File_view(this_00,in_stack_ffffffb8);\n            in_stack_ffffffb8 = 0xc;\n            operator_delete(this_00,0xc);\n          }" { (labeled_statement "gold::File_view::~File_view(this_00,in_stack_ffffffb8);" statement_identifier : (ERROR ":" :) (labeled_statement "File_view::~File_view(this_00,in_stack_ffffffb8);" statement_identifier : (ERROR ":" :) (expression_statement "~File_view(this_00,in_stack_ffffffb8);" (unary_expression "~File_view(this_00,in_stack_ffffffb8)" ~ (call_expression "File_view(this_00,in_stack_ffffffb8)" identifier (argument_list "(this_00,in_stack_ffffffb8)" ( identifier , identifier )))) ;))) (expression_statement "in_stack_ffffffb8 = 0xc;" (assignment_expression "in_stack_ffffffb8 = 0xc" identifier = number_literal) ;) (expression_statement "operator_delete(this_00,0xc);" (call_expression "operator_delete(this_00,0xc)" identifier (argument_list "(this_00,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "pSVar8 = pSVar8 + 1;" (assignment_expression "pSVar8 = pSVar8 + 1" identifier = (binary_expression "pSVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pSVar8 != local_2c)" ( (binary_expression "pSVar8 != local_2c" identifier != identifier) )) ;) (expression_statement "pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start;" (assignment_expression "pSVar6 = (this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start" identifier = (field_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl._M_start" (field_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>).\n                 _M_impl" (parenthesized_expression "(this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->\n                 super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->\n                 super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->\n                 super__Vector_base<gold" (field_expression "this->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) })) }))) (if_statement "if (pSVar6 != (pointer)0x0) {\n      operator_delete(pSVar6);\n    }" if (parenthesized_expression "(pSVar6 != (pointer)0x0)" ( (binary_expression "pSVar6 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(pSVar6);\n    }" { (expression_statement "operator_delete(pSVar6);" (call_expression "operator_delete(pSVar6)" identifier (argument_list "(pSVar6)" ( identifier ))) ;) })) (expression_statement "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start = local_30;" (assignment_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start = local_30" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_start" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish = (pointer)(iVar7 + (int)local_30);" (assignment_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish = (pointer)(iVar7 + (int)local_30)" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_finish" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)(iVar7 + (int)local_30)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(iVar7 + (int)local_30)" ( (binary_expression "iVar7 + (int)local_30" identifier + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage = local_30 + __n;" (assignment_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage = local_30 + __n" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl.\n    _M_end_of_storage" (field_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::Section_relocs>_>)" ( (ERROR "this->super__Vector_base<gold::Section_relocs,_std::allocator<gold::" (comma_expression "this->super__Vector_base<gold::Section_relocs,_std" (binary_expression "this->super__Vector_base<gold" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Section_relocs" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Section_relocs>_>" (binary_expression "Section_relocs>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "local_30 + __n" identifier + identifier)) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0015a6f0(int *param_1,uint param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_0015a6f0(int *param_1,uint param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0015a6f0(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (if_statement "if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }" if (parenthesized_expression "(0x9249249 < param_2)" ( (binary_expression "0x9249249 < param_2" number_literal < identifier) )) (compound_statement "{\n                    \n    FUN_00242a10("vector::reserve");\n  }" { (expression_statement "FUN_00242a10("vector::reserve");" (call_expression "FUN_00242a10("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" if (parenthesized_expression "((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2)" ( (binary_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2" (call_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" ( (binary_expression "(param_1[2] - (int)puVar5 >> 2) * -0x49249249" (parenthesized_expression "(param_1[2] - (int)puVar5 >> 2)" ( (binary_expression "param_1[2] - (int)puVar5 >> 2" (binary_expression "param_1[2] - (int)puVar5" (subscript_expression "param_1[2]" identifier [ number_literal ]) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) ))) < identifier) )) (compound_statement "{\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" { (expression_statement "puVar1 = (undefined4 *)param_1[1];" (assignment_expression "puVar1 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = (int)puVar1 - (int)puVar5;" (assignment_expression "iVar6 = (int)puVar1 - (int)puVar5" identifier = (binary_expression "(int)puVar1 - (int)puVar5" (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }" { (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" identifier = identifier) ;) (expression_statement "local_2c = puVar1;" (assignment_expression "local_2c = puVar1" identifier = identifier) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5 != puVar1) goto LAB_0015a780;" if (parenthesized_expression "(puVar5 != puVar1)" ( (binary_expression "puVar5 != puVar1" identifier != identifier) )) (goto_statement "goto LAB_0015a780;" goto statement_identifier ;)) }) (else_clause "else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" else (compound_statement "{\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" { (expression_statement "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c)" identifier = (cast_expression "(undefined4 *)FUN_001fb470(param_2 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fb470(param_2 * 0x1c)" identifier (argument_list "(param_2 * 0x1c)" ( (binary_expression "param_2 * 0x1c" identifier * number_literal) ))))) ;) (expression_statement "puVar7 = (undefined4 *)*param_1;" (assignment_expression "puVar7 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_2c = (undefined4 *)param_1[1];" (assignment_expression "local_2c = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_30 = puVar3;" (assignment_expression "local_30 = puVar3" identifier = identifier) ;) (for_statement "for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" for ( ; (comma_expression "puVar4 = puVar3, puVar5 != puVar1" (assignment_expression "puVar4 = puVar3" identifier = identifier) , (binary_expression "puVar5 != puVar1" identifier != identifier)) ; (assignment_expression "puVar5 = puVar5 + 7" identifier = (binary_expression "puVar5 + 7" identifier + number_literal)) ) (compound_statement "{\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" { (labeled_statement "LAB_0015a780:\n        puVar3 = puVar4 + 7;" statement_identifier : (expression_statement "puVar3 = puVar4 + 7;" (assignment_expression "puVar3 = puVar4 + 7" identifier = (binary_expression "puVar4 + 7" identifier + number_literal)) ;)) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" * identifier) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar4[1] = puVar5[1];" (assignment_expression "puVar4[1] = puVar5[1]" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "puVar4[2] = puVar5[2];" (assignment_expression "puVar4[2] = puVar5[2]" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar4[3] = puVar5[3];" (assignment_expression "puVar4[3] = puVar5[3]" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4[4] = puVar5[4];" (assignment_expression "puVar4[4] = puVar5[4]" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "puVar4[5] = puVar5[5];" (assignment_expression "puVar4[5] = puVar5[5]" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "puVar4[6] = puVar5[6];" (assignment_expression "puVar4[6] = puVar5[6]" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) })) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) (if_statement "if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" if (parenthesized_expression "(local_2c != puVar7)" ( (binary_expression "local_2c != puVar7" identifier != identifier) )) (compound_statement "{\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" { (do_statement "do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);" do (compound_statement "{\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        }" { (expression_statement "iVar2 = puVar7[2];" (assignment_expression "iVar2 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" { (expression_statement "FUN_000740c0(iVar2);" (call_expression "FUN_000740c0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "FUN_001fd000(iVar2,0xc);" (call_expression "FUN_001fd000(iVar2,0xc)" identifier (argument_list "(iVar2,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "puVar7 = puVar7 + 7;" (assignment_expression "puVar7 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != local_2c)" ( (binary_expression "puVar7 != local_2c" identifier != identifier) )) ;) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) }))) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001fd020(puVar5);\n    }" { (expression_statement "FUN_001fd020(puVar5);" (call_expression "FUN_001fd020(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) })) (expression_statement "*param_1 = (int)local_30;" (assignment_expression "*param_1 = (int)local_30" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[1] = iVar6 + (int)local_30;" (assignment_expression "param_1[1] = iVar6 + (int)local_30" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar6 + (int)local_30" identifier + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[2] = (int)(local_30 + param_2 * 7);" (assignment_expression "param_1[2] = (int)(local_30 + param_2 * 7)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)(local_30 + param_2 * 7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_30 + param_2 * 7)" ( (binary_expression "local_30 + param_2 * 7" identifier + (binary_expression "param_2 * 7" identifier * number_literal)) )))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )) * LIT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_0015a6f0(int *param_1,uint param_2)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0015a6f0(int *param_1,uint param_2)" (identifier "FUN_0015a6f0") (parameter_list "(int *param_1,uint param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined4 *puVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *local_30;\n  undefined4 *local_2c;\n  \n  if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }\n  puVar5 = (undefined4 *)*param_1;\n  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *local_30;" (type_identifier "undefined4") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (if_statement "if (0x9249249 < param_2) {\n                    \n    FUN_00242a10("vector::reserve");\n  }" (if "if") (parenthesized_expression "(0x9249249 < param_2)" (( "(") (binary_expression "0x9249249 < param_2" (number_literal "0x9249249") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                    \n    FUN_00242a10("vector::reserve");\n  }" ({ "{") (expression_statement "FUN_00242a10("vector::reserve");" (call_expression "FUN_00242a10("vector::reserve")" (identifier "FUN_00242a10") (argument_list "("vector::reserve")" (( "(") (string_literal ""vector::reserve"" (" """) (string_content "vector::reserve") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" (if "if") (parenthesized_expression "((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2)" (( "(") (binary_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2" (call_expression "(uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_1[2] - (int)puVar5 >> 2) * -0x49249249)" (( "(") (binary_expression "(param_1[2] - (int)puVar5 >> 2) * -0x49249249" (parenthesized_expression "(param_1[2] - (int)puVar5 >> 2)" (( "(") (binary_expression "param_1[2] - (int)puVar5 >> 2" (binary_expression "param_1[2] - (int)puVar5" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x49249249")) () ")"))) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    puVar1 = (undefined4 *)param_1[1];\n    iVar6 = (int)puVar1 - (int)puVar5;\n    if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }\n    if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }\n    *param_1 = (int)local_30;\n    param_1[1] = iVar6 + (int)local_30;\n    param_1[2] = (int)(local_30 + param_2 * 7);\n    return;\n  }" ({ "{") (expression_statement "puVar1 = (undefined4 *)param_1[1];" (assignment_expression "puVar1 = (undefined4 *)param_1[1]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar6 = (int)puVar1 - (int)puVar5;" (assignment_expression "iVar6 = (int)puVar1 - (int)puVar5" (identifier "iVar6") (= "=") (binary_expression "(int)puVar1 - (int)puVar5" (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1")) (- "-") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")))) (; ";")) (if_statement "if (param_2 == 0) {\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }\n    else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_30 = (undefined4 *)0x0;\n      puVar4 = local_30;\n      local_2c = puVar1;\n      puVar7 = puVar5;\n      if (puVar5 != puVar1) goto LAB_0015a780;\n    }" ({ "{") (expression_statement "local_30 = (undefined4 *)0x0;" (assignment_expression "local_30 = (undefined4 *)0x0" (identifier "local_30") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = local_30;" (assignment_expression "puVar4 = local_30" (identifier "puVar4") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_2c = puVar1;" (assignment_expression "local_2c = puVar1" (identifier "local_2c") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" (identifier "puVar7") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar5 != puVar1) goto LAB_0015a780;" (if "if") (parenthesized_expression "(puVar5 != puVar1)" (( "(") (binary_expression "puVar5 != puVar1" (identifier "puVar5") (!= "!=") (identifier "puVar1")) () ")")) (goto_statement "goto LAB_0015a780;" (goto "goto") (statement_identifier "LAB_0015a780") (; ";"))) (} "}")) (else_clause "else {\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" (else "else") (compound_statement "{\n      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);\n      puVar7 = (undefined4 *)*param_1;\n      local_2c = (undefined4 *)param_1[1];\n      local_30 = puVar3;\n      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }\n      puVar5 = puVar7;\n      if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }\n    }" ({ "{") (expression_statement "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);" (assignment_expression "puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_001fb470(param_2 * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001fb470(param_2 * 0x1c)" (identifier "FUN_001fb470") (argument_list "(param_2 * 0x1c)" (( "(") (binary_expression "param_2 * 0x1c" (identifier "param_2") (* "*") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined4 *)*param_1;" (assignment_expression "puVar7 = (undefined4 *)*param_1" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_2c = (undefined4 *)param_1[1];" (assignment_expression "local_2c = (undefined4 *)param_1[1]" (identifier "local_2c") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_30 = puVar3;" (assignment_expression "local_30 = puVar3" (identifier "local_30") (= "=") (identifier "puVar3")) (; ";")) (for_statement "for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" (for "for") (( "(") (; ";") (comma_expression "puVar4 = puVar3, puVar5 != puVar1" (assignment_expression "puVar4 = puVar3" (identifier "puVar4") (= "=") (identifier "puVar3")) (, ",") (binary_expression "puVar5 != puVar1" (identifier "puVar5") (!= "!=") (identifier "puVar1"))) (; ";") (assignment_expression "puVar5 = puVar5 + 7" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7"))) () ")") (compound_statement "{\nLAB_0015a780:\n        puVar3 = puVar4 + 7;\n        *puVar4 = *puVar5;\n        puVar4[1] = puVar5[1];\n        puVar4[2] = puVar5[2];\n        puVar4[3] = puVar5[3];\n        puVar4[4] = puVar5[4];\n        puVar4[5] = puVar5[5];\n        puVar4[6] = puVar5[6];\n      }" ({ "{") (labeled_statement "LAB_0015a780:\n        puVar3 = puVar4 + 7;" (statement_identifier "LAB_0015a780") (: ":") (expression_statement "puVar3 = puVar4 + 7;" (assignment_expression "puVar3 = puVar4 + 7" (identifier "puVar3") (= "=") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7"))) (; ";"))) (expression_statement "*puVar4 = *puVar5;" (assignment_expression "*puVar4 = *puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar4[1] = puVar5[1];" (assignment_expression "puVar4[1] = puVar5[1]" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar4[2] = puVar5[2];" (assignment_expression "puVar4[2] = puVar5[2]" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar4[3] = puVar5[3];" (assignment_expression "puVar4[3] = puVar5[3]" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar4[4] = puVar5[4];" (assignment_expression "puVar4[4] = puVar5[4]" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar4[5] = puVar5[5];" (assignment_expression "puVar4[5] = puVar5[5]" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar4[6] = puVar5[6];" (assignment_expression "puVar4[6] = puVar5[6]" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" (identifier "puVar5") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (local_2c != puVar7) {\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" (if "if") (parenthesized_expression "(local_2c != puVar7)" (( "(") (binary_expression "local_2c != puVar7" (identifier "local_2c") (!= "!=") (identifier "puVar7")) () ")")) (compound_statement "{\n        do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);\n        puVar5 = (undefined4 *)*param_1;\n      }" ({ "{") (do_statement "do {\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        } while (puVar7 != local_2c);" (do "do") (compound_statement "{\n          iVar2 = puVar7[2];\n          if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }\n          puVar7 = puVar7 + 7;\n        }" ({ "{") (expression_statement "iVar2 = puVar7[2];" (assignment_expression "iVar2 = puVar7[2]" (identifier "iVar2") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) {\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_000740c0(iVar2);\n            FUN_001fd000(iVar2,0xc);\n          }" ({ "{") (expression_statement "FUN_000740c0(iVar2);" (call_expression "FUN_000740c0(iVar2)" (identifier "FUN_000740c0") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "FUN_001fd000(iVar2,0xc);" (call_expression "FUN_001fd000(iVar2,0xc)" (identifier "FUN_001fd000") (argument_list "(iVar2,0xc)" (( "(") (identifier "iVar2") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = puVar7 + 7;" (assignment_expression "puVar7 = puVar7 + 7" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 7" (identifier "puVar7") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != local_2c)" (( "(") (binary_expression "puVar7 != local_2c" (identifier "puVar7") (!= "!=") (identifier "local_2c")) () ")")) (; ";")) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n      FUN_001fd020(puVar5);\n    }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001fd020(puVar5);\n    }" ({ "{") (expression_statement "FUN_001fd020(puVar5);" (call_expression "FUN_001fd020(puVar5)" (identifier "FUN_001fd020") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = (int)local_30;" (assignment_expression "*param_1 = (int)local_30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) (; ";")) (expression_statement "param_1[1] = iVar6 + (int)local_30;" (assignment_expression "param_1[1] = iVar6 + (int)local_30" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar6 + (int)local_30" (identifier "iVar6") (+ "+") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")))) (; ";")) (expression_statement "param_1[2] = (int)(local_30 + param_2 * 7);" (assignment_expression "param_1[2] = (int)(local_30 + param_2 * 7)" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(local_30 + param_2 * 7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_30 + param_2 * 7)" (( "(") (binary_expression "local_30 + param_2 * 7" (identifier "local_30") (+ "+") (binary_expression "param_2 * 7" (identifier "param_2") (* "*") (number_literal "7"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void
   reserve(vector<gold::Section_relocs,_std::allocator<gold::Section_relocs>_> * this, size_type
   __n) */

void __thiscall
std::vector<gold::var_3,_std::allocator<gold::var_3>var_4>::reserve
          (vector<gold::var_3,_std::allocator<gold::var_3>var_4> *this,size_type var_1)

{
  type_3 var_7;
  type_1 *var_12;
  bool bVar2;
  type_2 uVar3;
  type_3 pSVar4;
  type_3 var_9;
  type_3 var_6;
  int var_14;
  type_3 var_11;
  int in_stack_ffffffb8;
  type_3 var_15;
  type_3 var_10;
  
  if (0x9249249 < var_1) {
                    /* WARNING: Subroutine does not return */
    var_2("vector::reserve");
  }
  var_6 = (this->super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5).
           _M_impl._M_start;
  if ((uint)(((int)(this->
                   super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5).
                   _M_impl._M_end_of_storage - (int)var_6 >> 2) * -0x49249249) < var_1) {
    var_7 = (this->super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5)
             ._M_impl._M_finish;
    var_14 = (int)var_7 - (int)var_6;
    if (var_1 == 0) {
      var_15 = (type_3)0x0;
      var_9 = var_15;
      var_10 = var_7;
      var_11 = var_6;
      if (var_6 != var_7) goto LAB_0015a780;
    }
    else {
      pSVar4 = (type_3)var_8(var_1 * 0x1c);
      var_11 = (this->
               super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5).
               _M_impl._M_start;
      var_10 = (this->
                 super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5).
                 _M_impl._M_finish;
      var_15 = pSVar4;
      for (; var_9 = pSVar4, var_6 != var_7; var_6 = var_6 + 1) {
LAB_0015a780:
        pSVar4 = var_9 + 1;
        var_9->reloc_shndx = var_6->reloc_shndx;
        var_9->data_shndx = var_6->data_shndx;
        var_9->contents = var_6->contents;
        var_9->sh_type = var_6->sh_type;
        var_9->reloc_count = var_6->reloc_count;
        var_9->output_section = var_6->output_section;
        bVar2 = var_6->is_data_section_allocated;
        uVar3 = *(type_2 *)&var_6->field_0x1a;
        var_9->needs_special_offset_handling = var_6->needs_special_offset_handling;
        var_9->is_data_section_allocated = bVar2;
        *(type_2 *)&var_9->field_0x1a = uVar3;
      }
      var_6 = var_11;
      if (var_10 != var_11) {
        do {
          var_12 = var_11->contents;
          if (var_12 != (type_1 *)0x0) {
            gold::File_view::~type_1(var_12,in_stack_ffffffb8);
            in_stack_ffffffb8 = 0xc;
            var_13(var_12,0xc);
          }
          var_11 = var_11 + 1;
        } while (var_11 != var_10);
        var_6 = (this->
                 super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5).
                 _M_impl._M_start;
      }
    }
    if (var_6 != (type_3)0x0) {
      var_13(var_6);
    }
    (this->super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5)._M_impl.
    _M_start = var_15;
    (this->super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5)._M_impl.
    _M_finish = (type_3)(var_14 + (int)var_15);
    (this->super__Vector_base<gold::var_3,_std::allocator<gold::var_3>var_4>var_5)._M_impl.
    _M_end_of_storage = var_15 + var_1;
    return;
  }
  return;
}


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

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

void MASKED(int *param_1,uint param_2)

{
  undefined4 *puVar1;
  int iVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *local_30;
  undefined4 *local_2c;
  
  if (0x9249249 < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_00242a10("vector::reserve");
  }
  puVar5 = (undefined4 *)*param_1;
  if ((uint)((param_1[2] - (int)puVar5 >> 2) * -0x49249249) < param_2) {
    puVar1 = (undefined4 *)param_1[1];
    iVar6 = (int)puVar1 - (int)puVar5;
    if (param_2 == 0) {
      local_30 = (undefined4 *)0x0;
      puVar4 = local_30;
      local_2c = puVar1;
      puVar7 = puVar5;
      if (puVar5 != puVar1) goto LAB_0015a780;
    }
    else {
      puVar3 = (undefined4 *)FUN_001fb470(param_2 * 0x1c);
      puVar7 = (undefined4 *)*param_1;
      local_2c = (undefined4 *)param_1[1];
      local_30 = puVar3;
      for (; puVar4 = puVar3, puVar5 != puVar1; puVar5 = puVar5 + 7) {
LAB_0015a780:
        puVar3 = puVar4 + 7;
        *puVar4 = *puVar5;
        puVar4[1] = puVar5[1];
        puVar4[2] = puVar5[2];
        puVar4[3] = puVar5[3];
        puVar4[4] = puVar5[4];
        puVar4[5] = puVar5[5];
        puVar4[6] = puVar5[6];
      }
      puVar5 = puVar7;
      if (local_2c != puVar7) {
        do {
          iVar2 = puVar7[2];
          if (iVar2 != 0) {
            FUN_000740c0(iVar2);
            FUN_001fd000(iVar2,0xc);
          }
          puVar7 = puVar7 + 7;
        } while (puVar7 != local_2c);
        puVar5 = (undefined4 *)*param_1;
      }
    }
    if (puVar5 != (undefined4 *)0x0) {
      FUN_001fd020(puVar5);
    }
    *param_1 = (int)local_30;
    param_1[1] = iVar6 + (int)local_30;
    param_1[2] = (int)(local_30 + param_2 * 7);
    return;
  }
  return;
}

