PopDirectedDripsDiagBroadcastTreeEnd
VOID __stdcall PopDirectedDripsDiagBroadcastTreeEnd(INT64 a1, INT64 a2, INT64 a3, CHAR a4){
int v4;
int v7;
if( a1 )
{
v4 = a2;
v7 = a3;
ExAcquirePushLockExclusiveEx(&PopDirectedDripsDiagLock, 0i64);
if( v4 < 0 || (*(_DWORD *)(a1 + 40) ^= (*(_DWORD *)(a1 + 40) ^ (16 * v7)) & 0xF0, a4) )
*(_DWORD *)(a1 + 40) |= 0x100u;
else
*(_DWORD *)(a1 + 40) &= ~0x100u;
if( (_InterlockedExchangeAdd64(&PopDirectedDripsDiagLock._bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock(&PopDirectedDripsDiagLock);
KeAbPostRelease(&PopDirectedDripsDiagLock);
}
}Referenced by:
PopDirectedDripsBuildBroadcastTreePartial