EmpAllocatePool

INT64 __stdcall EmpAllocatePool(SIZE_T NumberOfBytes){
  INT64 *v1; 
  _DWORD *v2; 
  INT64 result; 
  SIZE_T v4; 
  SIZE_T v5; 
  result = *v1;
  v4 = (NumberOfBytes + 7) & 0xFFFFFFFFFFFFFFF8ui64;
  if( !*v1 )
    return(INT64)ExAllocatePoolWithTag(PagedPool, NumberOfBytes, 0x76654D45ui64);
  v5 = (unsigned int)*v2;
  if( v5 < v4 )
    return(INT64)ExAllocatePoolWithTag(PagedPool, NumberOfBytes, 0x76654D45ui64);
  *v1 = result + v4;
  *v2 = v5 - v4;
  return result;
}

Referenced by:

EmpEvaluateNodeLink
EmpEvaluateTargetRule