HalpMcaReadErrorCorrected

INT64 __fastcall HalpMcaReadErrorCorrected(INT64 a1, BYTE *a2){
  UINT8 CpuVendor; 
  INT64 result; 
  CpuVendor = HalpGetCpuVendor();
  if( CpuVendor == 1 )
    return HalpMcaReadErrorCorrectedAMD((INT64 *)a1, (INT64)a2);
  result = *(_QWORD *)a1;
  if( CpuVendor != 2 )
  {
    if( (result & 0x2000000000000000i64) != 0 )
      return result;
    goto LABEL_9;
  }
  if( (result & 0x2000000000000000i64) == 0 )
  {
LABEL_9:
    *a2 = 1;
    return result;
  }
  if( *(_BYTE *)(a1 + 8) )
  {
    if( (result & 0x300000000000000i64) == 0 )
      *(_WORD *)a2 = 257;
  }
  return result;
}

Referenced by:

HalpMcaReadError