HalpMcaReadErrorCorrected

NTSTATUS __stdcall HalpMcaReadErrorCorrected(INT64 a1, _BYTE *a2){
  UINT8 CpuVendor; 
  __int64 v5; 

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

Referenced by:

HalpMcaReadError