UINT64 __fastcall HalpHvEpReadMsr(INT64 a1, UINT64 a2, INT64 *a3){
unsigned int v3;
UINT64 a4;
INT64 v6;
LODWORD(v6) = a2;
if( (a1 & 0x100000000i64) != 0 )
return __readmsr(a2);
a4 = 0i64;
v3 = a1 & 0x7FFFFFFF;
if( !a3 || !HalpHvLpReadMcaStatusMsr(v3, a2, a3, &a4) )
HalpHvLpReadMultipleMsr(v3, 1i64, (INT64)&v6, (INT64)&a4);
return a4;
}