PopDiagTraceDeepSleepConstraintRundown

VOID __stdcall PopDiagTraceDeepSleepConstraintRundown(INT64 a1, INT64 a2, NPTEXTMETRIC *a3){
  unsigned __int16 v3; 
  int v4; 
  unsigned int v5; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  ULONG UserDataCount; 
  bool v9; 
  int *v10; 
  __int64 v11; 
  unsigned __int16 v12; 
  int v13[10]; 
  _EVENT_DATA_DESCRIPTOR UserData; 
  __int64 v15[20]; 

  v3 = 0;
  if( PopDiagHandleRegistered && EtwEventEnabled(PopDiagHandle, &POP_ETW_DEEP_SLEEP_CONSTRAINT_RUNDOWN) )
  {
    LOBYTE(v4) = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PopIrpWorkerControlEvent + 27);
    v5 = *(&PopIrpWorkerControlEvent + 52);
    v6 = (unsigned __int8)v4;
    *(_QWORD *)&UserData.Size = 2i64;
    v7 = *(&PopIrpWorkerControlEvent + 52)
       - (((unsigned __int64)*(&PopIrpWorkerControlEvent + 52) >> 1) & 0x5555555555555555i64);
    v12 = (0x101010101010101i64
         * (((v7 & 0x3333333333333333i64)
           + ((v7 >> 2) & 0x3333333333333333i64)
           + (((v7 & 0x3333333333333333i64) + ((v7 >> 2) & 0x3333333333333333i64)) >> 4)) & 0xF0F0F0F0F0F0F0Fi64)) >> 56;
    UserDataCount = v12 + 1;
    UserData.Ptr = (unsigned __int64)&v12;
    v9 = !_BitScanForward((unsigned int *)&v4, *(&PopIrpWorkerControlEvent + 52));
    v13[0] = v4;
    if( !v9 )
    {
      v10 = v13;
      do
      {
        v5 &= v5 - 1;
        v11 = 2i64 * v3++;
        v15[v11] = (__int64)v10;
        v15[v11 + 1] = 4i64;
        v10 = &v13[v3];
        v9 = !_BitScanForward((unsigned int *)&v11, v5);
        *v10 = v11;
      }
      while( !v9 );
    }
    EtwWriteEx(PopDiagHandle, &POP_ETW_DEEP_SLEEP_CONSTRAINT_RUNDOWN, 0i64, 0, 0, 0, UserDataCount, &UserData);
    KxReleaseSpinLock((UINT64 *)&PopIrpWorkerControlEvent + 27);
    __writecr8(v6);
  }
}

Referenced by:

PopDiagTraceControlCallback