KeQueryKvaShadowInformation

INT64 __fastcall KeQueryKvaShadowInformation(_DWORD *a1, UINT64 a2, _DWORD *a3){
  int ImplementedPhysicalBits; 
  int v6; 
  __int16 v7; 
  unsigned int v8; 
  unsigned int v9; 
  char v10; 
  unsigned int v11; 
  unsigned int v12; 
  int v13; 
  int v14; 
  *a3 = 4;
  if( (unsigned int)a2 < 4 )
    return 3221225476i64;
  ImplementedPhysicalBits = KeQueryImplementedPhysicalBits();
  v6 = 0;
  v7 = 0;
  if( ImplementedPhysicalBits > 0 )
    v7 = ImplementedPhysicalBits - 1;
  v8 = ((_BYTE)KiKvaShadow != 0) | *a1 & 0xFFFFFFFE;
  *a1 = v8;
  if( (unsigned int)KeKvaShadowingActive() == 2 )
    v6 = 2;
  v9 = v8 & 0xFFFFFFFD | v6;
  *a1 = v9;
  v10 = KiFlushPcid;
  v11 = v9 & 0xFFFFFFFB | (4 * (KiFlushPcid & 1));
  *a1 = v11;
  *a1 = v11 & 0xFFFFFFF7 | (4 * (v10 & 2));
  v12 = (KiKvaLeakage != 0 ? 0x10 : 0) | v11 & 0xFFFFFFE7 | (4 * (v10 & 2)) & 0xEF;
  *a1 = v12;
  v12 |= 0x20u;
  *a1 = v12;
  v12 |= 0x2000u;
  *a1 = v12;
  v13 = v12 ^ ((unsigned __int16)v12 ^ (unsigned __int16)(v7 << 6)) & 0xFC0;
  *a1 = v13;
  v14 = v13 ^ ((unsigned __int16)v13 ^ (unsigned __int16)((_WORD)KeFeatureBits2 << 12)) & 0x1000;
  *a1 = v14;
  *a1 = v14 & 0x3FFF;
  return 0i64;
}

Referenced by:

ExpQuerySystemInformation
VslpIumPhase0Initialize