PopPepInitializeDebuggerMasks
VOID __fastcall PopPepInitializeDebuggerMasks(INT64 a1, UINT64 a2){
unsigned int v2;
_QWORD *v3;
__int64 v4;
unsigned int v5;
UINT8 *v6;
_BYTE *v7;
__int64 v8;
int v9;
int v10;
UINT8 *v11;
UINT8 TransitionRequirements[16];
__int128 v13;
v2 = a2;
if( *(_DWORD *)(PpmPlatformStates + 4) )
{
v3 = *(_QWORD **)(a1 + 32);
v10 = 0;
*(_OWORD *)TransitionRequirements = 0i64;
v13 = 0i64;
v4 = v3[8];
if( v4 == PopFxProcessorPlugin )
{
if( v4 )
{
v8 = v3[9];
v11 = TransitionRequirements;
v9 = a2;
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(0x61Fui64, (UINT64)v3, v5, 0i64);
*v7 = 1;
PopAutomaticDebuggerTransitions = 1;
}
++v5;
++v6;
v7 += 384;
}
while( v5 < v2 );
}
PopDiagTraceDebuggerTransitionRequirements(v3, TransitionRequirements, v2);
}
}
}
}
}Referenced by:
PopPepInitializeVetoMasks