
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype:
   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * 
   operator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * this,
   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * __x) */

vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *
__thiscall
std::
vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>::
operator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                *__x)

{
  undefined8 *puVar1;
  undefined8 *puVar2;
  pointer pIVar3;
  undefined8 uVar4;
  anon_union_8_2_227b06d7_for_u1_ aVar5;
  uint uVar6;
  undefined4 uVar7;
  pointer pIVar8;
  pointer pIVar9;
  ulong uVar10;
  long lVar11;
  pointer pIVar12;
  pointer pIVar13;
  ulong uVar14;
  long lVar15;
  ulong uVar16;
  
  if (__x != this) {
    pIVar3 = (__x->
             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
             )._M_impl._M_finish;
    pIVar12 = (__x->
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              )._M_impl._M_start;
    pIVar13 = (this->
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              )._M_impl._M_start;
    uVar16 = (long)pIVar3 - (long)pIVar12;
    uVar10 = (long)uVar16 >> 5;
    if ((ulong)((long)(this->
                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {
      pIVar8 = (pointer)0x0;
      pIVar9 = pIVar8;
      if (uVar10 != 0) {
        if (0x7ffffffffffffff < uVar10) {
                    /* WARNING: Subroutine does not return */
          __throw_bad_alloc();
        }
        pIVar8 = (pointer)operator_new(uVar16);
        pIVar13 = (this->
                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
                  )._M_impl._M_start;
        pIVar9 = pIVar8;
      }
      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {
        uVar6 = pIVar12->p2align_;
        aVar5 = pIVar12->u1_;
        pIVar8->shndx_ = pIVar12->shndx_;
        pIVar8->p2align_ = uVar6;
        pIVar8->u1_ = aVar5;
        uVar6 = pIVar12->section_order_index_;
        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;
        pIVar8->u2_ = pIVar12->u2_;
        pIVar8->section_order_index_ = uVar6;
        *(undefined4 *)&pIVar8->field_0x1c = uVar7;
        pIVar8 = pIVar8 + 1;
      }
      if (pIVar13 != (pointer)0x0) {
        operator_delete(pIVar13);
      }
      (this->
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      )._M_impl._M_start = pIVar9;
      (this->
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);
      (this->
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);
    }
    else {
      pIVar8 = (this->
               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
               )._M_impl._M_finish;
      lVar15 = (long)pIVar8 - (long)pIVar13;
      uVar14 = lVar15 >> 5;
      if (uVar14 < uVar10) {
        lVar11 = 0;
        if (0 < lVar15) {
          do {
            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);
            uVar4 = puVar1[1];
            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);
            *puVar2 = *puVar1;
            puVar2[1] = uVar4;
            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =
                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);
            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =
                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);
            lVar11 = lVar11 + 0x20;
            uVar14 = uVar14 - 1;
          } while (uVar14 != 0);
        }
        pIVar9 = (pointer)((long)pIVar12 + lVar15);
        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {
          do {
            uVar6 = pIVar9->p2align_;
            aVar5 = pIVar9->u1_;
            pIVar12 = pIVar9 + 1;
            pIVar8->shndx_ = pIVar9->shndx_;
            pIVar8->p2align_ = uVar6;
            pIVar8->u1_ = aVar5;
            uVar6 = pIVar9->section_order_index_;
            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;
            pIVar8->u2_ = pIVar9->u2_;
            pIVar8->section_order_index_ = uVar6;
            *(undefined4 *)&pIVar8->field_0x1c = uVar7;
            pIVar9 = pIVar12;
            pIVar8 = pIVar8 + 1;
          } while (pIVar3 != pIVar12);
          (this->
          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);
          return this;
        }
      }
      else if (0 < (long)uVar16) {
        lVar15 = 0;
        do {
          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);
          uVar4 = puVar1[1];
          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);
          *puVar2 = *puVar1;
          puVar2[1] = uVar4;
          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =
               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);
          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =
               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);
          lVar15 = lVar15 + 0x20;
          uVar10 = uVar10 - 1;
        } while (uVar10 != 0);
      }
      (this->
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);
    }
  }
  return this;
}



long * FUN_0020a6c0(long *param_1,long *param_2)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  ulong uVar5;
  long lVar6;
  undefined8 *puVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  
  if (param_2 != param_1) {
    puVar1 = (undefined8 *)param_2[1];
    puVar7 = (undefined8 *)*param_2;
    lVar8 = *param_1;
    lVar11 = (long)puVar1 - (long)puVar7;
    uVar5 = lVar11 >> 5;
    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {
      puVar3 = (undefined8 *)0x0;
      puVar4 = puVar3;
      if (uVar5 != 0) {
        if (0x7ffffffffffffff < uVar5) {
                    /* WARNING: Subroutine does not return */
          FUN_00319420();
        }
        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);
        lVar8 = *param_1;
        puVar4 = puVar3;
      }
      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {
        uVar2 = puVar7[1];
        *puVar3 = *puVar7;
        puVar3[1] = uVar2;
        uVar2 = puVar7[3];
        puVar3[2] = puVar7[2];
        puVar3[3] = uVar2;
        puVar3 = puVar3 + 4;
      }
      if (lVar8 != 0) {
        FUN_002dac70();
      }
      *param_1 = (long)puVar4;
      param_1[2] = (long)puVar4 + lVar11;
      param_1[1] = (long)puVar4 + lVar11;
    }
    else {
      puVar3 = (undefined8 *)param_1[1];
      lVar10 = (long)puVar3 - lVar8;
      uVar9 = lVar10 >> 5;
      if (uVar9 < uVar5) {
        lVar6 = 0;
        if (0 < lVar10) {
          do {
            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];
            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);
            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;
            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);
            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);
            lVar6 = lVar6 + 0x20;
            uVar9 = uVar9 - 1;
          } while (uVar9 != 0);
        }
        puVar4 = (undefined8 *)((long)puVar7 + lVar10);
        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {
          do {
            uVar2 = puVar4[1];
            puVar7 = puVar4 + 4;
            *puVar3 = *puVar4;
            puVar3[1] = uVar2;
            uVar2 = puVar4[3];
            puVar3[2] = puVar4[2];
            puVar3[3] = uVar2;
            puVar4 = puVar7;
            puVar3 = puVar3 + 4;
          } while (puVar1 != puVar7);
          param_1[1] = lVar8 + lVar11;
          return param_1;
        }
      }
      else if (0 < lVar11) {
        lVar10 = 0;
        do {
          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];
          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);
          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;
          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);
          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);
          lVar10 = lVar10 + 0x20;
          uVar5 = uVar5 - 1;
        } while (uVar5 != 0);
      }
      param_1[1] = lVar8 + lVar11;
    }
  }
  return param_1;
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
CMP RSI,RDI
JZ 0x0020a749
MOV R12,qword ptr [RSI + 0x8]
MOV RBX,qword ptr [RSI]
MOV RDI,qword ptr [RDI]
MOV RAX,qword ptr [RBP + 0x10]
MOV R13,R12
SUB R13,RBX
SUB RAX,RDI
MOV RDX,R13
SAR RAX,0x5
SAR RDX,0x5
MOV RCX,RDX
CMP RDX,RAX
JA 0x0020a758
MOV RSI,qword ptr [RBP + 0x8]
LEA RAX,[RDI + R13*0x1]
MOV R9,RSI
SUB R9,RDI
MOV R8,R9
SAR R8,0x5
CMP RDX,R8
JA 0x0020a7d0
TEST R13,R13
JLE 0x0020a745
XOR EDX,EDX
NOP
MOVDQU XMM0,xmmword ptr [RBX + RDX*0x1]
MOVUPS xmmword ptr [RDI + RDX*0x1],XMM0
MOV RSI,qword ptr [RBX + RDX*0x1 + 0x10]
MOV qword ptr [RDI + RDX*0x1 + 0x10],RSI
MOV ESI,dword ptr [RBX + RDX*0x1 + 0x18]
MOV dword ptr [RDI + RDX*0x1 + 0x18],ESI
ADD RDX,0x20
SUB RCX,0x1
JNZ 0x0020a720
MOV qword ptr [RBP + 0x8],RAX
POP RBX
MOV RAX,RBP
POP RBP
POP R12
POP R13
POP R14
RET
XOR R14D,R14D
TEST RDX,RDX
JZ 0x0020a782
MOV RAX,0x7ffffffffffffff
CMP RDX,RAX
JA 0x0020a837
MOV RDI,R13
CALL 0x002d94a0
MOV RDI,qword ptr [RBP]
MOV R14,RAX
MOV RDX,R14
CMP RBX,R12
JZ 0x0020a7ae
NOP word ptr [RAX + RAX*0x1]
MOVDQU XMM4,xmmword ptr [RBX]
ADD RBX,0x20
ADD RDX,0x20
MOVUPS xmmword ptr [RDX + -0x20],XMM4
MOVDQU XMM5,xmmword ptr [RBX + -0x10]
MOVUPS xmmword ptr [RDX + -0x10],XMM5
CMP R12,RBX
JNZ 0x0020a790
TEST RDI,RDI
JZ 0x0020a7b8
CALL 0x002dac70
LEA RAX,[R14 + R13*0x1]
MOV qword ptr [RBP],R14
MOV qword ptr [RBP + 0x10],RAX
MOV qword ptr [RBP + 0x8],RAX
JMP 0x0020a749
LEA RCX,[RBX + R9*0x1]
XOR EDX,EDX
TEST R9,R9
JLE 0x0020a807
NOP dword ptr [RAX + RAX*0x1]
MOVDQU XMM1,xmmword ptr [RBX + RDX*0x1]
MOVUPS xmmword ptr [RDI + RDX*0x1],XMM1
MOV R9,qword ptr [RBX + RDX*0x1 + 0x10]
MOV qword ptr [RDI + RDX*0x1 + 0x10],R9
MOV R9D,dword ptr [RBX + RDX*0x1 + 0x18]
MOV dword ptr [RDI + RDX*0x1 + 0x18],R9D
ADD RDX,0x20
SUB R8,0x1
JNZ 0x0020a7e0
CMP RCX,R12
JZ 0x0020a745
MOVDQU XMM2,xmmword ptr [RCX]
ADD RCX,0x20
ADD RSI,0x20
MOVUPS xmmword ptr [RSI + -0x20],XMM2
MOVDQU XMM3,xmmword ptr [RCX + -0x10]
MOVUPS xmmword ptr [RSI + -0x10],XMM3
CMP R12,RCX
JNZ 0x0020a810
MOV qword ptr [RBP + 0x8],RAX
JMP 0x0020a749
CALL 0x00319420
(translation_unit "long * FUN_0020a6c0(long *param_1,long *param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_0020a6c0(long *param_1,long *param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_0020a6c0(long *param_1,long *param_2)" * (function_declarator "FUN_0020a6c0(long *param_1,long *param_2)" identifier (parameter_list "(long *param_1,long *param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" if (parenthesized_expression "(param_2 != param_1)" ( (binary_expression "param_2 != param_1" identifier != identifier) )) (compound_statement "{\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" { (expression_statement "puVar1 = (undefined8 *)param_2[1];" (assignment_expression "puVar1 = (undefined8 *)param_2[1]" identifier = (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" identifier = (cast_expression "(undefined8 *)*param_2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "lVar11 = (long)puVar1 - (long)puVar7;" (assignment_expression "lVar11 = (long)puVar1 - (long)puVar7" identifier = (binary_expression "(long)puVar1 - (long)puVar7" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar5 = lVar11 >> 5;" (assignment_expression "uVar5 = lVar11 >> 5" identifier = (binary_expression "lVar11 >> 5" identifier >> number_literal)) ;) (if_statement "if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" if (parenthesized_expression "((ulong)(param_1[2] - lVar8 >> 5) < uVar5)" ( (binary_expression "(ulong)(param_1[2] - lVar8 >> 5) < uVar5" (call_expression "(ulong)(param_1[2] - lVar8 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_1[2] - lVar8 >> 5)" ( (binary_expression "param_1[2] - lVar8 >> 5" (binary_expression "param_1[2] - lVar8" (subscript_expression "param_1[2]" identifier [ number_literal ]) - identifier) >> number_literal) ))) < identifier) )) (compound_statement "{\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }" { (expression_statement "puVar3 = (undefined8 *)0x0;" (assignment_expression "puVar3 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" { (if_statement "if (0x7ffffffffffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }" if (parenthesized_expression "(0x7ffffffffffffff < uVar5)" ( (binary_expression "0x7ffffffffffffff < uVar5" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00319420();\n        }" { comment (expression_statement "FUN_00319420();" (call_expression "FUN_00319420()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar3 = (undefined8 *)FUN_002d94a0(lVar11);" (assignment_expression "puVar3 = (undefined8 *)FUN_002d94a0(lVar11)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))))) ;) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) })) (for_statement "for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" for ( ; (binary_expression "puVar7 != puVar1" identifier != identifier) ; (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ) (compound_statement "{\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" { (expression_statement "uVar2 = puVar7[1];" (assignment_expression "uVar2 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *puVar7;" (assignment_expression "*puVar3 = *puVar7" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar7[3];" (assignment_expression "uVar2 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = puVar7[2];" (assignment_expression "puVar3[2] = puVar7[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) })) (if_statement "if (lVar8 != 0) {\n        FUN_002dac70();\n      }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_002dac70();\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_1 = (long)puVar4;" (assignment_expression "*param_1 = (long)puVar4" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = (long)puVar4 + lVar11;" (assignment_expression "param_1[2] = (long)puVar4 + lVar11" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (expression_statement "param_1[1] = (long)puVar4 + lVar11;" (assignment_expression "param_1[1] = (long)puVar4 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) }) (else_clause "else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" else (compound_statement "{\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" { (expression_statement "puVar3 = (undefined8 *)param_1[1];" (assignment_expression "puVar3 = (undefined8 *)param_1[1]" identifier = (cast_expression "(undefined8 *)param_1[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar10 = (long)puVar3 - lVar8;" (assignment_expression "lVar10 = (long)puVar3 - lVar8" identifier = (binary_expression "(long)puVar3 - lVar8" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier)) ;) (expression_statement "uVar9 = lVar10 >> 5;" (assignment_expression "uVar9 = lVar10 >> 5" identifier = (binary_expression "lVar10 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) (compound_statement "{\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }" { (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (if_statement "if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" if (parenthesized_expression "(0 < lVar10)" ( (binary_expression "0 < lVar10" number_literal < identifier) )) (compound_statement "{\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" { (do_statement "do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);" do (compound_statement "{\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          }" { (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1]" identifier = (subscript_expression "((undefined8 *)((long)puVar7 + lVar6))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar6))" ( (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6)" ( (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);" (assignment_expression "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6)" (pointer_expression "*(undefined8 *)(lVar8 + lVar6)" * (cast_expression "(undefined8 *)(lVar8 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar6)" ( (binary_expression "lVar8 + lVar6" identifier + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6)" ( (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)(lVar8 + lVar6))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar6))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar6))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar6))" ( (cast_expression "(undefined8 *)(lVar8 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar6)" ( (binary_expression "lVar8 + lVar6" identifier + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6)" * (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10 + lVar6)" ( (binary_expression "lVar8 + 0x10 + lVar6" (binary_expression "lVar8 + 0x10" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6 + 0x10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6 + 0x10)" ( (binary_expression "(long)puVar7 + lVar6 + 0x10" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6)" * (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18 + lVar6)" ( (binary_expression "lVar8 + 0x18 + lVar6" (binary_expression "lVar8 + 0x18" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)puVar7 + lVar6 + 0x18)" * (cast_expression "(undefined4 *)((long)puVar7 + lVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6 + 0x18)" ( (binary_expression "(long)puVar7 + lVar6 + 0x18" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "lVar6 = lVar6 + 0x20;" (assignment_expression "lVar6 = lVar6 + 0x20" identifier = (binary_expression "lVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar4 = (undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "puVar4 = (undefined8 *)((long)puVar7 + lVar10)" identifier = (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" if (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10) != puVar1)" ( (binary_expression "(undefined8 *)((long)puVar7 + lVar10) != puVar1" (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != identifier) )) (compound_statement "{\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" { (do_statement "do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);" do (compound_statement "{\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          }" { (expression_statement "uVar2 = puVar4[1];" (assignment_expression "uVar2 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = puVar4 + 4;" (assignment_expression "puVar7 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar3 = *puVar4;" (assignment_expression "*puVar3 = *puVar4" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = puVar4[2];" (assignment_expression "puVar3[2] = puVar4[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar1 != puVar7)" ( (binary_expression "puVar1 != puVar7" identifier != identifier) )) ;) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "lVar8 + lVar11" identifier + identifier)) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" else (if_statement "if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(0 < lVar11)" ( (binary_expression "0 < lVar11" number_literal < identifier) )) (compound_statement "{\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);" do (compound_statement "{\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        }" { (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1]" identifier = (subscript_expression "((undefined8 *)((long)puVar7 + lVar10))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10))" ( (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10)" (pointer_expression "*(undefined8 *)(lVar8 + lVar10)" * (cast_expression "(undefined8 *)(lVar8 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10)" ( (binary_expression "lVar8 + lVar10" identifier + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)(lVar8 + lVar10))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar10))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar10))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar10))" ( (cast_expression "(undefined8 *)(lVar8 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10)" ( (binary_expression "lVar8 + lVar10" identifier + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10)" * (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10 + lVar10)" ( (binary_expression "lVar8 + 0x10 + lVar10" (binary_expression "lVar8 + 0x10" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10 + 0x10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar10 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10 + 0x10)" ( (binary_expression "(long)puVar7 + lVar10 + 0x10" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10)" * (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18 + lVar10)" ( (binary_expression "lVar8 + 0x18 + lVar10" (binary_expression "lVar8 + 0x18" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)puVar7 + lVar10 + 0x18)" * (cast_expression "(undefined4 *)((long)puVar7 + lVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10 + 0x18)" ( (binary_expression "(long)puVar7 + lVar10 + 0x18" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "lVar10 = lVar10 + 0x20;" (assignment_expression "lVar10 = lVar10 + 0x20" identifier = (binary_expression "lVar10 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })))) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "lVar8 + lVar11" identifier + identifier)) ;) }))) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype:\n   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n   * \n   operator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n   * this,\n   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n   * __x) */\n\nvector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *\n__thiscall\nstd::\nvector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>::\noperator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}\n\n" comment comment (ERROR "vector<gold::" (binary_expression "vector<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_> *\n__thiscall" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_> *\n__thiscall" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_> *\n__thiscall" (binary_expression "Input_section>_> *\n__thiscall" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*\n__thiscall" * identifier)) ;))) (labeled_statement "std::\nvector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>::\noperator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::\nvector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>::\noperator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>::\noperator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::Input_section>_>:" : : (binary_expression "Input_section>_" identifier > identifier) > :) : (labeled_statement "operator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "=(vector<gold:" = ( (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n          *this,vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::Input_section>_>\n          *this,vector<gold:" : : (comma_expression "Input_section>_>\n          *this,vector<gold" (binary_expression "Input_section>_>\n          *this" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "vector<gold" identifier < identifier)) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n                *__x)\n\n{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" statement_identifier : (ERROR ":Input_section>_>\n                *__x)" : (binary_expression "Input_section>_>\n                *__x" (binary_expression "Input_section>_" identifier > identifier) > (pointer_expression "*__x" * identifier)) )) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 *puVar2;\n  pointer pIVar3;\n  undefined8 uVar4;\n  anon_union_8_2_227b06d7_for_u1_ aVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  pointer pIVar8;\n  pointer pIVar9;\n  ulong uVar10;\n  long lVar11;\n  pointer pIVar12;\n  pointer pIVar13;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  \n  if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }\n  return this;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "pointer pIVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "anon_union_8_2_227b06d7_for_u1_ aVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "pointer pIVar8;" type_identifier identifier ;) (declaration "pointer pIVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "pointer pIVar12;" type_identifier identifier ;) (declaration "pointer pIVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (if_statement "if (__x != this) {\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }" if (parenthesized_expression "(__x != this)" ( (binary_expression "__x != this" identifier != identifier) )) (compound_statement "{\n    pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;\n    pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;\n    uVar16 = (long)pIVar3 - (long)pIVar12;\n    uVar10 = (long)uVar16 >> 5;\n    if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }\n  }" { (expression_statement "pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish;" (assignment_expression "pIVar3 = (__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish" identifier = (field_expression "(__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl._M_finish" (field_expression "(__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )._M_impl" (parenthesized_expression "(__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n             )" ( (ERROR "__x->\n             super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "__x->\n             super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "__x->\n             super__Vector_base<gold" (field_expression "__x->\n             super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;" (assignment_expression "pIVar12 = (__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start" identifier = (field_expression "(__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start" (field_expression "(__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl" (parenthesized_expression "(__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )" ( (ERROR "__x->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "__x->\n              super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "__x->\n              super__Vector_base<gold" (field_expression "__x->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start;" (assignment_expression "pIVar13 = (this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start" identifier = (field_expression "(this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl._M_start" (field_expression "(this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )._M_impl" (parenthesized_expression "(this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              )" ( (ERROR "this->\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n              super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n              super__Vector_base<gold" (field_expression "this->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar16 = (long)pIVar3 - (long)pIVar12;" (assignment_expression "uVar16 = (long)pIVar3 - (long)pIVar12" identifier = (binary_expression "(long)pIVar3 - (long)pIVar12" (cast_expression "(long)pIVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pIVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar10 = (long)uVar16 >> 5;" (assignment_expression "uVar10 = (long)uVar16 >> 5" identifier = (binary_expression "(long)uVar16 >> 5" (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) >> number_literal)) ;) (if_statement "if ((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10) {\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }\n    else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }" if (parenthesized_expression "((ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10)" ( (binary_expression "(ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5) < uVar10" (call_expression "(ulong)((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5)" ( (binary_expression "(long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13 >> 5" (binary_expression "(long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage - (long)pIVar13" (cast_expression "(long)(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl._M_end_of_storage" (field_expression "(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )._M_impl" (parenthesized_expression "(this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                      )" ( (ERROR "this->\n                      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n                      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n                      super__Vector_base<gold" (field_expression "this->\n                      super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(long)pIVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) < identifier) )) (compound_statement "{\n      pIVar8 = (pointer)0x0;\n      pIVar9 = pIVar8;\n      if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }\n      for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }\n      if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);\n    }" { (expression_statement "pIVar8 = (pointer)0x0;" (assignment_expression "pIVar8 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pIVar9 = pIVar8;" (assignment_expression "pIVar9 = pIVar8" identifier = identifier) ;) (if_statement "if (uVar10 != 0) {\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }\n        pIVar8 = (pointer)operator_new(uVar16);\n        pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;\n        pIVar9 = pIVar8;\n      }" { (if_statement "if (0x7ffffffffffffff < uVar10) {\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }" if (parenthesized_expression "(0x7ffffffffffffff < uVar10)" ( (binary_expression "0x7ffffffffffffff < uVar10" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          __throw_bad_alloc();\n        }" { comment (expression_statement "__throw_bad_alloc();" (call_expression "__throw_bad_alloc()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pIVar8 = (pointer)operator_new(uVar16);" (assignment_expression "pIVar8 = (pointer)operator_new(uVar16)" identifier = (cast_expression "(pointer)operator_new(uVar16)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))))) ;) (expression_statement "pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start;" (assignment_expression "pIVar13 = (this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start" identifier = (field_expression "(this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl._M_start" (field_expression "(this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )._M_impl" (parenthesized_expression "(this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n                  )" ( (ERROR "this->\n                  super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n                  super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n                  super__Vector_base<gold" (field_expression "this->\n                  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pIVar9 = pIVar8;" (assignment_expression "pIVar9 = pIVar8" identifier = identifier) ;) })) (for_statement "for (; pIVar12 != pIVar3; pIVar12 = pIVar12 + 1) {\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }" for ( ; (binary_expression "pIVar12 != pIVar3" identifier != identifier) ; (assignment_expression "pIVar12 = pIVar12 + 1" identifier = (binary_expression "pIVar12 + 1" identifier + number_literal)) ) (compound_statement "{\n        uVar6 = pIVar12->p2align_;\n        aVar5 = pIVar12->u1_;\n        pIVar8->shndx_ = pIVar12->shndx_;\n        pIVar8->p2align_ = uVar6;\n        pIVar8->u1_ = aVar5;\n        uVar6 = pIVar12->section_order_index_;\n        uVar7 = *(undefined4 *)&pIVar12->field_0x1c;\n        pIVar8->u2_ = pIVar12->u2_;\n        pIVar8->section_order_index_ = uVar6;\n        *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n        pIVar8 = pIVar8 + 1;\n      }" { (expression_statement "uVar6 = pIVar12->p2align_;" (assignment_expression "uVar6 = pIVar12->p2align_" identifier = (field_expression "pIVar12->p2align_" identifier -> field_identifier)) ;) (expression_statement "aVar5 = pIVar12->u1_;" (assignment_expression "aVar5 = pIVar12->u1_" identifier = (field_expression "pIVar12->u1_" identifier -> field_identifier)) ;) (expression_statement "pIVar8->shndx_ = pIVar12->shndx_;" (assignment_expression "pIVar8->shndx_ = pIVar12->shndx_" (field_expression "pIVar8->shndx_" identifier -> field_identifier) = (field_expression "pIVar12->shndx_" identifier -> field_identifier)) ;) (expression_statement "pIVar8->p2align_ = uVar6;" (assignment_expression "pIVar8->p2align_ = uVar6" (field_expression "pIVar8->p2align_" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar8->u1_ = aVar5;" (assignment_expression "pIVar8->u1_ = aVar5" (field_expression "pIVar8->u1_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar6 = pIVar12->section_order_index_;" (assignment_expression "uVar6 = pIVar12->section_order_index_" identifier = (field_expression "pIVar12->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "uVar7 = *(undefined4 *)&pIVar12->field_0x1c;" (assignment_expression "uVar7 = *(undefined4 *)&pIVar12->field_0x1c" identifier = (pointer_expression "*(undefined4 *)&pIVar12->field_0x1c" * (cast_expression "(undefined4 *)&pIVar12->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar12->field_0x1c" & (field_expression "pIVar12->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "pIVar8->u2_ = pIVar12->u2_;" (assignment_expression "pIVar8->u2_ = pIVar12->u2_" (field_expression "pIVar8->u2_" identifier -> field_identifier) = (field_expression "pIVar12->u2_" identifier -> field_identifier)) ;) (expression_statement "pIVar8->section_order_index_ = uVar6;" (assignment_expression "pIVar8->section_order_index_ = uVar6" (field_expression "pIVar8->section_order_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pIVar8->field_0x1c = uVar7;" (assignment_expression "*(undefined4 *)&pIVar8->field_0x1c = uVar7" (pointer_expression "*(undefined4 *)&pIVar8->field_0x1c" * (cast_expression "(undefined4 *)&pIVar8->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar8->field_0x1c" & (field_expression "pIVar8->field_0x1c" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pIVar8 = pIVar8 + 1;" (assignment_expression "pIVar8 = pIVar8 + 1" identifier = (binary_expression "pIVar8 + 1" identifier + number_literal)) ;) })) (if_statement "if (pIVar13 != (pointer)0x0) {\n        operator_delete(pIVar13);\n      }" if (parenthesized_expression "(pIVar13 != (pointer)0x0)" ( (binary_expression "pIVar13 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n        operator_delete(pIVar13);\n      }" { (expression_statement "operator_delete(pIVar13);" (call_expression "operator_delete(pIVar13)" identifier (argument_list "(pIVar13)" ( identifier ))) ;) })) (expression_statement "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9;" (assignment_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start = pIVar9" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_start" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl" (parenthesized_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )" ( (ERROR "this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n      super__Vector_base<gold" (field_expression "this->\n      super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16);" (assignment_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage = (pointer)((long)pIVar9 + uVar16)" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_end_of_storage" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl" (parenthesized_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )" ( (ERROR "this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n      super__Vector_base<gold" (field_expression "this->\n      super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((long)pIVar9 + uVar16)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar9 + uVar16)" ( (binary_expression "(long)pIVar9 + uVar16" (cast_expression "(long)pIVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16);" (assignment_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar9 + uVar16)" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl" (parenthesized_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )" ( (ERROR "this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n      super__Vector_base<gold" (field_expression "this->\n      super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((long)pIVar9 + uVar16)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar9 + uVar16)" ( (binary_expression "(long)pIVar9 + uVar16" (cast_expression "(long)pIVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }" else (compound_statement "{\n      pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;\n      lVar15 = (long)pIVar8 - (long)pIVar13;\n      uVar14 = lVar15 >> 5;\n      if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }\n      (this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n    }" { (expression_statement "pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish;" (assignment_expression "pIVar8 = (this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish" identifier = (field_expression "(this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl._M_finish" (field_expression "(this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )._M_impl" (parenthesized_expression "(this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n               )" ( (ERROR "this->\n               super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n               super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n               super__Vector_base<gold" (field_expression "this->\n               super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "lVar15 = (long)pIVar8 - (long)pIVar13;" (assignment_expression "lVar15 = (long)pIVar8 - (long)pIVar13" identifier = (binary_expression "(long)pIVar8 - (long)pIVar13" (cast_expression "(long)pIVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pIVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar14 = lVar15 >> 5;" (assignment_expression "uVar14 = lVar15 >> 5" identifier = (binary_expression "lVar15 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar14 < uVar10) {\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }\n      else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }" if (parenthesized_expression "(uVar14 < uVar10)" ( (binary_expression "uVar14 < uVar10" identifier < identifier) )) (compound_statement "{\n        lVar11 = 0;\n        if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }\n        pIVar9 = (pointer)((long)pIVar12 + lVar15);\n        if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }\n      }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (0 < lVar15) {\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }" if (parenthesized_expression "(0 < lVar15)" ( (binary_expression "0 < lVar15" number_literal < identifier) )) (compound_statement "{\n          do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);\n        }" { (do_statement "do {\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          } while (uVar14 != 0);" do (compound_statement "{\n            puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);\n            uVar4 = puVar1[1];\n            puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);\n            *puVar2 = *puVar1;\n            puVar2[1] = uVar4;\n            *(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);\n            *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);\n            lVar11 = lVar11 + 0x20;\n            uVar14 = uVar14 - 1;\n          }" { (expression_statement "puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11);" (assignment_expression "puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar11)" identifier = (cast_expression "(undefined8 *)((long)&pIVar12->shndx_ + lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->shndx_ + lVar11)" ( (binary_expression "(long)&pIVar12->shndx_ + lVar11" (cast_expression "(long)&pIVar12->shndx_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->shndx_" & (field_expression "pIVar12->shndx_" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "uVar4 = puVar1[1];" (assignment_expression "uVar4 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11);" (assignment_expression "puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar11)" identifier = (cast_expression "(undefined8 *)((long)&pIVar13->shndx_ + lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->shndx_ + lVar11)" ( (binary_expression "(long)&pIVar13->shndx_ + lVar11" (cast_expression "(long)&pIVar13->shndx_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->shndx_" & (field_expression "pIVar13->shndx_" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "*puVar2 = *puVar1;" (assignment_expression "*puVar2 = *puVar1" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar2[1] = uVar4;" (assignment_expression "puVar2[1] = uVar4" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11);" (assignment_expression "*(undefined8 *)((long)&pIVar13->u2_ + lVar11) =\n                 *(undefined8 *)((long)&pIVar12->u2_ + lVar11)" (pointer_expression "*(undefined8 *)((long)&pIVar13->u2_ + lVar11)" * (cast_expression "(undefined8 *)((long)&pIVar13->u2_ + lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->u2_ + lVar11)" ( (binary_expression "(long)&pIVar13->u2_ + lVar11" (cast_expression "(long)&pIVar13->u2_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->u2_" & (field_expression "pIVar13->u2_" identifier -> field_identifier))) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)&pIVar12->u2_ + lVar11)" * (cast_expression "(undefined8 *)((long)&pIVar12->u2_ + lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->u2_ + lVar11)" ( (binary_expression "(long)&pIVar12->u2_ + lVar11" (cast_expression "(long)&pIVar12->u2_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->u2_" & (field_expression "pIVar12->u2_" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11);" (assignment_expression "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11) =\n                 *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11)" (pointer_expression "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11)" * (cast_expression "(undefined4 *)((long)&pIVar13->section_order_index_ + lVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->section_order_index_ + lVar11)" ( (binary_expression "(long)&pIVar13->section_order_index_ + lVar11" (cast_expression "(long)&pIVar13->section_order_index_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->section_order_index_" & (field_expression "pIVar13->section_order_index_" identifier -> field_identifier))) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11)" * (cast_expression "(undefined4 *)((long)&pIVar12->section_order_index_ + lVar11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->section_order_index_ + lVar11)" ( (binary_expression "(long)&pIVar12->section_order_index_ + lVar11" (cast_expression "(long)&pIVar12->section_order_index_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->section_order_index_" & (field_expression "pIVar12->section_order_index_" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "lVar11 = lVar11 + 0x20;" (assignment_expression "lVar11 = lVar11 + 0x20" identifier = (binary_expression "lVar11 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar14 = uVar14 - 1;" (assignment_expression "uVar14 = uVar14 - 1" identifier = (binary_expression "uVar14 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) ;) })) (expression_statement "pIVar9 = (pointer)((long)pIVar12 + lVar15);" (assignment_expression "pIVar9 = (pointer)((long)pIVar12 + lVar15)" identifier = (call_expression "(pointer)((long)pIVar12 + lVar15)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar12 + lVar15)" ( (binary_expression "(long)pIVar12 + lVar15" (cast_expression "(long)pIVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((pointer)((long)pIVar12 + lVar15) != pIVar3) {\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }" if (parenthesized_expression "((pointer)((long)pIVar12 + lVar15) != pIVar3)" ( (binary_expression "(pointer)((long)pIVar12 + lVar15) != pIVar3" (call_expression "(pointer)((long)pIVar12 + lVar15)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar12 + lVar15)" ( (binary_expression "(long)pIVar12 + lVar15" (cast_expression "(long)pIVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != identifier) )) (compound_statement "{\n          do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);\n          (this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);\n          return this;\n        }" { (do_statement "do {\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          } while (pIVar3 != pIVar12);" do (compound_statement "{\n            uVar6 = pIVar9->p2align_;\n            aVar5 = pIVar9->u1_;\n            pIVar12 = pIVar9 + 1;\n            pIVar8->shndx_ = pIVar9->shndx_;\n            pIVar8->p2align_ = uVar6;\n            pIVar8->u1_ = aVar5;\n            uVar6 = pIVar9->section_order_index_;\n            uVar7 = *(undefined4 *)&pIVar9->field_0x1c;\n            pIVar8->u2_ = pIVar9->u2_;\n            pIVar8->section_order_index_ = uVar6;\n            *(undefined4 *)&pIVar8->field_0x1c = uVar7;\n            pIVar9 = pIVar12;\n            pIVar8 = pIVar8 + 1;\n          }" { (expression_statement "uVar6 = pIVar9->p2align_;" (assignment_expression "uVar6 = pIVar9->p2align_" identifier = (field_expression "pIVar9->p2align_" identifier -> field_identifier)) ;) (expression_statement "aVar5 = pIVar9->u1_;" (assignment_expression "aVar5 = pIVar9->u1_" identifier = (field_expression "pIVar9->u1_" identifier -> field_identifier)) ;) (expression_statement "pIVar12 = pIVar9 + 1;" (assignment_expression "pIVar12 = pIVar9 + 1" identifier = (binary_expression "pIVar9 + 1" identifier + number_literal)) ;) (expression_statement "pIVar8->shndx_ = pIVar9->shndx_;" (assignment_expression "pIVar8->shndx_ = pIVar9->shndx_" (field_expression "pIVar8->shndx_" identifier -> field_identifier) = (field_expression "pIVar9->shndx_" identifier -> field_identifier)) ;) (expression_statement "pIVar8->p2align_ = uVar6;" (assignment_expression "pIVar8->p2align_ = uVar6" (field_expression "pIVar8->p2align_" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar8->u1_ = aVar5;" (assignment_expression "pIVar8->u1_ = aVar5" (field_expression "pIVar8->u1_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar6 = pIVar9->section_order_index_;" (assignment_expression "uVar6 = pIVar9->section_order_index_" identifier = (field_expression "pIVar9->section_order_index_" identifier -> field_identifier)) ;) (expression_statement "uVar7 = *(undefined4 *)&pIVar9->field_0x1c;" (assignment_expression "uVar7 = *(undefined4 *)&pIVar9->field_0x1c" identifier = (pointer_expression "*(undefined4 *)&pIVar9->field_0x1c" * (cast_expression "(undefined4 *)&pIVar9->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar9->field_0x1c" & (field_expression "pIVar9->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "pIVar8->u2_ = pIVar9->u2_;" (assignment_expression "pIVar8->u2_ = pIVar9->u2_" (field_expression "pIVar8->u2_" identifier -> field_identifier) = (field_expression "pIVar9->u2_" identifier -> field_identifier)) ;) (expression_statement "pIVar8->section_order_index_ = uVar6;" (assignment_expression "pIVar8->section_order_index_ = uVar6" (field_expression "pIVar8->section_order_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pIVar8->field_0x1c = uVar7;" (assignment_expression "*(undefined4 *)&pIVar8->field_0x1c = uVar7" (pointer_expression "*(undefined4 *)&pIVar8->field_0x1c" * (cast_expression "(undefined4 *)&pIVar8->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar8->field_0x1c" & (field_expression "pIVar8->field_0x1c" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pIVar9 = pIVar12;" (assignment_expression "pIVar9 = pIVar12" identifier = identifier) ;) (expression_statement "pIVar8 = pIVar8 + 1;" (assignment_expression "pIVar8 = pIVar8 + 1" identifier = (binary_expression "pIVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar3 != pIVar12)" ( (binary_expression "pIVar3 != pIVar12" identifier != identifier) )) ;) (expression_statement "(this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);" (assignment_expression "(this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16)" (field_expression "(this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl._M_finish" (field_expression "(this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )._M_impl" (parenthesized_expression "(this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n          )" ( (ERROR "this->\n          super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n          super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n          super__Vector_base<gold" (field_expression "this->\n          super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((long)pIVar13 + uVar16)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar13 + uVar16)" ( (binary_expression "(long)pIVar13 + uVar16" (cast_expression "(long)pIVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (return_statement "return this;" return identifier ;) })) }) (else_clause "else if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }" else (if_statement "if (0 < (long)uVar16) {\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }" if (parenthesized_expression "(0 < (long)uVar16)" ( (binary_expression "0 < (long)uVar16" number_literal < (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        lVar15 = 0;\n        do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);\n      }" { (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        } while (uVar10 != 0);" do (compound_statement "{\n          puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);\n          uVar4 = puVar1[1];\n          puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);\n          *puVar2 = *puVar1;\n          puVar2[1] = uVar4;\n          *(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);\n          *(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);\n          lVar15 = lVar15 + 0x20;\n          uVar10 = uVar10 - 1;\n        }" { (expression_statement "puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15);" (assignment_expression "puVar1 = (undefined8 *)((long)&pIVar12->shndx_ + lVar15)" identifier = (cast_expression "(undefined8 *)((long)&pIVar12->shndx_ + lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->shndx_ + lVar15)" ( (binary_expression "(long)&pIVar12->shndx_ + lVar15" (cast_expression "(long)&pIVar12->shndx_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->shndx_" & (field_expression "pIVar12->shndx_" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "uVar4 = puVar1[1];" (assignment_expression "uVar4 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15);" (assignment_expression "puVar2 = (undefined8 *)((long)&pIVar13->shndx_ + lVar15)" identifier = (cast_expression "(undefined8 *)((long)&pIVar13->shndx_ + lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->shndx_ + lVar15)" ( (binary_expression "(long)&pIVar13->shndx_ + lVar15" (cast_expression "(long)&pIVar13->shndx_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->shndx_" & (field_expression "pIVar13->shndx_" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "*puVar2 = *puVar1;" (assignment_expression "*puVar2 = *puVar1" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "puVar2[1] = uVar4;" (assignment_expression "puVar2[1] = uVar4" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15);" (assignment_expression "*(undefined8 *)((long)&pIVar13->u2_ + lVar15) =\n               *(undefined8 *)((long)&pIVar12->u2_ + lVar15)" (pointer_expression "*(undefined8 *)((long)&pIVar13->u2_ + lVar15)" * (cast_expression "(undefined8 *)((long)&pIVar13->u2_ + lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->u2_ + lVar15)" ( (binary_expression "(long)&pIVar13->u2_ + lVar15" (cast_expression "(long)&pIVar13->u2_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->u2_" & (field_expression "pIVar13->u2_" identifier -> field_identifier))) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)&pIVar12->u2_ + lVar15)" * (cast_expression "(undefined8 *)((long)&pIVar12->u2_ + lVar15)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->u2_ + lVar15)" ( (binary_expression "(long)&pIVar12->u2_ + lVar15" (cast_expression "(long)&pIVar12->u2_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->u2_" & (field_expression "pIVar12->u2_" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15);" (assignment_expression "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15) =\n               *(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15)" (pointer_expression "*(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15)" * (cast_expression "(undefined4 *)((long)&pIVar13->section_order_index_ + lVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar13->section_order_index_ + lVar15)" ( (binary_expression "(long)&pIVar13->section_order_index_ + lVar15" (cast_expression "(long)&pIVar13->section_order_index_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar13->section_order_index_" & (field_expression "pIVar13->section_order_index_" identifier -> field_identifier))) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15)" * (cast_expression "(undefined4 *)((long)&pIVar12->section_order_index_ + lVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pIVar12->section_order_index_ + lVar15)" ( (binary_expression "(long)&pIVar12->section_order_index_ + lVar15" (cast_expression "(long)&pIVar12->section_order_index_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pIVar12->section_order_index_" & (field_expression "pIVar12->section_order_index_" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "lVar15 = lVar15 + 0x20;" (assignment_expression "lVar15 = lVar15 + 0x20" identifier = (binary_expression "lVar15 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) ;) })))) (expression_statement "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16);" (assignment_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish = (pointer)((long)pIVar13 + uVar16)" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl._M_finish" (field_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )._M_impl" (parenthesized_expression "(this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      )" ( (ERROR "this->\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "this->\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "this->\n      super__Vector_base<gold" (field_expression "this->\n      super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Input_section>_>" (binary_expression "Input_section>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) = (call_expression "(pointer)((long)pIVar13 + uVar16)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)pIVar13 + uVar16)" ( (binary_expression "(long)pIVar13 + uVar16" (cast_expression "(long)pIVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }))) })) (return_statement "return this;" return identifier ;) }))))))))))
(translation_unit "long * FUN_0020a6c0(long *param_1,long *param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_0020a6c0(long *param_1,long *param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_0020a6c0(long *param_1,long *param_2)" * (function_declarator "FUN_0020a6c0(long *param_1,long *param_2)" identifier (parameter_list "(long *param_1,long *param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" if (parenthesized_expression "(param_2 != param_1)" ( (binary_expression "param_2 != param_1" identifier != identifier) )) (compound_statement "{\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" { (expression_statement "puVar1 = (undefined8 *)param_2[1];" (assignment_expression "puVar1 = (undefined8 *)param_2[1]" identifier = (cast_expression "(undefined8 *)param_2[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" identifier = (cast_expression "(undefined8 *)*param_2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "lVar11 = (long)puVar1 - (long)puVar7;" (assignment_expression "lVar11 = (long)puVar1 - (long)puVar7" identifier = (binary_expression "(long)puVar1 - (long)puVar7" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar5 = lVar11 >> 5;" (assignment_expression "uVar5 = lVar11 >> 5" identifier = (binary_expression "lVar11 >> 5" identifier >> number_literal)) ;) (if_statement "if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" if (parenthesized_expression "((ulong)(param_1[2] - lVar8 >> 5) < uVar5)" ( (binary_expression "(ulong)(param_1[2] - lVar8 >> 5) < uVar5" (call_expression "(ulong)(param_1[2] - lVar8 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_1[2] - lVar8 >> 5)" ( (binary_expression "param_1[2] - lVar8 >> 5" (binary_expression "param_1[2] - lVar8" (subscript_expression "param_1[2]" identifier [ number_literal ]) - identifier) >> number_literal) ))) < identifier) )) (compound_statement "{\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }" { (expression_statement "puVar3 = (undefined8 *)0x0;" (assignment_expression "puVar3 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" { (if_statement "if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }" if (parenthesized_expression "(0x7ffffffffffffff < uVar5)" ( (binary_expression "0x7ffffffffffffff < uVar5" number_literal < identifier) )) (compound_statement "{\n                    \n          FUN_00319420();\n        }" { (expression_statement "FUN_00319420();" (call_expression "FUN_00319420()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar3 = (undefined8 *)FUN_002d94a0(lVar11);" (assignment_expression "puVar3 = (undefined8 *)FUN_002d94a0(lVar11)" identifier = (cast_expression "(undefined8 *)FUN_002d94a0(lVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002d94a0(lVar11)" identifier (argument_list "(lVar11)" ( identifier ))))) ;) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) })) (for_statement "for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" for ( ; (binary_expression "puVar7 != puVar1" identifier != identifier) ; (assignment_expression "puVar7 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ) (compound_statement "{\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" { (expression_statement "uVar2 = puVar7[1];" (assignment_expression "uVar2 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *puVar7;" (assignment_expression "*puVar3 = *puVar7" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar7[3];" (assignment_expression "uVar2 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = puVar7[2];" (assignment_expression "puVar3[2] = puVar7[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) })) (if_statement "if (lVar8 != 0) {\n        FUN_002dac70();\n      }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_002dac70();\n      }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_1 = (long)puVar4;" (assignment_expression "*param_1 = (long)puVar4" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = (long)puVar4 + lVar11;" (assignment_expression "param_1[2] = (long)puVar4 + lVar11" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (expression_statement "param_1[1] = (long)puVar4 + lVar11;" (assignment_expression "param_1[1] = (long)puVar4 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) }) (else_clause "else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" else (compound_statement "{\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" { (expression_statement "puVar3 = (undefined8 *)param_1[1];" (assignment_expression "puVar3 = (undefined8 *)param_1[1]" identifier = (cast_expression "(undefined8 *)param_1[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "lVar10 = (long)puVar3 - lVar8;" (assignment_expression "lVar10 = (long)puVar3 - lVar8" identifier = (binary_expression "(long)puVar3 - lVar8" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier)) ;) (expression_statement "uVar9 = lVar10 >> 5;" (assignment_expression "uVar9 = lVar10 >> 5" identifier = (binary_expression "lVar10 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) (compound_statement "{\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }" { (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" identifier = number_literal) ;) (if_statement "if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" if (parenthesized_expression "(0 < lVar10)" ( (binary_expression "0 < lVar10" number_literal < identifier) )) (compound_statement "{\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" { (do_statement "do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);" do (compound_statement "{\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          }" { (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1]" identifier = (subscript_expression "((undefined8 *)((long)puVar7 + lVar6))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar6))" ( (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6)" ( (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);" (assignment_expression "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6)" (pointer_expression "*(undefined8 *)(lVar8 + lVar6)" * (cast_expression "(undefined8 *)(lVar8 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar6)" ( (binary_expression "lVar8 + lVar6" identifier + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6)" ( (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)(lVar8 + lVar6))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar6))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar6))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar6))" ( (cast_expression "(undefined8 *)(lVar8 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar6)" ( (binary_expression "lVar8 + lVar6" identifier + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6)" * (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10 + lVar6)" ( (binary_expression "lVar8 + 0x10 + lVar6" (binary_expression "lVar8 + 0x10" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6 + 0x10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6 + 0x10)" ( (binary_expression "(long)puVar7 + lVar6 + 0x10" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6)" * (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18 + lVar6)" ( (binary_expression "lVar8 + 0x18 + lVar6" (binary_expression "lVar8 + 0x18" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)puVar7 + lVar6 + 0x18)" * (cast_expression "(undefined4 *)((long)puVar7 + lVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar6 + 0x18)" ( (binary_expression "(long)puVar7 + lVar6 + 0x18" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "lVar6 = lVar6 + 0x20;" (assignment_expression "lVar6 = lVar6 + 0x20" identifier = (binary_expression "lVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar4 = (undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "puVar4 = (undefined8 *)((long)puVar7 + lVar10)" identifier = (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (if_statement "if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" if (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10) != puVar1)" ( (binary_expression "(undefined8 *)((long)puVar7 + lVar10) != puVar1" (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) != identifier) )) (compound_statement "{\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" { (do_statement "do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);" do (compound_statement "{\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          }" { (expression_statement "uVar2 = puVar4[1];" (assignment_expression "uVar2 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "puVar7 = puVar4 + 4;" (assignment_expression "puVar7 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar3 = *puVar4;" (assignment_expression "*puVar3 = *puVar4" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[2] = puVar4[2];" (assignment_expression "puVar3[2] = puVar4[2]" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar1 != puVar7)" ( (binary_expression "puVar1 != puVar7" identifier != identifier) )) ;) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "lVar8 + lVar11" identifier + identifier)) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" else (if_statement "if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(0 < lVar11)" ( (binary_expression "0 < lVar11" number_literal < identifier) )) (compound_statement "{\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);" do (compound_statement "{\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        }" { (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1]" identifier = (subscript_expression "((undefined8 *)((long)puVar7 + lVar10))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10))" ( (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10)" (pointer_expression "*(undefined8 *)(lVar8 + lVar10)" * (cast_expression "(undefined8 *)(lVar8 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10)" ( (binary_expression "lVar8 + lVar10" identifier + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10)" ( (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))))) ;) (expression_statement "((undefined8 *)(lVar8 + lVar10))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar10))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar10))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar10))" ( (cast_expression "(undefined8 *)(lVar8 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + lVar10)" ( (binary_expression "lVar8 + lVar10" identifier + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10)" * (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x10 + lVar10)" ( (binary_expression "lVar8 + 0x10 + lVar10" (binary_expression "lVar8 + 0x10" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10 + 0x10)" * (cast_expression "(undefined8 *)((long)puVar7 + lVar10 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10 + 0x10)" ( (binary_expression "(long)puVar7 + lVar10 + 0x10" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10)" * (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar8 + 0x18 + lVar10)" ( (binary_expression "lVar8 + 0x18 + lVar10" (binary_expression "lVar8 + 0x18" identifier + number_literal) + identifier) )))) = (pointer_expression "*(undefined4 *)((long)puVar7 + lVar10 + 0x18)" * (cast_expression "(undefined4 *)((long)puVar7 + lVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + lVar10 + 0x18)" ( (binary_expression "(long)puVar7 + lVar10 + 0x18" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "lVar10 = lVar10 + 0x20;" (assignment_expression "lVar10 = lVar10 + 0x20" identifier = (binary_expression "lVar10 + 0x20" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" identifier = (binary_expression "uVar5 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })))) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "lVar8 + lVar11" identifier + identifier)) ;) }))) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT)) ;) }) (else_clause else (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 (sized_type_specifier long)) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) }))) })) (return_statement return IDENT ;) })))
(function_definition "long * FUN_0020a6c0(long *param_1,long *param_2)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" (long "long")) (pointer_declarator "* FUN_0020a6c0(long *param_1,long *param_2)" (* "*") (function_declarator "FUN_0020a6c0(long *param_1,long *param_2)" (identifier "FUN_0020a6c0") (parameter_list "(long *param_1,long *param_2)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  undefined8 *puVar3;\n  undefined8 *puVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  long lVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  \n  if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }\n  return param_1;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (if_statement "if (param_2 != param_1) {\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != param_1)" (( "(") (binary_expression "param_2 != param_1" (identifier "param_2") (!= "!=") (identifier "param_1")) () ")")) (compound_statement "{\n    puVar1 = (undefined8 *)param_2[1];\n    puVar7 = (undefined8 *)*param_2;\n    lVar8 = *param_1;\n    lVar11 = (long)puVar1 - (long)puVar7;\n    uVar5 = lVar11 >> 5;\n    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }\n  }" ({ "{") (expression_statement "puVar1 = (undefined8 *)param_2[1];" (assignment_expression "puVar1 = (undefined8 *)param_2[1]" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)param_2[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar7 = (undefined8 *)*param_2;" (assignment_expression "puVar7 = (undefined8 *)*param_2" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)*param_2" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" (identifier "lVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "lVar11 = (long)puVar1 - (long)puVar7;" (assignment_expression "lVar11 = (long)puVar1 - (long)puVar7" (identifier "lVar11") (= "=") (binary_expression "(long)puVar1 - (long)puVar7" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (- "-") (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")))) (; ";")) (expression_statement "uVar5 = lVar11 >> 5;" (assignment_expression "uVar5 = lVar11 >> 5" (identifier "uVar5") (= "=") (binary_expression "lVar11 >> 5" (identifier "lVar11") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }\n    else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" (if "if") (parenthesized_expression "((ulong)(param_1[2] - lVar8 >> 5) < uVar5)" (( "(") (binary_expression "(ulong)(param_1[2] - lVar8 >> 5) < uVar5" (call_expression "(ulong)(param_1[2] - lVar8 >> 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_1[2] - lVar8 >> 5)" (( "(") (binary_expression "param_1[2] - lVar8 >> 5" (binary_expression "param_1[2] - lVar8" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "lVar8")) (>> ">>") (number_literal "5")) () ")"))) (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n      puVar3 = (undefined8 *)0x0;\n      puVar4 = puVar3;\n      if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }\n      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }\n      if (lVar8 != 0) {\n        FUN_002dac70();\n      }\n      *param_1 = (long)puVar4;\n      param_1[2] = (long)puVar4 + lVar11;\n      param_1[1] = (long)puVar4 + lVar11;\n    }" ({ "{") (expression_statement "puVar3 = (undefined8 *)0x0;" (assignment_expression "puVar3 = (undefined8 *)0x0" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" (identifier "puVar4") (= "=") (identifier "puVar3")) (; ";")) (if_statement "if (uVar5 != 0) {\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }\n        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);\n        lVar8 = *param_1;\n        puVar4 = puVar3;\n      }" ({ "{") (if_statement "if (0x7ffffffffffffff < uVar5) {\n                    \n          FUN_00319420();\n        }" (if "if") (parenthesized_expression "(0x7ffffffffffffff < uVar5)" (( "(") (binary_expression "0x7ffffffffffffff < uVar5" (number_literal "0x7ffffffffffffff") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n                    \n          FUN_00319420();\n        }" ({ "{") (expression_statement "FUN_00319420();" (call_expression "FUN_00319420()" (identifier "FUN_00319420") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = (undefined8 *)FUN_002d94a0(lVar11);" (assignment_expression "puVar3 = (undefined8 *)FUN_002d94a0(lVar11)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)FUN_002d94a0(lVar11)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002d94a0(lVar11)" (identifier "FUN_002d94a0") (argument_list "(lVar11)" (( "(") (identifier "lVar11") () ")"))))) (; ";")) (expression_statement "lVar8 = *param_1;" (assignment_expression "lVar8 = *param_1" (identifier "lVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" (identifier "puVar4") (= "=") (identifier "puVar3")) (; ";")) (} "}"))) (for_statement "for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" (for "for") (( "(") (; ";") (binary_expression "puVar7 != puVar1" (identifier "puVar7") (!= "!=") (identifier "puVar1")) (; ";") (assignment_expression "puVar7 = puVar7 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) () ")") (compound_statement "{\n        uVar2 = puVar7[1];\n        *puVar3 = *puVar7;\n        puVar3[1] = uVar2;\n        uVar2 = puVar7[3];\n        puVar3[2] = puVar7[2];\n        puVar3[3] = uVar2;\n        puVar3 = puVar3 + 4;\n      }" ({ "{") (expression_statement "uVar2 = puVar7[1];" (assignment_expression "uVar2 = puVar7[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar3 = *puVar7;" (assignment_expression "*puVar3 = *puVar7" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar7[3];" (assignment_expression "uVar2 = puVar7[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar3[2] = puVar7[2];" (assignment_expression "puVar3[2] = puVar7[2]" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (lVar8 != 0) {\n        FUN_002dac70();\n      }" (if "if") (parenthesized_expression "(lVar8 != 0)" (( "(") (binary_expression "lVar8 != 0" (identifier "lVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_002dac70();\n      }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = (long)puVar4;" (assignment_expression "*param_1 = (long)puVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4"))) (; ";")) (expression_statement "param_1[2] = (long)puVar4 + lVar11;" (assignment_expression "param_1[2] = (long)puVar4 + lVar11" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")) (+ "+") (identifier "lVar11"))) (; ";")) (expression_statement "param_1[1] = (long)puVar4 + lVar11;" (assignment_expression "param_1[1] = (long)puVar4 + lVar11" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(long)puVar4 + lVar11" (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")) (+ "+") (identifier "lVar11"))) (; ";")) (} "}")) (else_clause "else {\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" (else "else") (compound_statement "{\n      puVar3 = (undefined8 *)param_1[1];\n      lVar10 = (long)puVar3 - lVar8;\n      uVar9 = lVar10 >> 5;\n      if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }\n      param_1[1] = lVar8 + lVar11;\n    }" ({ "{") (expression_statement "puVar3 = (undefined8 *)param_1[1];" (assignment_expression "puVar3 = (undefined8 *)param_1[1]" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)param_1[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "lVar10 = (long)puVar3 - lVar8;" (assignment_expression "lVar10 = (long)puVar3 - lVar8" (identifier "lVar10") (= "=") (binary_expression "(long)puVar3 - lVar8" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (- "-") (identifier "lVar8"))) (; ";")) (expression_statement "uVar9 = lVar10 >> 5;" (assignment_expression "uVar9 = lVar10 >> 5" (identifier "uVar9") (= "=") (binary_expression "lVar10 >> 5" (identifier "lVar10") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar9 < uVar5) {\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }\n      else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" (if "if") (parenthesized_expression "(uVar9 < uVar5)" (( "(") (binary_expression "uVar9 < uVar5" (identifier "uVar9") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n        lVar6 = 0;\n        if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }\n        puVar4 = (undefined8 *)((long)puVar7 + lVar10);\n        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }\n      }" ({ "{") (expression_statement "lVar6 = 0;" (assignment_expression "lVar6 = 0" (identifier "lVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < lVar10) {\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" (if "if") (parenthesized_expression "(0 < lVar10)" (( "(") (binary_expression "0 < lVar10" (number_literal "0") (< "<") (identifier "lVar10")) () ")")) (compound_statement "{\n          do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);\n        }" ({ "{") (do_statement "do {\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          } while (uVar9 != 0);" (do "do") (compound_statement "{\n            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];\n            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);\n            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;\n            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);\n            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);\n            lVar6 = lVar6 + 0x20;\n            uVar9 = uVar9 - 1;\n          }" ({ "{") (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1]" (identifier "uVar2") (= "=") (subscript_expression "((undefined8 *)((long)puVar7 + lVar6))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar6))" (( "(") (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar6)" (( "(") (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar6")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);" (assignment_expression "*(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6)" (pointer_expression "*(undefined8 *)(lVar8 + lVar6)" (* "*") (cast_expression "(undefined8 *)(lVar8 + lVar6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + lVar6)" (( "(") (binary_expression "lVar8 + lVar6" (identifier "lVar8") (+ "+") (identifier "lVar6")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6)" (* "*") (cast_expression "(undefined8 *)((long)puVar7 + lVar6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar6)" (( "(") (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar6")) () ")"))))) (; ";")) (expression_statement "((undefined8 *)(lVar8 + lVar6))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar6))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar6))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar6))" (( "(") (cast_expression "(undefined8 *)(lVar8 + lVar6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + lVar6)" (( "(") (binary_expression "lVar8 + lVar6" (identifier "lVar8") (+ "+") (identifier "lVar6")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar6)" (* "*") (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10 + lVar6)" (( "(") (binary_expression "lVar8 + 0x10 + lVar6" (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) (+ "+") (identifier "lVar6")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)puVar7 + lVar6 + 0x10)" (* "*") (cast_expression "(undefined8 *)((long)puVar7 + lVar6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar6 + 0x10)" (( "(") (binary_expression "(long)puVar7 + lVar6 + 0x10" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar6")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar6)" (* "*") (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x18 + lVar6)" (( "(") (binary_expression "lVar8 + 0x18 + lVar6" (binary_expression "lVar8 + 0x18" (identifier "lVar8") (+ "+") (number_literal "0x18")) (+ "+") (identifier "lVar6")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)puVar7 + lVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)((long)puVar7 + lVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar6 + 0x18)" (( "(") (binary_expression "(long)puVar7 + lVar6 + 0x18" (binary_expression "(long)puVar7 + lVar6" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar6")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar6 = lVar6 + 0x20;" (assignment_expression "lVar6 = lVar6 + 0x20" (identifier "lVar6") (= "=") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "puVar4 = (undefined8 *)((long)puVar7 + lVar10)" (identifier "puVar4") (= "=") (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10)" (( "(") (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) () ")")))) (; ";")) (if_statement "if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" (if "if") (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10) != puVar1)" (( "(") (binary_expression "(undefined8 *)((long)puVar7 + lVar10) != puVar1" (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10)" (( "(") (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) () ")"))) (!= "!=") (identifier "puVar1")) () ")")) (compound_statement "{\n          do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);\n          param_1[1] = lVar8 + lVar11;\n          return param_1;\n        }" ({ "{") (do_statement "do {\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          } while (puVar1 != puVar7);" (do "do") (compound_statement "{\n            uVar2 = puVar4[1];\n            puVar7 = puVar4 + 4;\n            *puVar3 = *puVar4;\n            puVar3[1] = uVar2;\n            uVar2 = puVar4[3];\n            puVar3[2] = puVar4[2];\n            puVar3[3] = uVar2;\n            puVar4 = puVar7;\n            puVar3 = puVar3 + 4;\n          }" ({ "{") (expression_statement "uVar2 = puVar4[1];" (assignment_expression "uVar2 = puVar4[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar7 = puVar4 + 4;" (assignment_expression "puVar7 = puVar4 + 4" (identifier "puVar7") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar3 = *puVar4;" (assignment_expression "*puVar3 = *puVar4" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar3[1] = uVar2;" (assignment_expression "puVar3[1] = uVar2" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar3[2] = puVar4[2];" (assignment_expression "puVar3[2] = puVar4[2]" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar3[3] = uVar2;" (assignment_expression "puVar3[3] = uVar2" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar3 = puVar3 + 4;" (assignment_expression "puVar3 = puVar3 + 4" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar1 != puVar7)" (( "(") (binary_expression "puVar1 != puVar7" (identifier "puVar1") (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "lVar8 + lVar11" (identifier "lVar8") (+ "+") (identifier "lVar11"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" (else "else") (if_statement "if (0 < lVar11) {\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" (if "if") (parenthesized_expression "(0 < lVar11)" (( "(") (binary_expression "0 < lVar11" (number_literal "0") (< "<") (identifier "lVar11")) () ")")) (compound_statement "{\n        lVar10 = 0;\n        do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);\n      }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        } while (uVar5 != 0);" (do "do") (compound_statement "{\n          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];\n          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);\n          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;\n          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);\n          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);\n          lVar10 = lVar10 + 0x20;\n          uVar5 = uVar5 - 1;\n        }" ({ "{") (expression_statement "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];" (assignment_expression "uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1]" (identifier "uVar2") (= "=") (subscript_expression "((undefined8 *)((long)puVar7 + lVar10))[1]" (parenthesized_expression "((undefined8 *)((long)puVar7 + lVar10))" (( "(") (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10)" (( "(") (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);" (assignment_expression "*(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10)" (pointer_expression "*(undefined8 *)(lVar8 + lVar10)" (* "*") (cast_expression "(undefined8 *)(lVar8 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + lVar10)" (( "(") (binary_expression "lVar8 + lVar10" (identifier "lVar8") (+ "+") (identifier "lVar10")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10)" (* "*") (cast_expression "(undefined8 *)((long)puVar7 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10)" (( "(") (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) () ")"))))) (; ";")) (expression_statement "((undefined8 *)(lVar8 + lVar10))[1] = uVar2;" (assignment_expression "((undefined8 *)(lVar8 + lVar10))[1] = uVar2" (subscript_expression "((undefined8 *)(lVar8 + lVar10))[1]" (parenthesized_expression "((undefined8 *)(lVar8 + lVar10))" (( "(") (cast_expression "(undefined8 *)(lVar8 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + lVar10)" (( "(") (binary_expression "lVar8 + lVar10" (identifier "lVar8") (+ "+") (identifier "lVar10")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);" (assignment_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10)" (pointer_expression "*(undefined8 *)(lVar8 + 0x10 + lVar10)" (* "*") (cast_expression "(undefined8 *)(lVar8 + 0x10 + lVar10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x10 + lVar10)" (( "(") (binary_expression "lVar8 + 0x10 + lVar10" (binary_expression "lVar8 + 0x10" (identifier "lVar8") (+ "+") (number_literal "0x10")) (+ "+") (identifier "lVar10")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)puVar7 + lVar10 + 0x10)" (* "*") (cast_expression "(undefined8 *)((long)puVar7 + lVar10 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10 + 0x10)" (( "(") (binary_expression "(long)puVar7 + lVar10 + 0x10" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);" (assignment_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18)" (pointer_expression "*(undefined4 *)(lVar8 + 0x18 + lVar10)" (* "*") (cast_expression "(undefined4 *)(lVar8 + 0x18 + lVar10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar8 + 0x18 + lVar10)" (( "(") (binary_expression "lVar8 + 0x18 + lVar10" (binary_expression "lVar8 + 0x18" (identifier "lVar8") (+ "+") (number_literal "0x18")) (+ "+") (identifier "lVar10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)puVar7 + lVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)((long)puVar7 + lVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + lVar10 + 0x18)" (( "(") (binary_expression "(long)puVar7 + lVar10 + 0x18" (binary_expression "(long)puVar7 + lVar10" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (identifier "lVar10")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "lVar10 = lVar10 + 0x20;" (assignment_expression "lVar10 = lVar10 + 0x20" (identifier "lVar10") (= "=") (binary_expression "lVar10 + 0x20" (identifier "lVar10") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "uVar5 = uVar5 - 1;" (assignment_expression "uVar5 = uVar5 - 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))))) (expression_statement "param_1[1] = lVar8 + lVar11;" (assignment_expression "param_1[1] = lVar8 + lVar11" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "lVar8 + lVar11" (identifier "lVar8") (+ "+") (identifier "lVar11"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype:
   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * 
   operator=(vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * this,
   vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
   * __x) */

vector<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2> *
__thiscall
std::
vector<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>::
operator=(vector<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>
          *var_4,vector<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>
                *var_3)

{
  type_1 *puVar1;
  type_1 *puVar2;
  type_2 var_10;
  type_1 uVar4;
  type_3 aVar5;
  type_4 uVar6;
  type_5 uVar7;
  type_2 var_11;
  type_2 var_18;
  type_6 var_6;
  long var_17;
  type_2 var_9;
  type_2 var_12;
  type_6 var_16;
  long var_15;
  type_6 var_14;
  
  if (var_3 != var_4) {
    var_10 = (var_3->
             super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
             )._M_impl._M_finish;
    var_9 = (var_3->
              super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
              )._M_impl._M_start;
    var_12 = (var_4->
              super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
              )._M_impl._M_start;
    var_14 = (long)var_10 - (long)var_9;
    var_6 = (long)var_14 >> 5;
    if ((type_6)((long)(var_4->
                      super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
                      )._M_impl._M_end_of_storage - (long)var_12 >> 5) < var_6) {
      var_11 = (type_2)0x0;
      var_18 = var_11;
      if (var_6 != 0) {
        if (0x7ffffffffffffff < var_6) {
                    /* WARNING: Subroutine does not return */
          var_7();
        }
        var_11 = (type_2)var_8(var_14);
        var_12 = (var_4->
                  super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
                  )._M_impl._M_start;
        var_18 = var_11;
      }
      for (; var_9 != var_10; var_9 = var_9 + 1) {
        uVar6 = var_9->p2align_;
        aVar5 = var_9->u1_;
        var_11->shndx_ = var_9->shndx_;
        var_11->p2align_ = uVar6;
        var_11->u1_ = aVar5;
        uVar6 = var_9->section_order_index_;
        uVar7 = *(type_5 *)&var_9->field_0x1c;
        var_11->u2_ = var_9->u2_;
        var_11->section_order_index_ = uVar6;
        *(type_5 *)&var_11->field_0x1c = uVar7;
        var_11 = var_11 + 1;
      }
      if (var_12 != (type_2)0x0) {
        var_13(var_12);
      }
      (var_4->
      super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
      )._M_impl._M_start = var_18;
      (var_4->
      super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
      )._M_impl._M_end_of_storage = (type_2)((long)var_18 + var_14);
      (var_4->
      super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
      )._M_impl._M_finish = (type_2)((long)var_18 + var_14);
    }
    else {
      var_11 = (var_4->
               super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
               )._M_impl._M_finish;
      var_15 = (long)var_11 - (long)var_12;
      var_16 = var_15 >> 5;
      if (var_16 < var_6) {
        var_17 = 0;
        if (0 < var_15) {
          do {
            puVar1 = (type_1 *)((long)&var_9->shndx_ + var_17);
            uVar4 = puVar1[1];
            puVar2 = (type_1 *)((long)&var_12->shndx_ + var_17);
            *puVar2 = *puVar1;
            puVar2[1] = uVar4;
            *(type_1 *)((long)&var_12->u2_ + var_17) =
                 *(type_1 *)((long)&var_9->u2_ + var_17);
            *(type_5 *)((long)&var_12->section_order_index_ + var_17) =
                 *(type_5 *)((long)&var_9->section_order_index_ + var_17);
            var_17 = var_17 + 0x20;
            var_16 = var_16 - 1;
          } while (var_16 != 0);
        }
        var_18 = (type_2)((long)var_9 + var_15);
        if ((type_2)((long)var_9 + var_15) != var_10) {
          do {
            uVar6 = var_18->p2align_;
            aVar5 = var_18->u1_;
            var_9 = var_18 + 1;
            var_11->shndx_ = var_18->shndx_;
            var_11->p2align_ = uVar6;
            var_11->u1_ = aVar5;
            uVar6 = var_18->section_order_index_;
            uVar7 = *(type_5 *)&var_18->field_0x1c;
            var_11->u2_ = var_18->u2_;
            var_11->section_order_index_ = uVar6;
            *(type_5 *)&var_11->field_0x1c = uVar7;
            var_18 = var_9;
            var_11 = var_11 + 1;
          } while (var_10 != var_9);
          (var_4->
          super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
          )._M_impl._M_finish = (type_2)((long)var_12 + var_14);
          return var_4;
        }
      }
      else if (0 < (long)var_14) {
        var_15 = 0;
        do {
          puVar1 = (type_1 *)((long)&var_9->shndx_ + var_15);
          uVar4 = puVar1[1];
          puVar2 = (type_1 *)((long)&var_12->shndx_ + var_15);
          *puVar2 = *puVar1;
          puVar2[1] = uVar4;
          *(type_1 *)((long)&var_12->u2_ + var_15) =
               *(type_1 *)((long)&var_9->u2_ + var_15);
          *(type_5 *)((long)&var_12->section_order_index_ + var_15) =
               *(type_5 *)((long)&var_9->section_order_index_ + var_15);
          var_15 = var_15 + 0x20;
          var_6 = var_6 - 1;
        } while (var_6 != 0);
      }
      (var_4->
      super__Vector_base<gold::Output_section::var_1,_std::allocator<gold::Output_section::var_1>var_2>var_5
      )._M_impl._M_finish = (type_2)((long)var_12 + var_14);
    }
  }
  return var_4;
}


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

long * MASKED(long *param_1,long *param_2)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  undefined8 *puVar3;
  undefined8 *puVar4;
  ulong uVar5;
  long lVar6;
  undefined8 *puVar7;
  long lVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  
  if (param_2 != param_1) {
    puVar1 = (undefined8 *)param_2[1];
    puVar7 = (undefined8 *)*param_2;
    lVar8 = *param_1;
    lVar11 = (long)puVar1 - (long)puVar7;
    uVar5 = lVar11 >> 5;
    if ((ulong)(param_1[2] - lVar8 >> 5) < uVar5) {
      puVar3 = (undefined8 *)0x0;
      puVar4 = puVar3;
      if (uVar5 != 0) {
        if (0x7ffffffffffffff < uVar5) {
                    /* WARNING: Subroutine does not return */
          FUN_00319420();
        }
        puVar3 = (undefined8 *)FUN_002d94a0(lVar11);
        lVar8 = *param_1;
        puVar4 = puVar3;
      }
      for (; puVar7 != puVar1; puVar7 = puVar7 + 4) {
        uVar2 = puVar7[1];
        *puVar3 = *puVar7;
        puVar3[1] = uVar2;
        uVar2 = puVar7[3];
        puVar3[2] = puVar7[2];
        puVar3[3] = uVar2;
        puVar3 = puVar3 + 4;
      }
      if (lVar8 != 0) {
        FUN_002dac70();
      }
      *param_1 = (long)puVar4;
      param_1[2] = (long)puVar4 + lVar11;
      param_1[1] = (long)puVar4 + lVar11;
    }
    else {
      puVar3 = (undefined8 *)param_1[1];
      lVar10 = (long)puVar3 - lVar8;
      uVar9 = lVar10 >> 5;
      if (uVar9 < uVar5) {
        lVar6 = 0;
        if (0 < lVar10) {
          do {
            uVar2 = ((undefined8 *)((long)puVar7 + lVar6))[1];
            *(undefined8 *)(lVar8 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6);
            ((undefined8 *)(lVar8 + lVar6))[1] = uVar2;
            *(undefined8 *)(lVar8 + 0x10 + lVar6) = *(undefined8 *)((long)puVar7 + lVar6 + 0x10);
            *(undefined4 *)(lVar8 + 0x18 + lVar6) = *(undefined4 *)((long)puVar7 + lVar6 + 0x18);
            lVar6 = lVar6 + 0x20;
            uVar9 = uVar9 - 1;
          } while (uVar9 != 0);
        }
        puVar4 = (undefined8 *)((long)puVar7 + lVar10);
        if ((undefined8 *)((long)puVar7 + lVar10) != puVar1) {
          do {
            uVar2 = puVar4[1];
            puVar7 = puVar4 + 4;
            *puVar3 = *puVar4;
            puVar3[1] = uVar2;
            uVar2 = puVar4[3];
            puVar3[2] = puVar4[2];
            puVar3[3] = uVar2;
            puVar4 = puVar7;
            puVar3 = puVar3 + 4;
          } while (puVar1 != puVar7);
          param_1[1] = lVar8 + lVar11;
          return param_1;
        }
      }
      else if (0 < lVar11) {
        lVar10 = 0;
        do {
          uVar2 = ((undefined8 *)((long)puVar7 + lVar10))[1];
          *(undefined8 *)(lVar8 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10);
          ((undefined8 *)(lVar8 + lVar10))[1] = uVar2;
          *(undefined8 *)(lVar8 + 0x10 + lVar10) = *(undefined8 *)((long)puVar7 + lVar10 + 0x10);
          *(undefined4 *)(lVar8 + 0x18 + lVar10) = *(undefined4 *)((long)puVar7 + lVar10 + 0x18);
          lVar10 = lVar10 + 0x20;
          uVar5 = uVar5 - 1;
        } while (uVar5 != 0);
      }
      param_1[1] = lVar8 + lVar11;
    }
  }
  return param_1;
}

