EtwpAddDataSource
VOID **__fastcall EtwpAddDataSource(__int64 a1){
VOID **result;
VOID **v3;
VOID **v4;
signed __int64 v5;
result = *(VOID ***)(a1 + 1424);
if( !result )
{
result = ExAllocatePoolWithTag(0x200ui64, 0x28ui64, 1400337477i64);
v3 = result;
if( result )
{
*result = 0i64;
result[1] = 0i64;
result[4] = 0i64;
v4 = result + 3;
v4[1] = v4;
*v4 = v4;
v3[2] = 0i64;
v5 = _InterlockedCompareExchange64((volatile signed __int64 *)(a1 + 1424), (signed __int64)v3, 0i64);
if( v5 )
{
ExFreePoolWithTag(v3, 0);
return(VOID **)v5;
}
return v3;
}
}
return result;
}Referenced by:
EtwpAddNotificationEvent
EtwpQueueNotification