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