WheapCallErrorSourceInitialize

INT64 __fastcall WheapCallErrorSourceInitialize(INT64 a1, UINT64 a2){
  unsigned int v2; 
  __int64(__fastcall *v4)(_QWORD, INT64, _QWORD); 
  INT64 result; 
  __int64(__fastcall *ErrorSourceFunction)(_QWORD, _QWORD); 
  v2 = a2;
  if( *(_DWORD *)(a1 + 40) == 16 )
  {
    ErrorSourceFunction = (__int64(__fastcall *)(_QWORD, _QWORD))WheapGetErrorSourceFunction(a1, 1i64, 0);
    result = 0i64;
    if( ErrorSourceFunction )
      result = ErrorSourceFunction(*(_QWORD *)(a1 + 56), *(unsigned int *)(a1 + 124));
  }
  else
  {
    v4 = (__int64(__fastcall *)(_QWORD, INT64, _QWORD))WheapGetErrorSourceFunction(a1, 1i64, 0);
    if( v4 )
      result = v4(v2, a1 + 96, *(_QWORD *)(a1 + 56));
    else
      result = 3221225474i64;
  }
  _InterlockedDecrement((volatile signed __int32 *)(a1 + 92));
  return result;
}

Referenced by:

WheaAddErrorSource
WheaInitialize
WheaInitializeProcessor
WheapInitializeDeferredErrorSources