PfSnParametersVerify

NTSTATUS __stdcall PfSnParametersVerify(PF_SYSTEM_PREFETCH_PARAMETERS *Parameters){
  NTSTATUS v2; 
  int v3; 
  PF_SYSTEM_PREFETCH_PARAMETERS *i; 
  unsigned int v5; 
  UINT16 *v6; 
  int v7; 
  PF_SYSTEM_PREFETCH_PARAMETERS *v8; 
  PF_SYSTEM_PREFETCH_PARAMETERS *j; 

  v2 = -1073741811;
  v3 = 0;
  for( i = Parameters + 12; *(_WORD *)i; i = (PF_SYSTEM_PREFETCH_PARAMETERS *)((char *)i + 2) )
  {
    if( (unsigned int)++v3 >= 0x30 )
      return v2;
  }
  v5 = 0;
  v6 = (UINT16 *)(Parameters + 36);
  while( *v6 )
  {
    if( towupper(*v6) == *v6 )
    {
      ++v5;
      ++v6;
      if( v5 < 0x80 )
        continue;
    }
    return v2;
  }
  v7 = 0;
  v8 = Parameters + 4;
  for( j = Parameters;
        (unsigned int)*j <= 2
     && (unsigned int)*(v8 - 2) <= 0x100000
     && (unsigned int)*(v8 - 1) <= 0x4000
     && (unsigned __int64)(*(_QWORD *)v8 + 6000000000i64) <= 0x165A0BBFFi64;
        ++j )
  {
    ++v7;
    v8 += 4;
    if( v7 >= 2 )
    {
      if( (unsigned int)Parameters[10] <= 0x1000
        && (unsigned int)Parameters[11] <= 0x1000
        && (unsigned int)Parameters[100] < 0x20
        && (unsigned int)(Parameters[101] - 1) <= 9 )
      {
        return 0;
      }
      return v2;
    }
  }
  return v2;
}

Referenced by:

PfSnParametersRead