sub_14065D374

__int64 __fastcall sub_14065D374(__int64 a1, __int64 a2, unsigned int a3, int a4, _QWORD *a5){
  int v5; 
  int v6; 
  int v9; 

  v9 = a4;
  v5 = 0;
  v6 = a4;
  if( a4 != -1 )
    goto LABEL_4;
  v5 = sub_14065EB58(a1, a2, a3, a5, &v9);
  if( v5 >= 0 )
  {
    v6 = v9;
LABEL_4:
    memmove(
      (VOID *)(*(_QWORD *)(a1 + 16) + (unsigned int)(v6 * *(_DWORD *)a1)),
      (const VOID *)(*(_QWORD *)(a1 + 16) + (unsigned int)(*(_DWORD *)a1 * (v6 + 1))),
      *(_DWORD *)a1 * (*(_DWORD *)(a1 + 4) - v6 - 1));
    --*(_DWORD *)(a1 + 4);
  }
  return(unsigned int)v5;
}

Referenced by:

WbHeapExecutionUnloadModule
WbInPlaceEncryptionUnloadModule
WbReleaseLeastRecentlyUsedHeapExecutedBlocks
WbRemoveWarbirdProcess