PopFxInvokeDripsWatchdogCallback

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

Referenced by:

PopDripsWatchdogInvokeDeviceCallbacks