PfpGetParameter

INT64 __stdcall PfpGetParameter(
        PVOID ParametersKey,
        WCHAR *ValueNameBuffer,
        UINT64 ValueType,
        PVOID Value,
        UINT64 *ValueSize){
  int v7; 
  INT64 result; 
  unsigned int v9; 
  ULONG ResultLength; 
  struct _UNICODE_STRING DestinationString; 
  char KeyValueInformation[4]; 
  int v13; 
  unsigned int Src; 
  UINT8 Src_4; 
  ResultLength = 272;
  DestinationString = 0i64;
  v7 = ValueType;
  RtlInitUnicodeString(&DestinationString, ValueNameBuffer, ValueType);
  if( !ParametersKey )
    return 3221225485i64;
  LODWORD(result) = ZwQueryValueKey(
                      ParametersKey,
                      &DestinationString,
                      KeyValuePartialInformation,
                      KeyValueInformation,
                      0x110u,
                      &ResultLength);
  if( (int)result >= 0 )
  {
    if( ResultLength < 0x10 )
    {
      return 3221225473i64;
    }
    else if( v13 == v7 )
    {
      v9 = Src;
      if( Src > *(_DWORD *)ValueSize )
      {
        return 3221225507i64;
      }
      else
      {
        memmove((UINT8 *)Value, &Src_4, Src);
        result = 0i64;
        *(_DWORD *)ValueSize = v9;
      }
    }
    else
    {
      return 3221225508i64;
    }
  }
  return result;
}

Referenced by:

PfSnParametersRead
PfpParametersInitialize
PfpParametersRead
PfpSetBaseTime