PerfDiagpUpdatePerfDiagLoggerEnableFlags

INT64 __fastcall PerfDiagpUpdatePerfDiagLoggerEnableFlags(INT64 a1, INT64 a2){
  INT64 v3; 
  unsigned int v4; 
  UINT64 OutBufferLen; 
  UINT64 ReturnLength[2]; 
  INT64 result; 
  int v8; 
  INT64 v9; 
  __int128 *v10; 
  int v11; 
  __int128 Src[3]; 
  LODWORD(ReturnLength[0]) = 0;
  memset(Src, 0, sizeof(Src));
  memset((INT64)&result, 0i64);
  v8 = 32;
  v9 = a2;
  v10 = Src;
  v11 = 3;
  LODWORD(Src[0]) = 48;
  LOBYTE(v3) = RtlpQueryRegistryValues(
                 (_KTRAP_FRAME *)2,
                 (_KEXCEPTION_FRAME *)L"Diagnostics\\Performance\\BootCKCLSettings");
  if( (int)v3 >= 0 )
  {
    if( DWORD1(Src[0]) == 3 )
    {
      v4 = Src[0];
      if( LODWORD(Src[0]) > 0x28 )
      {
        return 3221225507i64;
      }
      else
      {
        memmove(&qword_140C1A128, (UINT8 *)Src + 8, LODWORD(Src[0]));
        PerfDiagpInitializeLoggerInfo(1ui64, v4 >> 2);
        LODWORD(OutBufferLen) = OutBuffer;
        return NtTraceControl(4ui64, &OutBuffer, (unsigned int)OutBuffer, &OutBuffer, OutBufferLen, ReturnLength);
      }
    }
    else
    {
      return 3221225485i64;
    }
  }
  return v3;
}

Referenced by:

PerfDiagpProxyWorker