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