HalpAddMcaToMemoryErrorSection

__int64 __fastcall HalpAddMcaToMemoryErrorSection(__int64 a1, _QWORD *a2){
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 

  memset(a2, 0i64, 0x50u);
  v4 = *(_QWORD *)(a1 + 40);
  if( (v4 & 0x400000000000000i64) != 0 )
  {
    if( *(_DWORD *)(a1 + 4) != 1 )
    {
      *a2 = 2i64;
      v6 = *(_QWORD *)(a1 + 48);
      goto LABEL_7;
    }
    if( (v4 & 0x800000000000000i64) != 0 )
    {
      v5 = *(_QWORD *)(a1 + 56);
      if( (v5 & 0x1C0) == 128 )
      {
        v6 = *(_QWORD *)(a1 + 48) & (-1 << (v5 & 0x3F));
        *a2 = 2i64;
LABEL_7:
        a2[2] = v6;
      }
    }
  }
  return 0i64;
}

Referenced by:

HalpAddMcaExtendedLogToMemoryErrorSection
HalpCreateMcaMemoryErrorRecord