AlpcpAllocateMessageFunction

VOID *__stdcall AlpcpAllocateMessageFunction(POOL_TYPE PoolType, UINT64 NumberOfBytes, UINT64 Tag){
  VOID *PoolWithTag; 
  VOID *v4; 
  __int64 v5; 
  UINT64 Handle; 
  PoolWithTag = ExAllocatePoolWithTag(PoolType, NumberOfBytes, Tag);
  v4 = PoolWithTag;
  if( !PoolWithTag )
    return v4;
  v5 = (__int64)PoolWithTag + 48;
  memset((INT64)PoolWithTag + 48, 0i64);
  Handle = (UINT64)ExCreateHandleEx(AlpcMessageTable, v5, 0, 0, 0i64);
  if( Handle || (Handle = AlpcpAllocateMessageFromExtendedTables(v5)) != 0 )
  {
    *(_DWORD *)(v5 + 264) = Handle | 0x80000000;
    return v4;
  }
  ExFreePoolWithTag(v4, 0);
  return 0i64;
}

Referenced by:

No references.