PopPepInitializeDebuggerMasks
VOID __stdcall PopPepInitializeDebuggerMasks(_POP_PEP_DEVICE *Device, UINT64 PlatformStateCount){
ULONG_PTR v2;
_QWORD *v3;
__int64 v4;
ULONG_PTR v5;
UINT8 *v6;
_BYTE *v7;
__int64 v8;
int v9;
int v10;
UINT8 *v11;
UINT8 TransitionRequirements[16];
__int128 v13;
v2 = PlatformStateCount;
if( *(_DWORD *)(PpmPlatformStates + 4) )
{
v3 = (_QWORD *)*((_QWORD *)Device + 4);
v10 = 0;
*(_OWORD *)TransitionRequirements = 0i64;
v13 = 0i64;
v4 = v3[8];
if( v4 == *(_QWORD *)&PopFxProcessorPlugin )
{
if( v4 )
{
v8 = v3[9];
v11 = TransitionRequirements;
v9 = PlatformStateCount;
if( (*(unsigned __int8(__fastcall **)(__int64, __int64 *))(v4 + 96))(35i64, &v8) )
{
v5 = 0;
if( v2 )
{
v6 = TransitionRequirements;
v7 = (_BYTE *)(PopPepPlatformState + 56);
do
{
if( *v6 )
{
if( !v7[1] )
PopFxBugCheck(0x61Fu, (ULONG_PTR)v3, v5, 0);
*v7 = 1;
PopAutomaticDebuggerTransitions = 1;
}
++v5;
++v6;
v7 += 384;
}
while( v5 < v2 );
}
PopDiagTraceDebuggerTransitionRequirements(v3, TransitionRequirements, v2);
}
}
}
}
}Referenced by:
PopPepInitializeVetoMasks