PspAllocateRateControl

_JOB_RATE_CONTROL_HEADER *__stdcall PspAllocateRateControl(PSP_JOB_RATE_CONTROL_TYPE Type){
  UINT64 RateControlSize; 
  unsigned int v2; 
  int v3; 
  _JOB_RATE_CONTROL_HEADER *PoolWithTag; 
  VOID *v5; 

  RateControlSize = PspGetRateControlSize(Type);
  v2 = 512;
  if( v3 != 2 )
    v2 = 1;
  PoolWithTag = (_JOB_RATE_CONTROL_HEADER *)ExAllocatePoolWithTag(v2, RateControlSize, 1649046352i64);
  if( PoolWithTag )
  {
    v5 = PsChargeSharedPoolQuota(KeGetCurrentThread()->ApcState.Process, RateControlSize, 0i64);
    if( v5 )
    {
      memset(PoolWithTag, 0i64, RateControlSize);
      PoolWithTag->RateControlQuotaReference = v5;
    }
    else
    {
      ExFreePoolWithTag(PoolWithTag, 0x624A7350u);
      return 0i64;
    }
  }
  return PoolWithTag;
}

Referenced by:

NtSetInformationJobObject
PspSetJobRateControl