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