
/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: _M_realloc_insert<std::vector<long int, std::allocator<long int> > >
   DWARF original prototype: void
   _M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>(vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
   * this, iterator __position, vector<long_int,_std::allocator<long_int>_> * __args#0) */

void __thiscall
std::
vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
::_M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>
          (vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)

{
  undefined8 *puVar1;
  vector<long_int,_std::allocator<long_int>_> *pvVar2;
  vector<long_int,_std::allocator<long_int>_> *pvVar3;
  pointer plVar4;
  pointer plVar5;
  long lVar6;
  pointer pvVar7;
  pointer pvVar8;
  iterator iVar9;
  vector<long_int,_std::allocator<long_int>_> *pvVar10;
  vector<long_int,_std::allocator<long_int>_> *pvVar11;
  ulong uVar12;
  ulong uVar13;
  pointer pvVar14;
  pointer local_50;
  
  pvVar2 = (this->
           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
           )._M_impl._M_finish;
  pvVar3 = (this->
           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
           )._M_impl._M_start;
  lVar6 = (long)pvVar2 - (long)pvVar3 >> 3;
  if (lVar6 * -0x5555555555555555 == 0) {
    uVar12 = 1;
LAB_0021ba05:
    uVar13 = uVar12 * 0x18;
  }
  else {
    uVar12 = lVar6 * 0x5555555555555556;
    uVar13 = 0xfffffffffffffff0;
    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&
       (uVar12 < 0xaaaaaaaaaaaaaab)) {
      if (uVar12 == 0) {
        pvVar14 = (pointer)0x18;
        pvVar7 = (pointer)0x0;
        local_50 = (pointer)0x0;
        goto LAB_0021b873;
      }
      goto LAB_0021ba05;
    }
  }
  pvVar7 = (pointer)operator_new(uVar13);
  local_50 = (pointer)((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).
                              _M_impl._M_start + uVar13);
  pvVar14 = pvVar7 + 1;
LAB_0021b873:
  puVar1 = (undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3));
  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;
  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =
       (pointer)0x0;
  *puVar1 = plVar4;
  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;
  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =
       (pointer)0x0;
  puVar1[1] = plVar4;
  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.
           _M_end_of_storage;
  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =
       (pointer)0x0;
  puVar1[2] = plVar4;
  pvVar8 = pvVar7;
  pvVar10 = pvVar3;
  if (__position._M_current != pvVar3) {
    do {
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =
           (pointer)0x0;
      pvVar11 = pvVar10 + 1;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =
           (pointer)0x0;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =
           (pointer)0x0;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =
           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;
      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;
      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =
           (pointer)0x0;
      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;
      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.
               _M_end_of_storage;
      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;
      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.
               _M_end_of_storage;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =
           plVar4;
      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =
           plVar5;
      pvVar8 = pvVar8 + 1;
      pvVar10 = pvVar11;
    } while (__position._M_current != pvVar11);
    pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.
                               _M_impl._M_start +
                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))
    ;
  }
  iVar9._M_current = __position._M_current;
  pvVar8 = pvVar14;
  pvVar10 = pvVar3;
  if (__position._M_current != pvVar2) {
    do {
      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl
               ._M_start;
      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl
               ._M_end_of_storage;
      pvVar11 = iVar9._M_current + 1;
      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start
           = (pointer)0x0;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;
      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl
               ._M_finish;
      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.
      _M_end_of_storage = (pointer)0x0;
      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.
      _M_finish = (pointer)0x0;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;
      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =
           plVar5;
      iVar9._M_current = pvVar11;
      pvVar8 = pvVar8 + 1;
    } while (pvVar2 != pvVar11);
    pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.
                               _M_impl._M_start +
                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))
    ;
  }
  for (; pvVar10 != pvVar2; pvVar10 = pvVar10 + 1) {
    plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;
    if (plVar4 != (pointer)0x0) {
      operator_delete(plVar4);
    }
  }
  if (pvVar3 != (vector<long_int,_std::allocator<long_int>_> *)0x0) {
    operator_delete(pvVar3);
  }
  (this->
  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
  )._M_impl._M_start = pvVar7;
  (this->
  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
  )._M_impl._M_finish = pvVar14;
  (this->
  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
  )._M_impl._M_end_of_storage = local_50;
  return;
}



void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)

{
  undefined8 *puVar1;
  long *plVar2;
  long *plVar3;
  undefined8 uVar4;
  long lVar5;
  long lVar6;
  long *plVar7;
  long *plVar8;
  long *plVar9;
  long *plVar10;
  long *plVar11;
  ulong uVar12;
  long *plVar13;
  long local_50;
  
  plVar2 = (long *)param_1[1];
  plVar3 = (long *)*param_1;
  lVar6 = (long)plVar2 - (long)plVar3 >> 3;
  if (lVar6 * -0x5555555555555555 == 0) {
    uVar12 = 1;
LAB_0021ba05:
    local_50 = uVar12 * 0x18;
  }
  else {
    uVar12 = lVar6 * 0x5555555555555556;
    local_50 = -0x10;
    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&
       (uVar12 < 0xaaaaaaaaaaaaaab)) {
      if (uVar12 == 0) {
        plVar13 = (long *)0x18;
        plVar7 = (long *)0x0;
        local_50 = 0;
        goto LAB_0021b873;
      }
      goto LAB_0021ba05;
    }
  }
  plVar7 = (long *)FUN_00275550(local_50);
  local_50 = (long)plVar7 + local_50;
  plVar13 = plVar7 + 3;
LAB_0021b873:
  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));
  uVar4 = *param_3;
  *param_3 = 0;
  *puVar1 = uVar4;
  uVar4 = param_3[1];
  param_3[1] = 0;
  puVar1[1] = uVar4;
  uVar4 = param_3[2];
  param_3[2] = 0;
  puVar1[2] = uVar4;
  plVar8 = plVar7;
  plVar9 = plVar3;
  if (param_2 != plVar3) {
    do {
      plVar8[1] = 0;
      plVar13 = plVar9 + 3;
      plVar8[2] = 0;
      *plVar8 = 0;
      *plVar8 = *plVar9;
      *plVar9 = 0;
      lVar6 = plVar8[1];
      plVar8[1] = plVar9[1];
      plVar9[1] = lVar6;
      lVar6 = plVar8[2];
      plVar8[2] = plVar9[2];
      plVar9[2] = lVar6;
      plVar8 = plVar8 + 3;
      plVar9 = plVar13;
    } while (param_2 != plVar13);
    plVar13 = (long *)((long)plVar7 +
                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);
  }
  plVar9 = param_2;
  plVar11 = plVar13;
  plVar8 = plVar3;
  if (param_2 != plVar2) {
    do {
      lVar6 = *plVar9;
      lVar5 = plVar9[2];
      plVar10 = plVar9 + 3;
      *plVar9 = 0;
      *plVar11 = lVar6;
      lVar6 = plVar9[1];
      plVar9[2] = 0;
      plVar9[1] = 0;
      plVar11[1] = lVar6;
      plVar11[2] = lVar5;
      plVar9 = plVar10;
      plVar11 = plVar11 + 3;
    } while (plVar2 != plVar10);
    plVar13 = (long *)((long)plVar13 +
                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);
  }
  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {
    if (*plVar8 != 0) {
      FUN_00276d20();
    }
  }
  if (plVar3 != (long *)0x0) {
    FUN_00276d20(plVar3);
  }
  *param_1 = plVar7;
  param_1[1] = plVar13;
  param_1[2] = local_50;
  return;
}


PUSH R15
MOV R15,RSI
MOV RSI,-0x5555555555555555
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x28
MOV R13,qword ptr [RDI + 0x8]
MOV RBX,qword ptr [RDI]
MOV RAX,R13
SUB RAX,RBX
SAR RAX,0x3
IMUL RAX,RSI
MOV RSI,R15
SUB RSI,RBX
TEST RAX,RAX
JZ 0x0021ba00
LEA RDI,[RAX + RAX*0x1]
MOV R14,-0x10
CMP RAX,RDI
JBE 0x0021b9c8
MOV RDI,R14
MOV qword ptr [RSP + 0x18],RDX
MOV qword ptr [RSP + 0x10],RSI
CALL 0x00275550
MOV RSI,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RSP + 0x18]
MOV R12,RAX
LEA RAX,[RAX + R14*0x1]
MOV qword ptr [RSP + 0x8],RAX
LEA R14,[R12 + 0x18]
LEA RAX,[R12 + RSI*0x1]
MOV RSI,qword ptr [RDX]
MOV qword ptr [RDX],0x0
MOV qword ptr [RAX],RSI
MOV RSI,qword ptr [RDX + 0x8]
MOV qword ptr [RDX + 0x8],0x0
MOV qword ptr [RAX + 0x8],RSI
MOV RSI,qword ptr [RDX + 0x10]
MOV qword ptr [RDX + 0x10],0x0
MOV qword ptr [RAX + 0x10],RSI
CMP R15,RBX
JZ 0x0021b915
MOV RDX,RBX
MOV RAX,R12
NOP
MOV qword ptr [RAX + 0x8],0x0
ADD RDX,0x18
ADD RAX,0x18
MOV qword ptr [RAX + -0x8],0x0
MOV qword ptr [RAX + -0x18],0x0
MOV RSI,qword ptr [RDX + -0x18]
MOV qword ptr [RAX + -0x18],RSI
MOV RDI,qword ptr [RDX + -0x10]
MOV qword ptr [RDX + -0x18],0x0
MOV RSI,qword ptr [RAX + -0x10]
MOV qword ptr [RAX + -0x10],RDI
MOV RDI,qword ptr [RDX + -0x8]
MOV qword ptr [RDX + -0x10],RSI
MOV RSI,qword ptr [RAX + -0x8]
MOV qword ptr [RAX + -0x8],RDI
MOV qword ptr [RDX + -0x8],RSI
CMP R15,RDX
JNZ 0x0021b8b0
LEA RAX,[R15 + -0x18]
SUB RAX,RBX
SHR RAX,0x3
LEA R14,[R12 + RAX*0x8 + 0x30]
MOV RAX,R15
MOV RDX,R14
CMP R15,R13
JZ 0x0021b96f
MOV RSI,qword ptr [RAX]
MOV RDI,qword ptr [RAX + 0x10]
ADD RAX,0x18
ADD RDX,0x18
MOV qword ptr [RAX + -0x18],0x0
MOV qword ptr [RDX + -0x18],RSI
MOV RSI,qword ptr [RAX + -0x10]
MOV qword ptr [RAX + -0x8],0x0
MOV qword ptr [RAX + -0x10],0x0
MOV qword ptr [RDX + -0x10],RSI
MOV qword ptr [RDX + -0x8],RDI
CMP R13,RAX
JNZ 0x0021b920
MOV RAX,R13
SUB RAX,R15
SUB RAX,0x18
SHR RAX,0x3
LEA R14,[R14 + RAX*0x8 + 0x18]
MOV R15,RBX
CMP RBX,R13
JZ 0x0021b996
NOP word ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [R15]
TEST RDI,RDI
JZ 0x0021b98d
CALL 0x00276d20
ADD R15,0x18
CMP R15,R13
JNZ 0x0021b980
TEST RBX,RBX
JZ 0x0021b9a3
MOV RDI,RBX
CALL 0x00276d20
MOV RAX,qword ptr [RSP + 0x8]
MOV qword ptr [RBP],R12
MOV qword ptr [RBP + 0x8],R14
MOV qword ptr [RBP + 0x10],RAX
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,0xaaaaaaaaaaaaaaa
CMP RDI,RAX
JA 0x0021b846
TEST RDI,RDI
JNZ 0x0021ba05
MOV R14D,0x18
XOR R12D,R12D
MOV qword ptr [RSP + 0x8],0x0
JMP 0x0021b873
MOV EDI,0x1
LEA RAX,[RDI + RDI*0x2]
LEA R14,[RAX*0x8]
JMP 0x0021b846
(translation_unit "void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}\n\n" (function_definition "void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" primitive_type (function_declarator "FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,undefined8 *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (expression_statement "plVar2 = (long *)param_1[1];" (assignment_expression "plVar2 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar3 = (long *)*param_1;" (assignment_expression "plVar3 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar6 = (long)plVar2 - (long)plVar3 >> 3;" (assignment_expression "lVar6 = (long)plVar2 - (long)plVar3 >> 3" identifier = (binary_expression "(long)plVar2 - (long)plVar3 >> 3" (binary_expression "(long)plVar2 - (long)plVar3" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (if_statement "if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" if (parenthesized_expression "(lVar6 * -0x5555555555555555 == 0)" ( (binary_expression "lVar6 * -0x5555555555555555 == 0" (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0021ba05:\n    local_50 = uVar12 * 0x18;" statement_identifier : (expression_statement "local_50 = uVar12 * 0x18;" (assignment_expression "local_50 = uVar12 * 0x18" identifier = (binary_expression "uVar12 * 0x18" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" else (compound_statement "{\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" { (expression_statement "uVar12 = lVar6 * 0x5555555555555556;" (assignment_expression "uVar12 = lVar6 * 0x5555555555555556" identifier = (binary_expression "lVar6 * 0x5555555555555556" identifier * number_literal)) ;) (expression_statement "local_50 = -0x10;" (assignment_expression "local_50 = -0x10" identifier = number_literal) ;) (if_statement "if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" if (parenthesized_expression "(((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab))" ( (binary_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)" (parenthesized_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0)" ( (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0" (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12" (call_expression "(ulong)(lVar6 * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar6 * -0x5555555555555555)" ( (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) ))) < identifier) || (binary_expression "lVar6 * 0x5555555555555555 == 0" (binary_expression "lVar6 * 0x5555555555555555" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar12 < 0xaaaaaaaaaaaaaab)" ( (binary_expression "uVar12 < 0xaaaaaaaaaaaaaab" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" { (if_statement "if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" { (expression_statement "plVar13 = (long *)0x18;" (assignment_expression "plVar13 = (long *)0x18" identifier = (cast_expression "(long *)0x18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar7 = (long *)0x0;" (assignment_expression "plVar7 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0021b873;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021ba05;" goto statement_identifier ;) })) }))) (expression_statement "plVar7 = (long *)FUN_00275550(local_50);" (assignment_expression "plVar7 = (long *)FUN_00275550(local_50)" identifier = (cast_expression "(long *)FUN_00275550(local_50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(local_50)" identifier (argument_list "(local_50)" ( identifier ))))) ;) (expression_statement "local_50 = (long)plVar7 + local_50;" (assignment_expression "local_50 = (long)plVar7 + local_50" identifier = (binary_expression "(long)plVar7 + local_50" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (expression_statement "plVar13 = plVar7 + 3;" (assignment_expression "plVar13 = plVar7 + 3" identifier = (binary_expression "plVar7 + 3" identifier + number_literal)) ;) (labeled_statement "LAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" statement_identifier : (expression_statement "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" (assignment_expression "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" identifier = (cast_expression "(undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + ((long)param_2 - (long)plVar3))" ( (binary_expression "(long)plVar7 + ((long)param_2 - (long)plVar3)" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)param_2 - (long)plVar3)" ( (binary_expression "(long)param_2 - (long)plVar3" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;)) (expression_statement "uVar4 = *param_3;" (assignment_expression "uVar4 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*puVar1 = uVar4;" (assignment_expression "*puVar1 = uVar4" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "uVar4 = param_3[1];" (assignment_expression "uVar4 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_3[2];" (assignment_expression "uVar4 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (expression_statement "plVar9 = plVar3;" (assignment_expression "plVar9 = plVar3" identifier = identifier) ;) (if_statement "if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" if (parenthesized_expression "(param_2 != plVar3)" ( (binary_expression "param_2 != plVar3" identifier != identifier) )) (compound_statement "{\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" { (do_statement "do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);" do (compound_statement "{\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    }" { (expression_statement "plVar8[1] = 0;" (assignment_expression "plVar8[1] = 0" (subscript_expression "plVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar13 = plVar9 + 3;" (assignment_expression "plVar13 = plVar9 + 3" identifier = (binary_expression "plVar9 + 3" identifier + number_literal)) ;) (expression_statement "plVar8[2] = 0;" (assignment_expression "plVar8[2] = 0" (subscript_expression "plVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*plVar8 = 0;" (assignment_expression "*plVar8 = 0" (pointer_expression "*plVar8" * identifier) = number_literal) ;) (expression_statement "*plVar8 = *plVar9;" (assignment_expression "*plVar8 = *plVar9" (pointer_expression "*plVar8" * identifier) = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" * identifier) = number_literal) ;) (expression_statement "lVar6 = plVar8[1];" (assignment_expression "lVar6 = plVar8[1]" identifier = (subscript_expression "plVar8[1]" identifier [ number_literal ])) ;) (expression_statement "plVar8[1] = plVar9[1];" (assignment_expression "plVar8[1] = plVar9[1]" (subscript_expression "plVar8[1]" identifier [ number_literal ]) = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[1] = lVar6;" (assignment_expression "plVar9[1] = lVar6" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar6 = plVar8[2];" (assignment_expression "lVar6 = plVar8[2]" identifier = (subscript_expression "plVar8[2]" identifier [ number_literal ])) ;) (expression_statement "plVar8[2] = plVar9[2];" (assignment_expression "plVar8[2] = plVar9[2]" (subscript_expression "plVar8[2]" identifier [ number_literal ]) = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "plVar9[2] = lVar6;" (assignment_expression "plVar9[2] = lVar6" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar8 = plVar8 + 3;" (assignment_expression "plVar8 = plVar8 + 3" identifier = (binary_expression "plVar8 + 3" identifier + number_literal)) ;) (expression_statement "plVar9 = plVar13;" (assignment_expression "plVar9 = plVar13" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 != plVar13)" ( (binary_expression "param_2 != plVar13" identifier != identifier) )) ;) (expression_statement "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);" (assignment_expression "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" identifier = (cast_expression "(long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" ( (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30" (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" ( (binary_expression "(long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U" (binary_expression "(long)param_2 + (-0x18 - (long)plVar3)" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x18 - (long)plVar3)" ( (binary_expression "-0x18 - (long)plVar3" number_literal - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (expression_statement "plVar9 = param_2;" (assignment_expression "plVar9 = param_2" identifier = identifier) ;) (expression_statement "plVar11 = plVar13;" (assignment_expression "plVar11 = plVar13" identifier = identifier) ;) (expression_statement "plVar8 = plVar3;" (assignment_expression "plVar8 = plVar3" identifier = identifier) ;) (if_statement "if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" if (parenthesized_expression "(param_2 != plVar2)" ( (binary_expression "param_2 != plVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" { (do_statement "do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);" do (compound_statement "{\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    }" { (expression_statement "lVar6 = *plVar9;" (assignment_expression "lVar6 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "lVar5 = plVar9[2];" (assignment_expression "lVar5 = plVar9[2]" identifier = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "plVar10 = plVar9 + 3;" (assignment_expression "plVar10 = plVar9 + 3" identifier = (binary_expression "plVar9 + 3" identifier + number_literal)) ;) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" * identifier) = number_literal) ;) (expression_statement "*plVar11 = lVar6;" (assignment_expression "*plVar11 = lVar6" (pointer_expression "*plVar11" * identifier) = identifier) ;) (expression_statement "lVar6 = plVar9[1];" (assignment_expression "lVar6 = plVar9[1]" identifier = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[2] = 0;" (assignment_expression "plVar9[2] = 0" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar9[1] = 0;" (assignment_expression "plVar9[1] = 0" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar11[1] = lVar6;" (assignment_expression "plVar11[1] = lVar6" (subscript_expression "plVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar11[2] = lVar5;" (assignment_expression "plVar11[2] = lVar5" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar9 = plVar10;" (assignment_expression "plVar9 = plVar10" identifier = identifier) ;) (expression_statement "plVar11 = plVar11 + 3;" (assignment_expression "plVar11 = plVar11 + 3" identifier = (binary_expression "plVar11 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar2 != plVar10)" ( (binary_expression "plVar2 != plVar10" identifier != identifier) )) ;) (expression_statement "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);" (assignment_expression "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" identifier = (cast_expression "(long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" ( (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18" (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" ( (binary_expression "(long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U" (binary_expression "(long)plVar2 + (-0x18 - (long)param_2)" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x18 - (long)param_2)" ( (binary_expression "-0x18 - (long)param_2" number_literal - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (for_statement "for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" for ( ; (binary_expression "plVar8 != plVar2" identifier != identifier) ; (assignment_expression "plVar8 = plVar8 + 3" identifier = (binary_expression "plVar8 + 3" identifier + number_literal)) ) (compound_statement "{\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" { (if_statement "if (*plVar8 != 0) {\n      FUN_00276d20();\n    }" if (parenthesized_expression "(*plVar8 != 0)" ( (binary_expression "*plVar8 != 0" (pointer_expression "*plVar8" * identifier) != number_literal) )) (compound_statement "{\n      FUN_00276d20();\n    }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }" if (parenthesized_expression "(plVar3 != (long *)0x0)" ( (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00276d20(plVar3);\n  }" { (expression_statement "FUN_00276d20(plVar3);" (call_expression "FUN_00276d20(plVar3)" identifier (argument_list "(plVar3)" ( identifier ))) ;) })) (expression_statement "*param_1 = plVar7;" (assignment_expression "*param_1 = plVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = plVar13;" (assignment_expression "param_1[1] = plVar13" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_50;" (assignment_expression "param_1[2] = local_50" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original name: _M_realloc_insert<std::vector<long int, std::allocator<long int> > >\n   DWARF original prototype: void\n   _M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>(vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n   * this, iterator __position, vector<long_int,_std::allocator<long_int>_> * __args#0) */\n\nvoid __thiscall\nstd::\nvector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n::_M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>\n          (vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)\n\n{\n  undefined8 *puVar1;\n  vector<long_int,_std::allocator<long_int>_> *pvVar2;\n  vector<long_int,_std::allocator<long_int>_> *pvVar3;\n  pointer plVar4;\n  pointer plVar5;\n  long lVar6;\n  pointer pvVar7;\n  pointer pvVar8;\n  iterator iVar9;\n  vector<long_int,_std::allocator<long_int>_> *pvVar10;\n  vector<long_int,_std::allocator<long_int>_> *pvVar11;\n  ulong uVar12;\n  ulong uVar13;\n  pointer pvVar14;\n  pointer local_50;\n  \n  pvVar2 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_finish;\n  pvVar3 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_start;\n  lVar6 = (long)pvVar2 - (long)pvVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    uVar13 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    uVar13 = 0xfffffffffffffff0;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  pvVar7 = (pointer)operator_new(uVar13);\n  local_50 = (pointer)((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13);\n  pvVar14 = pvVar7 + 1;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3));\n  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n       (pointer)0x0;\n  *puVar1 = plVar4;\n  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n       (pointer)0x0;\n  puVar1[1] = plVar4;\n  plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n           _M_end_of_storage;\n  (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n       (pointer)0x0;\n  puVar1[2] = plVar4;\n  pvVar8 = pvVar7;\n  pvVar10 = pvVar3;\n  if (__position._M_current != pvVar3) {\n    do {\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;\n      pvVar11 = pvVar10 + 1;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      pvVar8 = pvVar8 + 1;\n      pvVar10 = pvVar11;\n    } while (__position._M_current != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))\n    ;\n  }\n  iVar9._M_current = __position._M_current;\n  pvVar8 = pvVar14;\n  pvVar10 = pvVar3;\n  if (__position._M_current != pvVar2) {\n    do {\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;\n      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;\n      pvVar11 = iVar9._M_current + 1;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      iVar9._M_current = pvVar11;\n      pvVar8 = pvVar8 + 1;\n    } while (pvVar2 != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))\n    ;\n  }\n  for (; pvVar10 != pvVar2; pvVar10 = pvVar10 + 1) {\n    plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n    if (plVar4 != (pointer)0x0) {\n      operator_delete(plVar4);\n    }\n  }\n  if (pvVar3 != (vector<long_int,_std::allocator<long_int>_> *)0x0) {\n    operator_delete(pvVar3);\n  }\n  (this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_start = pvVar7;\n  (this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_finish = pvVar14;\n  (this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_end_of_storage = local_50;\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nstd::\nvector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n::_M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>\n          (vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)\n\n{\n  undefined8 *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\nvector<std::vector<" identifier : : identifier < identifier : : identifier <) identifier , (ERROR "_std::allocator<long_int>" identifier : : identifier < identifier >) identifier (ERROR ">" >) , (ERROR "_std::allocator<std::vector<" identifier : : identifier < identifier : : identifier <) identifier , (ERROR "_std::allocator<long_int>_>_>_>\n::_M_realloc_insert<std::vector<" identifier : : identifier < identifier > identifier > identifier > identifier > : : identifier < identifier : : identifier <) identifier , (ERROR "_std::allocator<long_int>_>_>\n          (vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)\n\n{\n  undefined8" identifier : : identifier < identifier > identifier > (function_declarator "_>\n          (vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)" identifier (ERROR ">" >) (parameter_list "(vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           *this,iterator __position,vector<long_int,_std::allocator<long_int>_> *__args_0)" ( (parameter_declaration "vector<std::vector<long_int" type_identifier (ERROR "<std::vector<" < identifier : : identifier <) identifier) , (parameter_declaration "_std::allocator<long_int>_" type_identifier (ERROR "::allocator<long_int>" : : identifier < identifier >) identifier) (ERROR ">" >) , (parameter_declaration "_std::allocator<std::vector<long_int" type_identifier (ERROR "::allocator<std::vector<" : : identifier < identifier : : identifier <) identifier) , (parameter_declaration "_std::allocator<long_int>_>_>_>\n           *this" type_identifier (ERROR "::allocator<long_int>_>_>_>" : : identifier < identifier > identifier > identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "iterator __position" type_identifier identifier) , (parameter_declaration "vector<long_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "_std::allocator<long_int>_> *__args_0" type_identifier (ERROR "::allocator<long_int>_>" : : identifier < identifier > identifier >) (pointer_declarator "*__args_0" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (ERROR "vector<long_int," (binary_expression "vector<long_int" identifier < identifier) ,) (labeled_statement "_std::allocator<long_int>_> *pvVar2;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<long_int>_> *pvVar2;" (binary_expression "allocator<long_int>_> *pvVar2" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (pointer_expression "*pvVar2" * identifier)) ;)) (ERROR "vector<long_int," (binary_expression "vector<long_int" identifier < identifier) ,) (labeled_statement "_std::allocator<long_int>_> *pvVar3;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<long_int>_> *pvVar3;" (binary_expression "allocator<long_int>_> *pvVar3" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (pointer_expression "*pvVar3" * identifier)) ;)) (declaration "pointer plVar4;" type_identifier identifier ;) (declaration "pointer plVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "pointer pvVar7;" type_identifier identifier ;) (declaration "pointer pvVar8;" type_identifier identifier ;) (declaration "iterator iVar9;" type_identifier identifier ;) (ERROR "vector<long_int," (binary_expression "vector<long_int" identifier < identifier) ,) (labeled_statement "_std::allocator<long_int>_> *pvVar10;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<long_int>_> *pvVar10;" (binary_expression "allocator<long_int>_> *pvVar10" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (pointer_expression "*pvVar10" * identifier)) ;)) (ERROR "vector<long_int," (binary_expression "vector<long_int" identifier < identifier) ,) (labeled_statement "_std::allocator<long_int>_> *pvVar11;" statement_identifier : (ERROR ":" :) (expression_statement "allocator<long_int>_> *pvVar11;" (binary_expression "allocator<long_int>_> *pvVar11" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (pointer_expression "*pvVar11" * identifier)) ;)) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "pointer pvVar14;" type_identifier identifier ;) (declaration "pointer local_50;" type_identifier identifier ;) (expression_statement "pvVar2 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_finish;" (assignment_expression "pvVar2 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_finish" identifier = (field_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_finish" (field_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl" (parenthesized_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )" ( (ERROR "this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::" (comma_expression "this->\n           super__Vector_base<std::vector<long_int,_std" (binary_expression "this->\n           super__Vector_base<std::vector<long_int" (binary_expression "this->\n           super__Vector_base<std" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>_>_>" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pvVar3 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_start;" (assignment_expression "pvVar3 = (this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_start" identifier = (field_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl._M_start" (field_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )._M_impl" (parenthesized_expression "(this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n           )" ( (ERROR "this->\n           super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::" (comma_expression "this->\n           super__Vector_base<std::vector<long_int,_std" (binary_expression "this->\n           super__Vector_base<std::vector<long_int" (binary_expression "this->\n           super__Vector_base<std" (field_expression "this->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>_>_>" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "lVar6 = (long)pvVar2 - (long)pvVar3 >> 3;" (assignment_expression "lVar6 = (long)pvVar2 - (long)pvVar3 >> 3" identifier = (binary_expression "(long)pvVar2 - (long)pvVar3 >> 3" (binary_expression "(long)pvVar2 - (long)pvVar3" (cast_expression "(long)pvVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (if_statement "if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    uVar13 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    uVar13 = 0xfffffffffffffff0;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" if (parenthesized_expression "(lVar6 * -0x5555555555555555 == 0)" ( (binary_expression "lVar6 * -0x5555555555555555 == 0" (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar12 = 1;\nLAB_0021ba05:\n    uVar13 = uVar12 * 0x18;\n  }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0021ba05:\n    uVar13 = uVar12 * 0x18;" statement_identifier : (expression_statement "uVar13 = uVar12 * 0x18;" (assignment_expression "uVar13 = uVar12 * 0x18" identifier = (binary_expression "uVar12 * 0x18" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    uVar13 = 0xfffffffffffffff0;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" else (compound_statement "{\n    uVar12 = lVar6 * 0x5555555555555556;\n    uVar13 = 0xfffffffffffffff0;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" { (expression_statement "uVar12 = lVar6 * 0x5555555555555556;" (assignment_expression "uVar12 = lVar6 * 0x5555555555555556" identifier = (binary_expression "lVar6 * 0x5555555555555556" identifier * number_literal)) ;) (expression_statement "uVar13 = 0xfffffffffffffff0;" (assignment_expression "uVar13 = 0xfffffffffffffff0" identifier = number_literal) ;) (if_statement "if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" if (parenthesized_expression "(((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab))" ( (binary_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)" (parenthesized_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0)" ( (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0" (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12" (call_expression "(ulong)(lVar6 * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar6 * -0x5555555555555555)" ( (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) ))) < identifier) || (binary_expression "lVar6 * 0x5555555555555555 == 0" (binary_expression "lVar6 * 0x5555555555555555" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar12 < 0xaaaaaaaaaaaaaab)" ( (binary_expression "uVar12 < 0xaaaaaaaaaaaaaab" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" { (if_statement "if (uVar12 == 0) {\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        pvVar14 = (pointer)0x18;\n        pvVar7 = (pointer)0x0;\n        local_50 = (pointer)0x0;\n        goto LAB_0021b873;\n      }" { (expression_statement "pvVar14 = (pointer)0x18;" (assignment_expression "pvVar14 = (pointer)0x18" identifier = (cast_expression "(pointer)0x18" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pvVar7 = (pointer)0x0;" (assignment_expression "pvVar7 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_50 = (pointer)0x0;" (assignment_expression "local_50 = (pointer)0x0" identifier = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (goto_statement "goto LAB_0021b873;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021ba05;" goto statement_identifier ;) })) }))) (expression_statement "pvVar7 = (pointer)operator_new(uVar13);" (assignment_expression "pvVar7 = (pointer)operator_new(uVar13)" identifier = (cast_expression "(pointer)operator_new(uVar13)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))))) ;) (expression_statement "local_50 = (pointer)((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13);" (assignment_expression "local_50 = (pointer)((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13)" identifier = (call_expression "(pointer)((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13)" ( (binary_expression "(long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start + uVar13" (cast_expression "(long)&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start" & (field_expression "(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl._M_start" (field_expression "(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>).\n                              _M_impl" (parenthesized_expression "(pvVar7->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar7->super__Vector_base<long_int,_std::" (comma_expression "pvVar7->super__Vector_base<long_int,_std" (binary_expression "pvVar7->super__Vector_base<long_int" (field_expression "pvVar7->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier))) + identifier) )))) ;) (expression_statement "pvVar14 = pvVar7 + 1;" (assignment_expression "pvVar14 = pvVar7 + 1" identifier = (binary_expression "pvVar7 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_0021b873:\n  puVar1 = (undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3));" statement_identifier : (expression_statement "puVar1 = (undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3));" (assignment_expression "puVar1 = (undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3))" identifier = (cast_expression "(undefined8 *)((long)pvVar7 + ((long)__position._M_current - (long)pvVar3))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar7 + ((long)__position._M_current - (long)pvVar3))" ( (binary_expression "(long)pvVar7 + ((long)__position._M_current - (long)pvVar3)" (cast_expression "(long)pvVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)__position._M_current - (long)pvVar3)" ( (binary_expression "(long)__position._M_current - (long)pvVar3" (cast_expression "(long)__position._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__position._M_current" identifier . field_identifier)) - (cast_expression "(long)pvVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;)) (expression_statement "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;" (assignment_expression "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" identifier = (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n       (pointer)0x0;" (assignment_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n       (pointer)0x0" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "*puVar1 = plVar4;" (assignment_expression "*puVar1 = plVar4" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;" (assignment_expression "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" identifier = (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n       (pointer)0x0;" (assignment_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n       (pointer)0x0" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "puVar1[1] = plVar4;" (assignment_expression "puVar1[1] = plVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n           _M_end_of_storage;" (assignment_expression "plVar4 = (__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n           _M_end_of_storage" identifier = (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n           _M_end_of_storage" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n       (pointer)0x0;" (assignment_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n       (pointer)0x0" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage" (field_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(__args_0->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "__args_0->super__Vector_base<long_int,_std::" (comma_expression "__args_0->super__Vector_base<long_int,_std" (binary_expression "__args_0->super__Vector_base<long_int" (field_expression "__args_0->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "puVar1[2] = plVar4;" (assignment_expression "puVar1[2] = plVar4" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pvVar8 = pvVar7;" (assignment_expression "pvVar8 = pvVar7" identifier = identifier) ;) (expression_statement "pvVar10 = pvVar3;" (assignment_expression "pvVar10 = pvVar3" identifier = identifier) ;) (if_statement "if (__position._M_current != pvVar3) {\n    do {\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;\n      pvVar11 = pvVar10 + 1;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      pvVar8 = pvVar8 + 1;\n      pvVar10 = pvVar11;\n    } while (__position._M_current != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))\n    ;\n  }" if (parenthesized_expression "(__position._M_current != pvVar3)" ( (binary_expression "__position._M_current != pvVar3" (field_expression "__position._M_current" identifier . field_identifier) != identifier) )) (compound_statement "{\n    do {\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;\n      pvVar11 = pvVar10 + 1;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      pvVar8 = pvVar8 + 1;\n      pvVar10 = pvVar11;\n    } while (__position._M_current != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))\n    ;\n  }" { (do_statement "do {\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;\n      pvVar11 = pvVar10 + 1;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      pvVar8 = pvVar8 + 1;\n      pvVar10 = pvVar11;\n    } while (__position._M_current != pvVar11);" do (compound_statement "{\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;\n      pvVar11 = pvVar10 + 1;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;\n      plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;\n      (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      pvVar8 = pvVar8 + 1;\n      pvVar10 = pvVar11;\n    }" { (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish =\n           (pointer)0x0" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pvVar11 = pvVar10 + 1;" (assignment_expression "pvVar11 = pvVar10 + 1" identifier = (binary_expression "pvVar10 + 1" identifier + number_literal)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           (pointer)0x0" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;" (assignment_expression "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" identifier = (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0;" (assignment_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start =\n           (pointer)0x0" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish;" (assignment_expression "plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" identifier = (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;" (assignment_expression "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage" identifier = (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5;" (assignment_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar5" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage;" (assignment_expression "plVar5 = (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage" identifier = (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n               _M_end_of_storage" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar4" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;" (assignment_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pvVar8 = pvVar8 + 1;" (assignment_expression "pvVar8 = pvVar8 + 1" identifier = (binary_expression "pvVar8 + 1" identifier + number_literal)) ;) (expression_statement "pvVar10 = pvVar11;" (assignment_expression "pvVar10 = pvVar11" identifier = identifier) ;) }) while (parenthesized_expression "(__position._M_current != pvVar11)" ( (binary_expression "__position._M_current != pvVar11" (field_expression "__position._M_current" identifier . field_identifier) != identifier) )) ;) (expression_statement "pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))\n    ;" (assignment_expression "pvVar14 = (pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))" identifier = (call_expression "(pointer)((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)&pvVar7[2].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U))" ( (binary_expression "(long)&pvVar7[2].super__Vector_base<long_int" (cast_expression "(long)&pvVar7[2].super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pvVar7[2].super__Vector_base" & (field_expression "pvVar7[2].super__Vector_base" (subscript_expression "pvVar7[2]" identifier [ number_literal ]) . field_identifier))) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U)" (field_expression "allocator<long_int>_>.\n                               _M_impl._M_start" (field_expression "allocator<long_int>_>.\n                               _M_impl" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (parenthesized_expression "((long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U)" ( (binary_expression "(long)__position._M_current + (-0x18 - (long)pvVar3) & 0xfffffffffffffff8U" (binary_expression "(long)__position._M_current + (-0x18 - (long)pvVar3)" (cast_expression "(long)__position._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__position._M_current" identifier . field_identifier)) + (parenthesized_expression "(-0x18 - (long)pvVar3)" ( (binary_expression "-0x18 - (long)pvVar3" number_literal - (cast_expression "(long)pvVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) )))) ;) })) (expression_statement "iVar9._M_current = __position._M_current;" (assignment_expression "iVar9._M_current = __position._M_current" (field_expression "iVar9._M_current" identifier . field_identifier) = (field_expression "__position._M_current" identifier . field_identifier)) ;) (expression_statement "pvVar8 = pvVar14;" (assignment_expression "pvVar8 = pvVar14" identifier = identifier) ;) (expression_statement "pvVar10 = pvVar3;" (assignment_expression "pvVar10 = pvVar3" identifier = identifier) ;) (if_statement "if (__position._M_current != pvVar2) {\n    do {\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;\n      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;\n      pvVar11 = iVar9._M_current + 1;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      iVar9._M_current = pvVar11;\n      pvVar8 = pvVar8 + 1;\n    } while (pvVar2 != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))\n    ;\n  }" if (parenthesized_expression "(__position._M_current != pvVar2)" ( (binary_expression "__position._M_current != pvVar2" (field_expression "__position._M_current" identifier . field_identifier) != identifier) )) (compound_statement "{\n    do {\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;\n      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;\n      pvVar11 = iVar9._M_current + 1;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      iVar9._M_current = pvVar11;\n      pvVar8 = pvVar8 + 1;\n    } while (pvVar2 != pvVar11);\n    pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))\n    ;\n  }" { (do_statement "do {\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;\n      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;\n      pvVar11 = iVar9._M_current + 1;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      iVar9._M_current = pvVar11;\n      pvVar8 = pvVar8 + 1;\n    } while (pvVar2 != pvVar11);" do (compound_statement "{\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;\n      plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;\n      pvVar11 = iVar9._M_current + 1;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;\n      plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;\n      ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;\n      (pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;\n      iVar9._M_current = pvVar11;\n      pvVar8 = pvVar8 + 1;\n    }" { (expression_statement "plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start;" (assignment_expression "plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start" identifier = (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_start" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage;" (assignment_expression "plVar5 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage" identifier = (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_end_of_storage" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pvVar11 = iVar9._M_current + 1;" (assignment_expression "pvVar11 = iVar9._M_current + 1" identifier = (binary_expression "iVar9._M_current + 1" (field_expression "iVar9._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0;" (assignment_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start\n           = (pointer)0x0" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start = plVar4" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish;" (assignment_expression "plVar4 = ((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish" identifier = (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl\n               ._M_finish" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0;" (assignment_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage = (pointer)0x0" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_end_of_storage" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0;" (assignment_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish = (pointer)0x0" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl.\n      _M_finish" (field_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "((iVar9._M_current)->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "(iVar9._M_current)->super__Vector_base<long_int,_std::" (comma_expression "(iVar9._M_current)->super__Vector_base<long_int,_std" (binary_expression "(iVar9._M_current)->super__Vector_base<long_int" (field_expression "(iVar9._M_current)->super__Vector_base" (parenthesized_expression "(iVar9._M_current)" ( (field_expression "iVar9._M_current" identifier . field_identifier) )) -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish = plVar4" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_finish" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5;" (assignment_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage =\n           plVar5" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_end_of_storage" (field_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar8->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar8->super__Vector_base<long_int,_std::" (comma_expression "pvVar8->super__Vector_base<long_int,_std" (binary_expression "pvVar8->super__Vector_base<long_int" (field_expression "pvVar8->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "iVar9._M_current = pvVar11;" (assignment_expression "iVar9._M_current = pvVar11" (field_expression "iVar9._M_current" identifier . field_identifier) = identifier) ;) (expression_statement "pvVar8 = pvVar8 + 1;" (assignment_expression "pvVar8 = pvVar8 + 1" identifier = (binary_expression "pvVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pvVar2 != pvVar11)" ( (binary_expression "pvVar2 != pvVar11" identifier != identifier) )) ;) (expression_statement "pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))\n    ;" (assignment_expression "pvVar14 = (pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))" identifier = (call_expression "(pointer)((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((long)&pvVar14[1].super__Vector_base<long_int,_std::allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))" ( (binary_expression "(long)&pvVar14[1].super__Vector_base<long_int" (cast_expression "(long)&pvVar14[1].super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pvVar14[1].super__Vector_base" & (field_expression "pvVar14[1].super__Vector_base" (subscript_expression "pvVar14[1]" identifier [ number_literal ]) . field_identifier))) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<long_int>_>.\n                               _M_impl._M_start +\n                       ((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U)" (field_expression "allocator<long_int>_>.\n                               _M_impl._M_start" (field_expression "allocator<long_int>_>.\n                               _M_impl" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (parenthesized_expression "((long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U)" ( (binary_expression "(long)pvVar2 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U" (binary_expression "(long)pvVar2 + (-0x18 - (long)__position._M_current)" (cast_expression "(long)pvVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x18 - (long)__position._M_current)" ( (binary_expression "-0x18 - (long)__position._M_current" number_literal - (cast_expression "(long)__position._M_current" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "__position._M_current" identifier . field_identifier))) ))) & number_literal) ))) )))) ;) })) (for_statement "for (; pvVar10 != pvVar2; pvVar10 = pvVar10 + 1) {\n    plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n    if (plVar4 != (pointer)0x0) {\n      operator_delete(plVar4);\n    }\n  }" for ( ; (binary_expression "pvVar10 != pvVar2" identifier != identifier) ; (assignment_expression "pvVar10 = pvVar10 + 1" identifier = (binary_expression "pvVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n    plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;\n    if (plVar4 != (pointer)0x0) {\n      operator_delete(plVar4);\n    }\n  }" { (expression_statement "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start;" (assignment_expression "plVar4 = (pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" identifier = (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl._M_start" (field_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)._M_impl" (parenthesized_expression "(pvVar10->super__Vector_base<long_int,_std::allocator<long_int>_>)" ( (ERROR "pvVar10->super__Vector_base<long_int,_std::" (comma_expression "pvVar10->super__Vector_base<long_int,_std" (binary_expression "pvVar10->super__Vector_base<long_int" (field_expression "pvVar10->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (plVar4 != (pointer)0x0) {\n      operator_delete(plVar4);\n    }" if (parenthesized_expression "(plVar4 != (pointer)0x0)" ( (binary_expression "plVar4 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(plVar4);\n    }" { (expression_statement "operator_delete(plVar4);" (call_expression "operator_delete(plVar4)" identifier (argument_list "(plVar4)" ( identifier ))) ;) })) })) (if_statement "if (pvVar3 != (vector<long_int,_std::allocator<long_int>_> *)0x0) {\n    operator_delete(pvVar3);\n  }" if (parenthesized_expression "(pvVar3 != (vector<long_int,_std::allocator<long_int>_> *)0x0)" ( (binary_expression "pvVar3 != (vector<long_int,_std::allocator<long_int>_> *)0x0)" identifier != (parenthesized_expression "(vector<long_int,_std::allocator<long_int>_> *)0x0)" ( (ERROR "vector<long_int,_std::" (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_> *)0x0" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n    operator_delete(pvVar3);\n  }" { (expression_statement "operator_delete(pvVar3);" (call_expression "operator_delete(pvVar3)" identifier (argument_list "(pvVar3)" ( identifier ))) ;) })) (expression_statement "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_start = pvVar7;" (assignment_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_start = pvVar7" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_start" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )" ( (ERROR "this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::" (comma_expression "this->\n  super__Vector_base<std::vector<long_int,_std" (binary_expression "this->\n  super__Vector_base<std::vector<long_int" (binary_expression "this->\n  super__Vector_base<std" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>_>_>" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_finish = pvVar14;" (assignment_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_finish = pvVar14" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_finish" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )" ( (ERROR "this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::" (comma_expression "this->\n  super__Vector_base<std::vector<long_int,_std" (binary_expression "this->\n  super__Vector_base<std::vector<long_int" (binary_expression "this->\n  super__Vector_base<std" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>_>_>" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_end_of_storage = local_50;" (assignment_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_end_of_storage = local_50" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl._M_end_of_storage" (field_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )._M_impl" (parenthesized_expression "(this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>\n  )" ( (ERROR "this->\n  super__Vector_base<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::" (comma_expression "this->\n  super__Vector_base<std::vector<long_int,_std" (binary_expression "this->\n  super__Vector_base<std::vector<long_int" (binary_expression "this->\n  super__Vector_base<std" (field_expression "this->\n  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<long_int>_>,_std" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<long_int,_std" (binary_expression "vector<long_int" identifier < identifier) , identifier) : :) (binary_expression "allocator<long_int>_>_>_>" (binary_expression "allocator<long_int>_>_>_" (binary_expression "allocator<long_int>_>_" (binary_expression "allocator<long_int>_" (binary_expression "allocator<long_int" identifier < identifier) > identifier) > identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}\n\n" (function_definition "void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" primitive_type (function_declarator "FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,undefined8 *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (expression_statement "plVar2 = (long *)param_1[1];" (assignment_expression "plVar2 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar3 = (long *)*param_1;" (assignment_expression "plVar3 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "lVar6 = (long)plVar2 - (long)plVar3 >> 3;" (assignment_expression "lVar6 = (long)plVar2 - (long)plVar3 >> 3" identifier = (binary_expression "(long)plVar2 - (long)plVar3 >> 3" (binary_expression "(long)plVar2 - (long)plVar3" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (if_statement "if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" if (parenthesized_expression "(lVar6 * -0x5555555555555555 == 0)" ( (binary_expression "lVar6 * -0x5555555555555555 == 0" (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) == number_literal) )) (compound_statement "{\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0021ba05:\n    local_50 = uVar12 * 0x18;" statement_identifier : (expression_statement "local_50 = uVar12 * 0x18;" (assignment_expression "local_50 = uVar12 * 0x18" identifier = (binary_expression "uVar12 * 0x18" identifier * number_literal)) ;)) }) (else_clause "else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" else (compound_statement "{\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" { (expression_statement "uVar12 = lVar6 * 0x5555555555555556;" (assignment_expression "uVar12 = lVar6 * 0x5555555555555556" identifier = (binary_expression "lVar6 * 0x5555555555555556" identifier * number_literal)) ;) (expression_statement "local_50 = -0x10;" (assignment_expression "local_50 = -0x10" identifier = number_literal) ;) (if_statement "if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" if (parenthesized_expression "(((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab))" ( (binary_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)" (parenthesized_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0)" ( (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0" (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12" (call_expression "(ulong)(lVar6 * -0x5555555555555555)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar6 * -0x5555555555555555)" ( (binary_expression "lVar6 * -0x5555555555555555" identifier * number_literal) ))) < identifier) || (binary_expression "lVar6 * 0x5555555555555555 == 0" (binary_expression "lVar6 * 0x5555555555555555" identifier * number_literal) == number_literal)) )) && (parenthesized_expression "(uVar12 < 0xaaaaaaaaaaaaaab)" ( (binary_expression "uVar12 < 0xaaaaaaaaaaaaaab" identifier < number_literal) ))) )) (compound_statement "{\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" { (if_statement "if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" { (expression_statement "plVar13 = (long *)0x18;" (assignment_expression "plVar13 = (long *)0x18" identifier = (cast_expression "(long *)0x18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar7 = (long *)0x0;" (assignment_expression "plVar7 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0021b873;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021ba05;" goto statement_identifier ;) })) }))) (expression_statement "plVar7 = (long *)FUN_00275550(local_50);" (assignment_expression "plVar7 = (long *)FUN_00275550(local_50)" identifier = (cast_expression "(long *)FUN_00275550(local_50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(local_50)" identifier (argument_list "(local_50)" ( identifier ))))) ;) (expression_statement "local_50 = (long)plVar7 + local_50;" (assignment_expression "local_50 = (long)plVar7 + local_50" identifier = (binary_expression "(long)plVar7 + local_50" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (expression_statement "plVar13 = plVar7 + 3;" (assignment_expression "plVar13 = plVar7 + 3" identifier = (binary_expression "plVar7 + 3" identifier + number_literal)) ;) (labeled_statement "LAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" statement_identifier : (expression_statement "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" (assignment_expression "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" identifier = (cast_expression "(undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 + ((long)param_2 - (long)plVar3))" ( (binary_expression "(long)plVar7 + ((long)param_2 - (long)plVar3)" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)param_2 - (long)plVar3)" ( (binary_expression "(long)param_2 - (long)plVar3" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )))) ;)) (expression_statement "uVar4 = *param_3;" (assignment_expression "uVar4 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "*puVar1 = uVar4;" (assignment_expression "*puVar1 = uVar4" (pointer_expression "*puVar1" * identifier) = identifier) ;) (expression_statement "uVar4 = param_3[1];" (assignment_expression "uVar4 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_3[2];" (assignment_expression "uVar4 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (expression_statement "plVar9 = plVar3;" (assignment_expression "plVar9 = plVar3" identifier = identifier) ;) (if_statement "if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" if (parenthesized_expression "(param_2 != plVar3)" ( (binary_expression "param_2 != plVar3" identifier != identifier) )) (compound_statement "{\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" { (do_statement "do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);" do (compound_statement "{\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    }" { (expression_statement "plVar8[1] = 0;" (assignment_expression "plVar8[1] = 0" (subscript_expression "plVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar13 = plVar9 + 3;" (assignment_expression "plVar13 = plVar9 + 3" identifier = (binary_expression "plVar9 + 3" identifier + number_literal)) ;) (expression_statement "plVar8[2] = 0;" (assignment_expression "plVar8[2] = 0" (subscript_expression "plVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*plVar8 = 0;" (assignment_expression "*plVar8 = 0" (pointer_expression "*plVar8" * identifier) = number_literal) ;) (expression_statement "*plVar8 = *plVar9;" (assignment_expression "*plVar8 = *plVar9" (pointer_expression "*plVar8" * identifier) = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" * identifier) = number_literal) ;) (expression_statement "lVar6 = plVar8[1];" (assignment_expression "lVar6 = plVar8[1]" identifier = (subscript_expression "plVar8[1]" identifier [ number_literal ])) ;) (expression_statement "plVar8[1] = plVar9[1];" (assignment_expression "plVar8[1] = plVar9[1]" (subscript_expression "plVar8[1]" identifier [ number_literal ]) = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[1] = lVar6;" (assignment_expression "plVar9[1] = lVar6" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "lVar6 = plVar8[2];" (assignment_expression "lVar6 = plVar8[2]" identifier = (subscript_expression "plVar8[2]" identifier [ number_literal ])) ;) (expression_statement "plVar8[2] = plVar9[2];" (assignment_expression "plVar8[2] = plVar9[2]" (subscript_expression "plVar8[2]" identifier [ number_literal ]) = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "plVar9[2] = lVar6;" (assignment_expression "plVar9[2] = lVar6" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar8 = plVar8 + 3;" (assignment_expression "plVar8 = plVar8 + 3" identifier = (binary_expression "plVar8 + 3" identifier + number_literal)) ;) (expression_statement "plVar9 = plVar13;" (assignment_expression "plVar9 = plVar13" identifier = identifier) ;) }) while (parenthesized_expression "(param_2 != plVar13)" ( (binary_expression "param_2 != plVar13" identifier != identifier) )) ;) (expression_statement "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);" (assignment_expression "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" identifier = (cast_expression "(long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" ( (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30" (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" ( (binary_expression "(long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U" (binary_expression "(long)param_2 + (-0x18 - (long)plVar3)" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x18 - (long)plVar3)" ( (binary_expression "-0x18 - (long)plVar3" number_literal - (cast_expression "(long)plVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (expression_statement "plVar9 = param_2;" (assignment_expression "plVar9 = param_2" identifier = identifier) ;) (expression_statement "plVar11 = plVar13;" (assignment_expression "plVar11 = plVar13" identifier = identifier) ;) (expression_statement "plVar8 = plVar3;" (assignment_expression "plVar8 = plVar3" identifier = identifier) ;) (if_statement "if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" if (parenthesized_expression "(param_2 != plVar2)" ( (binary_expression "param_2 != plVar2" identifier != identifier) )) (compound_statement "{\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" { (do_statement "do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);" do (compound_statement "{\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    }" { (expression_statement "lVar6 = *plVar9;" (assignment_expression "lVar6 = *plVar9" identifier = (pointer_expression "*plVar9" * identifier)) ;) (expression_statement "lVar5 = plVar9[2];" (assignment_expression "lVar5 = plVar9[2]" identifier = (subscript_expression "plVar9[2]" identifier [ number_literal ])) ;) (expression_statement "plVar10 = plVar9 + 3;" (assignment_expression "plVar10 = plVar9 + 3" identifier = (binary_expression "plVar9 + 3" identifier + number_literal)) ;) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" * identifier) = number_literal) ;) (expression_statement "*plVar11 = lVar6;" (assignment_expression "*plVar11 = lVar6" (pointer_expression "*plVar11" * identifier) = identifier) ;) (expression_statement "lVar6 = plVar9[1];" (assignment_expression "lVar6 = plVar9[1]" identifier = (subscript_expression "plVar9[1]" identifier [ number_literal ])) ;) (expression_statement "plVar9[2] = 0;" (assignment_expression "plVar9[2] = 0" (subscript_expression "plVar9[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar9[1] = 0;" (assignment_expression "plVar9[1] = 0" (subscript_expression "plVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "plVar11[1] = lVar6;" (assignment_expression "plVar11[1] = lVar6" (subscript_expression "plVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar11[2] = lVar5;" (assignment_expression "plVar11[2] = lVar5" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar9 = plVar10;" (assignment_expression "plVar9 = plVar10" identifier = identifier) ;) (expression_statement "plVar11 = plVar11 + 3;" (assignment_expression "plVar11 = plVar11 + 3" identifier = (binary_expression "plVar11 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar2 != plVar10)" ( (binary_expression "plVar2 != plVar10" identifier != identifier) )) ;) (expression_statement "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);" (assignment_expression "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" identifier = (cast_expression "(long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" ( (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18" (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" ( (binary_expression "(long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U" (binary_expression "(long)plVar2 + (-0x18 - (long)param_2)" (cast_expression "(long)plVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(-0x18 - (long)param_2)" ( (binary_expression "-0x18 - (long)param_2" number_literal - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) & number_literal) ))) + number_literal) )))) ;) })) (for_statement "for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" for ( ; (binary_expression "plVar8 != plVar2" identifier != identifier) ; (assignment_expression "plVar8 = plVar8 + 3" identifier = (binary_expression "plVar8 + 3" identifier + number_literal)) ) (compound_statement "{\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" { (if_statement "if (*plVar8 != 0) {\n      FUN_00276d20();\n    }" if (parenthesized_expression "(*plVar8 != 0)" ( (binary_expression "*plVar8 != 0" (pointer_expression "*plVar8" * identifier) != number_literal) )) (compound_statement "{\n      FUN_00276d20();\n    }" { (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }" if (parenthesized_expression "(plVar3 != (long *)0x0)" ( (binary_expression "plVar3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00276d20(plVar3);\n  }" { (expression_statement "FUN_00276d20(plVar3);" (call_expression "FUN_00276d20(plVar3)" identifier (argument_list "(plVar3)" ( identifier ))) ;) })) (expression_statement "*param_1 = plVar7;" (assignment_expression "*param_1 = plVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = plVar13;" (assignment_expression "param_1[1] = plVar13" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_50;" (assignment_expression "param_1[2] = local_50" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) < IDENT) || (binary_expression (binary_expression IDENT * LIT) == LIT)) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (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)) ;) (labeled_statement statement_identifier : (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) + (parenthesized_expression ( (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (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 = (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) & LIT) ))) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) & LIT) ))) + LIT) )))) ;) })) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)\n\n{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0021b7f0(undefined8 *param_1,long *param_2,undefined8 *param_3)" (identifier "FUN_0021b7f0") (parameter_list "(undefined8 *param_1,long *param_2,undefined8 *param_3)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (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"))) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  long *plVar2;\n  long *plVar3;\n  undefined8 uVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long *plVar9;\n  long *plVar10;\n  long *plVar11;\n  ulong uVar12;\n  long *plVar13;\n  long local_50;\n  \n  plVar2 = (long *)param_1[1];\n  plVar3 = (long *)*param_1;\n  lVar6 = (long)plVar2 - (long)plVar3 >> 3;\n  if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }\n  plVar7 = (long *)FUN_00275550(local_50);\n  local_50 = (long)plVar7 + local_50;\n  plVar13 = plVar7 + 3;\nLAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));\n  uVar4 = *param_3;\n  *param_3 = 0;\n  *puVar1 = uVar4;\n  uVar4 = param_3[1];\n  param_3[1] = 0;\n  puVar1[1] = uVar4;\n  uVar4 = param_3[2];\n  param_3[2] = 0;\n  puVar1[2] = uVar4;\n  plVar8 = plVar7;\n  plVar9 = plVar3;\n  if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }\n  plVar9 = param_2;\n  plVar11 = plVar13;\n  plVar8 = plVar3;\n  if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }\n  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }\n  if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }\n  *param_1 = plVar7;\n  param_1[1] = plVar13;\n  param_1[2] = local_50;\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "long *plVar8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar8" (* "*") (identifier "plVar8")) (; ";")) (declaration "long *plVar9;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar9" (* "*") (identifier "plVar9")) (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "long *plVar13;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar13" (* "*") (identifier "plVar13")) (; ";")) (declaration "long local_50;" (sized_type_specifier "long" (long "long")) (identifier "local_50") (; ";")) (expression_statement "plVar2 = (long *)param_1[1];" (assignment_expression "plVar2 = (long *)param_1[1]" (identifier "plVar2") (= "=") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar3 = (long *)*param_1;" (assignment_expression "plVar3 = (long *)*param_1" (identifier "plVar3") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "lVar6 = (long)plVar2 - (long)plVar3 >> 3;" (assignment_expression "lVar6 = (long)plVar2 - (long)plVar3 >> 3" (identifier "lVar6") (= "=") (binary_expression "(long)plVar2 - (long)plVar3 >> 3" (binary_expression "(long)plVar2 - (long)plVar3" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (- "-") (cast_expression "(long)plVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar3"))) (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (lVar6 * -0x5555555555555555 == 0) {\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }\n  else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" (if "if") (parenthesized_expression "(lVar6 * -0x5555555555555555 == 0)" (( "(") (binary_expression "lVar6 * -0x5555555555555555 == 0" (binary_expression "lVar6 * -0x5555555555555555" (identifier "lVar6") (* "*") (number_literal "-0x5555555555555555")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = 1;\nLAB_0021ba05:\n    local_50 = uVar12 * 0x18;\n  }" ({ "{") (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0021ba05:\n    local_50 = uVar12 * 0x18;" (statement_identifier "LAB_0021ba05") (: ":") (expression_statement "local_50 = uVar12 * 0x18;" (assignment_expression "local_50 = uVar12 * 0x18" (identifier "local_50") (= "=") (binary_expression "uVar12 * 0x18" (identifier "uVar12") (* "*") (number_literal "0x18"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" (else "else") (compound_statement "{\n    uVar12 = lVar6 * 0x5555555555555556;\n    local_50 = -0x10;\n    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }\n  }" ({ "{") (expression_statement "uVar12 = lVar6 * 0x5555555555555556;" (assignment_expression "uVar12 = lVar6 * 0x5555555555555556" (identifier "uVar12") (= "=") (binary_expression "lVar6 * 0x5555555555555556" (identifier "lVar6") (* "*") (number_literal "0x5555555555555556"))) (; ";")) (expression_statement "local_50 = -0x10;" (assignment_expression "local_50 = -0x10" (identifier "local_50") (= "=") (number_literal "-0x10")) (; ";")) (if_statement "if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)) {\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" (if "if") (parenthesized_expression "(((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab))" (( "(") (binary_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&\n       (uVar12 < 0xaaaaaaaaaaaaaab)" (parenthesized_expression "((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0)" (( "(") (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0" (binary_expression "(ulong)(lVar6 * -0x5555555555555555) < uVar12" (call_expression "(ulong)(lVar6 * -0x5555555555555555)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(lVar6 * -0x5555555555555555)" (( "(") (binary_expression "lVar6 * -0x5555555555555555" (identifier "lVar6") (* "*") (number_literal "-0x5555555555555555")) () ")"))) (< "<") (identifier "uVar12")) (|| "||") (binary_expression "lVar6 * 0x5555555555555555 == 0" (binary_expression "lVar6 * 0x5555555555555555" (identifier "lVar6") (* "*") (number_literal "0x5555555555555555")) (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar12 < 0xaaaaaaaaaaaaaab)" (( "(") (binary_expression "uVar12 < 0xaaaaaaaaaaaaaab" (identifier "uVar12") (< "<") (number_literal "0xaaaaaaaaaaaaaab")) () ")"))) () ")")) (compound_statement "{\n      if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }\n      goto LAB_0021ba05;\n    }" ({ "{") (if_statement "if (uVar12 == 0) {\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        plVar13 = (long *)0x18;\n        plVar7 = (long *)0x0;\n        local_50 = 0;\n        goto LAB_0021b873;\n      }" ({ "{") (expression_statement "plVar13 = (long *)0x18;" (assignment_expression "plVar13 = (long *)0x18" (identifier "plVar13") (= "=") (cast_expression "(long *)0x18" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x18"))) (; ";")) (expression_statement "plVar7 = (long *)0x0;" (assignment_expression "plVar7 = (long *)0x0" (identifier "plVar7") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0021b873;" (goto "goto") (statement_identifier "LAB_0021b873") (; ";")) (} "}"))) (goto_statement "goto LAB_0021ba05;" (goto "goto") (statement_identifier "LAB_0021ba05") (; ";")) (} "}"))) (} "}")))) (expression_statement "plVar7 = (long *)FUN_00275550(local_50);" (assignment_expression "plVar7 = (long *)FUN_00275550(local_50)" (identifier "plVar7") (= "=") (cast_expression "(long *)FUN_00275550(local_50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(local_50)" (identifier "FUN_00275550") (argument_list "(local_50)" (( "(") (identifier "local_50") () ")"))))) (; ";")) (expression_statement "local_50 = (long)plVar7 + local_50;" (assignment_expression "local_50 = (long)plVar7 + local_50" (identifier "local_50") (= "=") (binary_expression "(long)plVar7 + local_50" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "plVar13 = plVar7 + 3;" (assignment_expression "plVar13 = plVar7 + 3" (identifier "plVar13") (= "=") (binary_expression "plVar7 + 3" (identifier "plVar7") (+ "+") (number_literal "3"))) (; ";")) (labeled_statement "LAB_0021b873:\n  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" (statement_identifier "LAB_0021b873") (: ":") (expression_statement "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));" (assignment_expression "puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 + ((long)param_2 - (long)plVar3))" (( "(") (binary_expression "(long)plVar7 + ((long)param_2 - (long)plVar3)" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (parenthesized_expression "((long)param_2 - (long)plVar3)" (( "(") (binary_expression "(long)param_2 - (long)plVar3" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (- "-") (cast_expression "(long)plVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar3"))) () ")"))) () ")")))) (; ";"))) (expression_statement "uVar4 = *param_3;" (assignment_expression "uVar4 = *param_3" (identifier "uVar4") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar1 = uVar4;" (assignment_expression "*puVar1 = uVar4" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = param_3[1];" (assignment_expression "uVar4 = param_3[1]" (identifier "uVar4") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_3[1] = 0;" (assignment_expression "param_3[1] = 0" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = uVar4;" (assignment_expression "puVar1[1] = uVar4" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = param_3[2];" (assignment_expression "uVar4 = param_3[2]" (identifier "uVar4") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_3[2] = 0;" (assignment_expression "param_3[2] = 0" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = uVar4;" (assignment_expression "puVar1[2] = uVar4" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" (identifier "plVar8") (= "=") (identifier "plVar7")) (; ";")) (expression_statement "plVar9 = plVar3;" (assignment_expression "plVar9 = plVar3" (identifier "plVar9") (= "=") (identifier "plVar3")) (; ";")) (if_statement "if (param_2 != plVar3) {\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" (if "if") (parenthesized_expression "(param_2 != plVar3)" (( "(") (binary_expression "param_2 != plVar3" (identifier "param_2") (!= "!=") (identifier "plVar3")) () ")")) (compound_statement "{\n    do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);\n    plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);\n  }" ({ "{") (do_statement "do {\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    } while (param_2 != plVar13);" (do "do") (compound_statement "{\n      plVar8[1] = 0;\n      plVar13 = plVar9 + 3;\n      plVar8[2] = 0;\n      *plVar8 = 0;\n      *plVar8 = *plVar9;\n      *plVar9 = 0;\n      lVar6 = plVar8[1];\n      plVar8[1] = plVar9[1];\n      plVar9[1] = lVar6;\n      lVar6 = plVar8[2];\n      plVar8[2] = plVar9[2];\n      plVar9[2] = lVar6;\n      plVar8 = plVar8 + 3;\n      plVar9 = plVar13;\n    }" ({ "{") (expression_statement "plVar8[1] = 0;" (assignment_expression "plVar8[1] = 0" (subscript_expression "plVar8[1]" (identifier "plVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar13 = plVar9 + 3;" (assignment_expression "plVar13 = plVar9 + 3" (identifier "plVar13") (= "=") (binary_expression "plVar9 + 3" (identifier "plVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "plVar8[2] = 0;" (assignment_expression "plVar8[2] = 0" (subscript_expression "plVar8[2]" (identifier "plVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar8 = 0;" (assignment_expression "*plVar8 = 0" (pointer_expression "*plVar8" (* "*") (identifier "plVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar8 = *plVar9;" (assignment_expression "*plVar8 = *plVar9" (pointer_expression "*plVar8" (* "*") (identifier "plVar8")) (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";")) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar6 = plVar8[1];" (assignment_expression "lVar6 = plVar8[1]" (identifier "lVar6") (= "=") (subscript_expression "plVar8[1]" (identifier "plVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar8[1] = plVar9[1];" (assignment_expression "plVar8[1] = plVar9[1]" (subscript_expression "plVar8[1]" (identifier "plVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar9[1] = lVar6;" (assignment_expression "plVar9[1] = lVar6" (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "lVar6 = plVar8[2];" (assignment_expression "lVar6 = plVar8[2]" (identifier "lVar6") (= "=") (subscript_expression "plVar8[2]" (identifier "plVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "plVar8[2] = plVar9[2];" (assignment_expression "plVar8[2] = plVar9[2]" (subscript_expression "plVar8[2]" (identifier "plVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "plVar9[2] = lVar6;" (assignment_expression "plVar9[2] = lVar6" (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "plVar8 = plVar8 + 3;" (assignment_expression "plVar8 = plVar8 + 3" (identifier "plVar8") (= "=") (binary_expression "plVar8 + 3" (identifier "plVar8") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "plVar9 = plVar13;" (assignment_expression "plVar9 = plVar13" (identifier "plVar9") (= "=") (identifier "plVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != plVar13)" (( "(") (binary_expression "param_2 != plVar13" (identifier "param_2") (!= "!=") (identifier "plVar13")) () ")")) (; ";")) (expression_statement "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);" (assignment_expression "plVar13 = (long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" (identifier "plVar13") (= "=") (cast_expression "(long *)((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30)" (( "(") (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30" (binary_expression "(long)plVar7 +\n                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar7")) (+ "+") (parenthesized_expression "((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U)" (( "(") (binary_expression "(long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U" (binary_expression "(long)param_2 + (-0x18 - (long)plVar3)" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (parenthesized_expression "(-0x18 - (long)plVar3)" (( "(") (binary_expression "-0x18 - (long)plVar3" (number_literal "-0x18") (- "-") (cast_expression "(long)plVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar3"))) () ")"))) (& "&") (number_literal "0xfffffffffffffff8U")) () ")"))) (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (} "}"))) (expression_statement "plVar9 = param_2;" (assignment_expression "plVar9 = param_2" (identifier "plVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "plVar11 = plVar13;" (assignment_expression "plVar11 = plVar13" (identifier "plVar11") (= "=") (identifier "plVar13")) (; ";")) (expression_statement "plVar8 = plVar3;" (assignment_expression "plVar8 = plVar3" (identifier "plVar8") (= "=") (identifier "plVar3")) (; ";")) (if_statement "if (param_2 != plVar2) {\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" (if "if") (parenthesized_expression "(param_2 != plVar2)" (( "(") (binary_expression "param_2 != plVar2" (identifier "param_2") (!= "!=") (identifier "plVar2")) () ")")) (compound_statement "{\n    do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);\n    plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);\n  }" ({ "{") (do_statement "do {\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    } while (plVar2 != plVar10);" (do "do") (compound_statement "{\n      lVar6 = *plVar9;\n      lVar5 = plVar9[2];\n      plVar10 = plVar9 + 3;\n      *plVar9 = 0;\n      *plVar11 = lVar6;\n      lVar6 = plVar9[1];\n      plVar9[2] = 0;\n      plVar9[1] = 0;\n      plVar11[1] = lVar6;\n      plVar11[2] = lVar5;\n      plVar9 = plVar10;\n      plVar11 = plVar11 + 3;\n    }" ({ "{") (expression_statement "lVar6 = *plVar9;" (assignment_expression "lVar6 = *plVar9" (identifier "lVar6") (= "=") (pointer_expression "*plVar9" (* "*") (identifier "plVar9"))) (; ";")) (expression_statement "lVar5 = plVar9[2];" (assignment_expression "lVar5 = plVar9[2]" (identifier "lVar5") (= "=") (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "plVar10 = plVar9 + 3;" (assignment_expression "plVar10 = plVar9 + 3" (identifier "plVar10") (= "=") (binary_expression "plVar9 + 3" (identifier "plVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*plVar9 = 0;" (assignment_expression "*plVar9 = 0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar11 = lVar6;" (assignment_expression "*plVar11 = lVar6" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "lVar6 = plVar9[1];" (assignment_expression "lVar6 = plVar9[1]" (identifier "lVar6") (= "=") (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar9[2] = 0;" (assignment_expression "plVar9[2] = 0" (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar9[1] = 0;" (assignment_expression "plVar9[1] = 0" (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar11[1] = lVar6;" (assignment_expression "plVar11[1] = lVar6" (subscript_expression "plVar11[1]" (identifier "plVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "plVar11[2] = lVar5;" (assignment_expression "plVar11[2] = lVar5" (subscript_expression "plVar11[2]" (identifier "plVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "lVar5")) (; ";")) (expression_statement "plVar9 = plVar10;" (assignment_expression "plVar9 = plVar10" (identifier "plVar9") (= "=") (identifier "plVar10")) (; ";")) (expression_statement "plVar11 = plVar11 + 3;" (assignment_expression "plVar11 = plVar11 + 3" (identifier "plVar11") (= "=") (binary_expression "plVar11 + 3" (identifier "plVar11") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar2 != plVar10)" (( "(") (binary_expression "plVar2 != plVar10" (identifier "plVar2") (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (expression_statement "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);" (assignment_expression "plVar13 = (long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" (identifier "plVar13") (= "=") (cast_expression "(long *)((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18)" (( "(") (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18" (binary_expression "(long)plVar13 +\n                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" (cast_expression "(long)plVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar13")) (+ "+") (parenthesized_expression "((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U)" (( "(") (binary_expression "(long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U" (binary_expression "(long)plVar2 + (-0x18 - (long)param_2)" (cast_expression "(long)plVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar2")) (+ "+") (parenthesized_expression "(-0x18 - (long)param_2)" (( "(") (binary_expression "-0x18 - (long)param_2" (number_literal "-0x18") (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2"))) () ")"))) (& "&") (number_literal "0xfffffffffffffff8U")) () ")"))) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (} "}"))) (for_statement "for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "plVar8 != plVar2" (identifier "plVar8") (!= "!=") (identifier "plVar2")) (; ";") (assignment_expression "plVar8 = plVar8 + 3" (identifier "plVar8") (= "=") (binary_expression "plVar8 + 3" (identifier "plVar8") (+ "+") (number_literal "3"))) () ")") (compound_statement "{\n    if (*plVar8 != 0) {\n      FUN_00276d20();\n    }\n  }" ({ "{") (if_statement "if (*plVar8 != 0) {\n      FUN_00276d20();\n    }" (if "if") (parenthesized_expression "(*plVar8 != 0)" (( "(") (binary_expression "*plVar8 != 0" (pointer_expression "*plVar8" (* "*") (identifier "plVar8")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00276d20();\n    }" ({ "{") (expression_statement "FUN_00276d20();" (call_expression "FUN_00276d20()" (identifier "FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (plVar3 != (long *)0x0) {\n    FUN_00276d20(plVar3);\n  }" (if "if") (parenthesized_expression "(plVar3 != (long *)0x0)" (( "(") (binary_expression "plVar3 != (long *)0x0" (identifier "plVar3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00276d20(plVar3);\n  }" ({ "{") (expression_statement "FUN_00276d20(plVar3);" (call_expression "FUN_00276d20(plVar3)" (identifier "FUN_00276d20") (argument_list "(plVar3)" (( "(") (identifier "plVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = plVar7;" (assignment_expression "*param_1 = plVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "plVar7")) (; ";")) (expression_statement "param_1[1] = plVar13;" (assignment_expression "param_1[1] = plVar13" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "plVar13")) (; ";")) (expression_statement "param_1[2] = local_50;" (assignment_expression "param_1[2] = local_50" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_50")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: _M_realloc_insert<std::vector<long int, std::allocator<long int> > >
   DWARF original prototype: void
   _M_realloc_insert<std::vector<long_int,_std::allocator<long_int>_>_>(vector<std::vector<long_int,_std::allocator<long_int>_>,_std::allocator<std::vector<long_int,_std::allocator<long_int>_>_>_>
   * this, iterator __position, vector<long_int,_std::allocator<long_int>_> * __args#0) */

void __thiscall
std::
vector<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>
::_M_realloc_insert<std::vector<var_2,_std::var_1<var_2>var_3>var_3>
          (vector<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>
           *this,type_2 __position,vector<var_2,_std::var_1<var_2>var_3> *__args_0)

{
  type_4 *puVar1;
  vector<var_2,_std::var_1<var_2>var_3> *var_14;
  vector<var_2,_std::var_1<var_2>var_3> *var_10;
  type_1 var_15;
  type_1 plVar5;
  long var_5;
  type_1 var_9;
  type_1 var_12;
  type_2 iVar9;
  vector<var_2,_std::var_1<var_2>var_3> *var_11;
  vector<var_2,_std::var_1<var_2>var_3> *var_13;
  type_3 var_6;
  type_3 var_8;
  type_1 pvVar14;
  type_1 local_50;
  
  var_14 = (this->
           super__Vector_base<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>var_4
           )._M_impl._M_finish;
  var_10 = (this->
           super__Vector_base<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>var_4
           )._M_impl._M_start;
  var_5 = (long)var_14 - (long)var_10 >> 3;
  if (var_5 * -0x5555555555555555 == 0) {
    var_6 = 1;
LAB_0021ba05:
    var_8 = var_6 * 0x18;
  }
  else {
    var_6 = var_5 * 0x5555555555555556;
    var_8 = 0xfffffffffffffff0;
    if (((type_3)(var_5 * -0x5555555555555555) < var_6 || var_5 * 0x5555555555555555 == 0) &&
       (var_6 < 0xaaaaaaaaaaaaaab)) {
      if (var_6 == 0) {
        pvVar14 = (type_1)0x18;
        var_9 = (type_1)0x0;
        local_50 = (type_1)0x0;
        goto LAB_0021b873;
      }
      goto LAB_0021ba05;
    }
  }
  var_9 = (type_1)var_7(var_8);
  local_50 = (type_1)((long)&(var_9->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4).
                              _M_impl._M_start + var_8);
  pvVar14 = var_9 + 1;
LAB_0021b873:
  puVar1 = (type_4 *)((long)var_9 + ((long)__position._M_current - (long)var_10));
  var_15 = (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start;
  (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start =
       (type_1)0x0;
  *puVar1 = var_15;
  var_15 = (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish;
  (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish =
       (type_1)0x0;
  puVar1[1] = var_15;
  var_15 = (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl.
           _M_end_of_storage;
  (__args_0->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_end_of_storage =
       (type_1)0x0;
  puVar1[2] = var_15;
  var_12 = var_9;
  var_11 = var_10;
  if (__position._M_current != var_10) {
    do {
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish =
           (type_1)0x0;
      var_13 = var_11 + 1;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_end_of_storage =
           (type_1)0x0;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start =
           (type_1)0x0;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start =
           (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start;
      var_15 = (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish;
      (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start =
           (type_1)0x0;
      plVar5 = (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish = var_15;
      var_15 = (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl.
               _M_end_of_storage;
      (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish = plVar5;
      plVar5 = (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl.
               _M_end_of_storage;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_end_of_storage =
           var_15;
      (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_end_of_storage =
           plVar5;
      var_12 = var_12 + 1;
      var_11 = var_13;
    } while (__position._M_current != var_13);
    pvVar14 = (type_1)((long)&var_9[2].super__Vector_base<var_2,_std::var_1<var_2>var_3>.
                               _M_impl._M_start +
                       ((long)__position._M_current + (-0x18 - (long)var_10) & 0xfffffffffffffff8U))
    ;
  }
  iVar9._M_current = __position._M_current;
  var_12 = pvVar14;
  var_11 = var_10;
  if (__position._M_current != var_14) {
    do {
      var_15 = ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl
               ._M_start;
      plVar5 = ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl
               ._M_end_of_storage;
      var_13 = iVar9._M_current + 1;
      ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start
           = (type_1)0x0;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start = var_15;
      var_15 = ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl
               ._M_finish;
      ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl.
      _M_end_of_storage = (type_1)0x0;
      ((iVar9._M_current)->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl.
      _M_finish = (type_1)0x0;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_finish = var_15;
      (var_12->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_end_of_storage =
           plVar5;
      iVar9._M_current = var_13;
      var_12 = var_12 + 1;
    } while (var_14 != var_13);
    pvVar14 = (type_1)((long)&pvVar14[1].super__Vector_base<var_2,_std::var_1<var_2>var_3>.
                               _M_impl._M_start +
                       ((long)var_14 + (-0x18 - (long)__position._M_current) & 0xfffffffffffffff8U))
    ;
  }
  for (; var_11 != var_14; var_11 = var_11 + 1) {
    var_15 = (var_11->super__Vector_base<var_2,_std::var_1<var_2>var_3>var_4)._M_impl._M_start;
    if (var_15 != (type_1)0x0) {
      var_16(var_15);
    }
  }
  if (var_10 != (vector<var_2,_std::var_1<var_2>var_3> *)0x0) {
    var_16(var_10);
  }
  (this->
  super__Vector_base<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>var_4
  )._M_impl._M_start = var_9;
  (this->
  super__Vector_base<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>var_4
  )._M_impl._M_finish = pvVar14;
  (this->
  super__Vector_base<std::vector<var_2,_std::var_1<var_2>var_3>,_std::var_1<std::vector<var_2,_std::var_1<var_2>var_3>var_3>var_3>var_4
  )._M_impl._M_end_of_storage = local_50;
  return;
}


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

void MASKED(undefined8 *param_1,long *param_2,undefined8 *param_3)

{
  undefined8 *puVar1;
  long *plVar2;
  long *plVar3;
  undefined8 uVar4;
  long lVar5;
  long lVar6;
  long *plVar7;
  long *plVar8;
  long *plVar9;
  long *plVar10;
  long *plVar11;
  ulong uVar12;
  long *plVar13;
  long local_50;
  
  plVar2 = (long *)param_1[1];
  plVar3 = (long *)*param_1;
  lVar6 = (long)plVar2 - (long)plVar3 >> 3;
  if (lVar6 * -0x5555555555555555 == 0) {
    uVar12 = 1;
LAB_0021ba05:
    local_50 = uVar12 * 0x18;
  }
  else {
    uVar12 = lVar6 * 0x5555555555555556;
    local_50 = -0x10;
    if (((ulong)(lVar6 * -0x5555555555555555) < uVar12 || lVar6 * 0x5555555555555555 == 0) &&
       (uVar12 < 0xaaaaaaaaaaaaaab)) {
      if (uVar12 == 0) {
        plVar13 = (long *)0x18;
        plVar7 = (long *)0x0;
        local_50 = 0;
        goto LAB_0021b873;
      }
      goto LAB_0021ba05;
    }
  }
  plVar7 = (long *)FUN_00275550(local_50);
  local_50 = (long)plVar7 + local_50;
  plVar13 = plVar7 + 3;
LAB_0021b873:
  puVar1 = (undefined8 *)((long)plVar7 + ((long)param_2 - (long)plVar3));
  uVar4 = *param_3;
  *param_3 = 0;
  *puVar1 = uVar4;
  uVar4 = param_3[1];
  param_3[1] = 0;
  puVar1[1] = uVar4;
  uVar4 = param_3[2];
  param_3[2] = 0;
  puVar1[2] = uVar4;
  plVar8 = plVar7;
  plVar9 = plVar3;
  if (param_2 != plVar3) {
    do {
      plVar8[1] = 0;
      plVar13 = plVar9 + 3;
      plVar8[2] = 0;
      *plVar8 = 0;
      *plVar8 = *plVar9;
      *plVar9 = 0;
      lVar6 = plVar8[1];
      plVar8[1] = plVar9[1];
      plVar9[1] = lVar6;
      lVar6 = plVar8[2];
      plVar8[2] = plVar9[2];
      plVar9[2] = lVar6;
      plVar8 = plVar8 + 3;
      plVar9 = plVar13;
    } while (param_2 != plVar13);
    plVar13 = (long *)((long)plVar7 +
                      ((long)param_2 + (-0x18 - (long)plVar3) & 0xfffffffffffffff8U) + 0x30);
  }
  plVar9 = param_2;
  plVar11 = plVar13;
  plVar8 = plVar3;
  if (param_2 != plVar2) {
    do {
      lVar6 = *plVar9;
      lVar5 = plVar9[2];
      plVar10 = plVar9 + 3;
      *plVar9 = 0;
      *plVar11 = lVar6;
      lVar6 = plVar9[1];
      plVar9[2] = 0;
      plVar9[1] = 0;
      plVar11[1] = lVar6;
      plVar11[2] = lVar5;
      plVar9 = plVar10;
      plVar11 = plVar11 + 3;
    } while (plVar2 != plVar10);
    plVar13 = (long *)((long)plVar13 +
                      ((long)plVar2 + (-0x18 - (long)param_2) & 0xfffffffffffffff8U) + 0x18);
  }
  for (; plVar8 != plVar2; plVar8 = plVar8 + 3) {
    if (*plVar8 != 0) {
      FUN_00276d20();
    }
  }
  if (plVar3 != (long *)0x0) {
    FUN_00276d20(plVar3);
  }
  *param_1 = plVar7;
  param_1[1] = plVar13;
  param_1[2] = local_50;
  return;
}

