CmpReserveRollbackPacketSpace
INT64 __fastcall CmpReserveRollbackPacketSpace(UINT64 *a1, UINT64 a2){
_CHILD_LIST *v2;
int v4;
unsigned int v5;
int v6;
UINT8 *v7;
UINT64 v8;
struct _PRIVILEGE_SET *v9;
v4 = *(_DWORD *)a1;
v5 = 0;
if( *((_DWORD *)a1 + 1) - v4 < (unsigned int)a2 )
{
v6 = v4 + a2;
CmpAllocateTransientPoolWithTag((_HHIVE *)1, 8i64 * (unsigned int)(v4 + a2), 0x36344D43ui64, v2);
v8 = (UINT64)v7;
if( v7 )
{
memmove(v7, (UINT8 *)a1[1], 8i64 * *(unsigned int *)a1);
memset(v8 + 8i64 * *(unsigned int *)a1, 0i64);
v9 = (struct _PRIVILEGE_SET *)a1[1];
if( v9 )
CmSiFreeMemory(v9);
a1[1] = v8;
*((_DWORD *)a1 + 1) = v6;
}
else
{
return(unsigned int)-1073741670;
}
}
return v5;
}Referenced by:
CmSnapshotRMTxArray
CmpSnapshotTxOwnerArrayToRollbackPacket