PopFxInvokeDripsWatchdogCallback

NTSTATUS __stdcall PopFxInvokeDripsWatchdogCallback(INT64 a1, INT64 a2, INT64 a3){
  INT64 v3; 
  __int64 v4; 
  __int64 v5; 

  v3 = a1;
  v4 = *(_QWORD *)(a1 + 80);
  if( v4 )
  {
    if( *(_QWORD *)(v4 + 168) )
    {
      if( v3 == a2
        || (LODWORD(v3) = _InterlockedCompareExchange((volatile signed __int32 *)(v4 + 824), 0, 0), (v3 & 8) != 0) )
      {
        v3 = *(_QWORD *)(v4 + 864);
        v5 = *(_QWORD *)(a2 + 32);
        if( !v3 || v3 == *(_QWORD *)(v5 + 8) )
          LODWORD(v3) = (*(__int64(__fastcall **)(_QWORD, __int64, INT64, _QWORD))(v4 + 168))(
                          *(_QWORD *)(v4 + 192),
                          v5,
                          a3,
                          0i64);
      }
    }
  }
  return v3;
}

Referenced by:

PopDripsWatchdogInvokeDeviceCallbacks