HviGetIptFeatures

CHAR __fastcall HviGetIptFeatures(INT32 *a1){
  __int32 v2; 
  __int64 v3; 
  INT32 v5[4]; 
  INT32 v6[4]; 
  *(_OWORD *)v5 = 0i64;
  *(_OWORD *)v6 = 0i64;
  LOBYTE(v2) = HviIsHypervisorMicrosoftCompatible();
  if( (_BYTE)v2
    && (LOBYTE(v2) = HviGetHypervisorVendorAndMaxFunction(v5), v5[0] >= 0x4000000Bu)
    && (LOBYTE(v2) = HviGetHypervisorFeatures(v6), (v6[3] & 0x8000000) != 0) )
  {
    v3 = __cpuid(1073741835, 0);
    v2 = EAX(v3);
    *a1 = v2;
    a1[1] = EBX(v3);
    a1[2] = ECX(v3);
    a1[3] = EDX(v3);
  }
  else
  {
    *(_QWORD *)a1 = 0i64;
    *((_QWORD *)a1 + 1) = 0i64;
  }
  return v2;
}

Referenced by:

KiGetIptInfo