PopDripsWatchdogInvokeDeviceCallbacks

VOID **__fastcall PopDripsWatchdogInvokeDeviceCallbacks(INT64 a1, UINT64 a2){
  VOID **result; 
  __int64 v3; 
  unsigned int i; 
  VOID *v6; 
  INT64 v7; 
  INT64 v8; 
  INT64 j; 
  void *retaddr; 
  result = &retaddr;
  v3 = 0i64;
  for( i = a2; (unsigned int)v3 < *(_DWORD *)(a1 + 904); v3 = (unsigned int)(v3 + 1) )
  {
    result = *(VOID ***)(a1 + 896);
    v6 = result[v3];
    v7 = (INT64)v6;
    if( v6 )
    {
      do
      {
        if( *(_QWORD *)(v7 + 80) )
          result = (VOID **)PopFxInvokeDripsWatchdogCallback(v7, (INT64)v6, i);
        v7 = *(_QWORD *)(v7 + 16);
      }
      while( v7 );
    }
  }
  v8 = *(_QWORD *)(a1 + 48);
  for( j = v8; j; j = *(_QWORD *)(j + 16) )
  {
    if( *(_QWORD *)(j + 80) )
      result = (VOID **)PopFxInvokeDripsWatchdogCallback(j, v8, i);
  }
  return result;
}

Referenced by:

PopDripsWatchdogCallbackHandler