ExAllocatePool2

VOID *__stdcall ExAllocatePool2(INT64 a1, UINT64 a2, UINT64 a3){
  unsigned int v3; 
  int v5; 
  UINT64 v7; 
  INT64 arg20; 
  __int64 v9[3]; 
  char v10; 
  char v11; 

  LODWORD(v9[0]) = 0;
  v3 = a3;
  v11 = 0;
  v10 = 0;
  if( (_DWORD)a3 )
  {
    v5 = ExpPoolFlagsToPoolType(a1, 0i64, v9, &v11, &v10);
    if( v5 >= 0 )
    {
      if( v11 )
        return ExAllocatePoolWithQuotaTag(v9[0], a2, v3);
      LODWORD(arg20) = v10 != 0;
      v7 = KeGetCurrentPrcb()->ParentNode->Affinity.Reserved[0];
      LODWORD(v7) = v7 | 0x80000000;
      return ExpAllocatePoolWithTagFromNode(LODWORD(v9[0]), a2, v3, v7, arg20);
    }
  }
  else
  {
    v5 = -1073741811;
  }
  if( (a1 & 0x20) != 0 )
    RtlRaiseStatus(v5);
  return 0i64;
}

Referenced by:

CmFcpManagerAllocateChangeSubscription
EtwTimLogControlProtectionUserModeReturnMismatch
EtwTimLogRedirectionTrustPolicy
EtwTimLogUserCetSetContextIpValidationFailure
KiLogUserCetSetContextIpValidationFailure
NtSetInformationProcess
PipIommuRetrieveSecondaryDeviceId
RtlAddDynamicEHContinuationTarget
RtlAddDynamicEnforcedAddressRange
SepAddTokenOriginClaim
SepVariableInitialization
VerifierExAllocatePool2
VslConnectSwInterrupt
sub_1405B03A8