PopDirectedDripsDiagTraceMarkDevice

VOID __stdcall PopDirectedDripsDiagTraceMarkDevice(INT64 a1){
  CHAR *DeviceDiagnostic; 
  REGHANDLE v2; 
  INT64 v3; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  INT64 *v5; 
  int v6; 
  int v7; 

  v3 = a1;
  ExAcquirePushLockExclusiveEx(&PopDirectedDripsDiagLock, 0i64);
  DeviceDiagnostic = *(CHAR **)(v3 + 776);
  if( DeviceDiagnostic || (DeviceDiagnostic = PopDirectedDripsDiagCreateDeviceDiagnostic(v3)) != 0i64 )
    ++*((_DWORD *)DeviceDiagnostic + 36);
  if( PopDiagHandleRegistered )
  {
    v2 = PopDiagHandle;
    if( EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_DIRECTED_DRIPS_MARK_DEVICE) )
    {
      UserData.Reserved = 0;
      v7 = 0;
      UserData.Ptr = (unsigned __int64)&PopWnfCsEnterScenarioId;
      UserData.Size = 1;
      v5 = &v3;
      v6 = 8;
      EtwWrite(v2, &POP_ETW_EVENT_DIRECTED_DRIPS_MARK_DEVICE, 0, 2u, &UserData);
    }
  }
  if( (_InterlockedExchangeAdd64(&PopDirectedDripsDiagLock._bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock(&PopDirectedDripsDiagLock);
  KeAbPostRelease(&PopDirectedDripsDiagLock);
}

Referenced by:

PopDirectedDripsMarkCandidateDevice