HalpReadExtendedMcaRegistersAMD

VOID __fastcall HalpReadExtendedMcaRegistersAMD(INT64 a1, INT64 a2, INT64 a3, _QWORD *a4){
  unsigned __int32 v4; 
  int v7; 
  v4 = 0;
  if( HalpMcaScalableRasSupported )
  {
    v7 = 16 * a2;
    a4[9] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(
              a3,
              (unsigned int)(16 * a2 - 1073733627),
              0i64);
    a4[10] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733626), 0i64);
    a4[11] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733628), 0i64);
    a4[12] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733624), 0i64);
    a4[13] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733623), 0i64);
    a4[14] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733622), 0i64);
    a4[15] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733621), 0i64);
    a4[16] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733620), 0i64);
    a4[17] = ((__int64(__fastcall *)(INT64, _QWORD, _QWORD))HalpWheaReadMsr)(a3, (unsigned int)(v7 - 1073733619), 0i64);
    if( (unsigned int)EAX(__cpuid(0x80000000, 0)) >= 0x80000007 )
      v4 = EBX(__cpuid(-2147483641, 0));
    a4[18] = v4;
  }
}

Referenced by:

HalpMcaPopulateErrorData