VfCtxInit

VOID __fastcall VfCtxInit(INT64 a1, UINT64 a2){
  XSTATE_CONTEXT *v2; 
  __int64 v3; 
  if( (MmVerifierData & 0x800) != 0 )
  {
    if( (KeFeatureBits & 0x800000) != 0 && KUSER_SHARED_DATA.XState.EnabledFeatures )
    {
      ViCtxXStateEnabledMask = KUSER_SHARED_DATA.XState.EnabledFeatures;
      LODWORD(ViCtxXStateSize) = KUSER_SHARED_DATA.XState.Size;
    }
    v2 = &stru_140D4BC30;
    v3 = 16i64;
    do
    {
      if( ViCtxXStateEnabledMask && (int)KeAllocateXStateContext(v2 - 1, a2) >= 0 )
      {
        if( (int)KeAllocateXStateContext(v2, a2) >= 0 )
        {
          memset((INT64)v2[-1].Area, 0i64);
          memset((INT64)v2->Area, 0i64);
          HIDWORD(v2[-2].Area) |= 1u;
        }
        else
        {
          KeFreeXStateContext(v2);
        }
      }
      _InterlockedIncrement(&ViCtxInitializedIsrStateBlocks);
      v2 = (XSTATE_CONTEXT *)((char *)v2 + 80);
      --v3;
    }
    while( v3 );
  }
}

Referenced by:

VfInitVerifierComponents