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