PspSanitizeResourceLimits

NTSTATUS __stdcall PspSanitizeResourceLimits(PS_QUOTA_LIMIT *Limits, UINT64 AcceptInvalidLimit){
  int v2; 
  char *v3; 
  int v4; 
  PS_QUOTA_LIMIT *v5; 
  unsigned int v6; 
  unsigned int v7; 
  unsigned int v9; 

  v2 = 0;
  v3 = PspResourceFlags;
  v4 = AcceptInvalidLimit;
  v5 = Limits;
  do
  {
    if( (*v3 & 2) != 0 )
    {
      v9 = *v5;
      if( (*v5 & 0x7Fu) - 1 > 0x63 || v9 >= 0x80 )
      {
        if( !v4 )
          return -1073741811;
        *v5 = v9 & 0xFFFFFF80 | 0x64;
      }
    }
    else if( (*v3 & 1) != 0 && !*v5 )
    {
      *v5 = -1;
    }
    ++v2;
    v3 += 8;
    ++v5;
  }
  while( v2 < 4 );
  v6 = *Limits;
  if( *Limits != -1 )
  {
    if( v6 >= 0xFFF )
    {
      if( !v4 )
        return -1073741811;
      *Limits = -1;
    }
    else
    {
      *Limits = v6 << 20;
    }
  }
  v7 = Limits[1];
  if( v7 == -1 )
    return 0;
  if( v7 < 0xFFF )
  {
    Limits[1] = v7 << 20;
    return 0;
  }
  if( v4 )
  {
    Limits[1] = -1;
    return 0;
  }
  return -1073741811;
}

Referenced by:

PsInitializeQuotaSystem
PspReadUserQuotaLimits