HalpHvLpReadMcaStatusMsr

char __fastcall HalpHvLpReadMcaStatusMsr(unsigned int a1, unsigned int a2, INT64 *a3, _QWORD *a4){
  char v8; 
  __int64 v9; 
  __int64 v10; 

  v8 = 0;
  if( HalpGetCpuVendor() == 1 && HalpMcaScalableRasSupported )
  {
    if( a2 < 0xC0002000 )
      return v8;
    v9 = (a2 + 1073733632) >> 4;
  }
  else
  {
    if( a2 < 0x401 )
      return v8;
    v9 = (a2 - 1025) >> 2;
  }
  if( (unsigned int)v9 < (unsigned int)dword_140C4A3A8 )
  {
    v10 = *a3;
    if( *a3 )
    {
LABEL_11:
      v8 = 1;
      *a4 = *(_QWORD *)(v10 + 8 * v9);
      return v8;
    }
    v10 = qword_140C4A3B8 + 8i64 * a1 * (unsigned int)dword_140C4A3A8;
    if( HalpHvLpReadMultipleMsr(a1, (unsigned int)dword_140C4A3A8, qword_140C4A3C0, v10) >= 0 )
    {
      *a3 = v10;
      goto LABEL_11;
    }
  }
  return v8;
}

Referenced by:

HalpHvEpReadMsr