PopDirectedDripsQueryMitigationStatus
INT64 __fastcall PopDirectedDripsQueryMitigationStatus(_DWORD *a1, _DWORD *a2, INT64 *a3){
char v3;
INT64 result;
int v6;
int v7;
__int16 v8;
v3 = dword_140C24A10;
_m_prefetchw(&PopDirectedDripsState);
LODWORD(result) = PopDirectedDripsState;
v6 = 0;
do
{
v7 = result;
result = (unsigned int)_InterlockedCompareExchange(
(volatile signed __int32 *)&PopDirectedDripsState,
result,
result);
}
while( v7 != (_DWORD)result );
v8 = result;
if( a1 )
{
*a1 = 0;
result = 0i64;
if( (v3 & 1) != 0 )
{
*a1 = 1;
result = 1i64;
}
if( (v3 & 2) != 0 )
{
result = (unsigned int)result | 2;
*a1 = result;
}
}
if( a2 )
{
*a2 = 0;
result = 0i64;
if( (v8 & 0x1000) != 0 )
{
*a2 = 1;
result = 1i64;
}
if( (v8 & 0x2000) != 0 )
{
result = (unsigned int)result | 2;
*a2 = result;
}
}
if( a3 )
{
*(_DWORD *)a3 = 0;
if( (v8 & 0x400) != 0 )
{
*(_DWORD *)a3 = 1;
v6 = 1;
}
if( (v8 & 0x800) != 0 )
*(_DWORD *)a3 = v6 | 2;
}
return result;
}Referenced by:
PopDirectedDripsInitializeBroadcast
PopDirectedDripsNotify
PopDirectedDripsSendSessionData
PopDirectedDripsUmQueryCapabilities