PerfLogExecutiveResourceWait

VOID __stdcall PerfLogExecutiveResourceWait(UINT64 Action, VOID *LockAddress, UINT64 RecursionCount){
  unsigned int v3; 
  int v5; 
  struct _KPRCB *CurrentPrcb; 
  unsigned __int64 v7; 
  __int16 Group; 
  unsigned __int8 GroupIndex; 
  signed __int64 TrackingLockSlotForThread; 
  __int64 v11; 
  int v12; 
  __int64 v13[3]; 
  unsigned int v14; 
  unsigned int CurrentRunTime; 
  VOID *v16; 
  int v17; 
  int v18; 
  __int64 v19[2]; 

  v3 = RecursionCount;
  v5 = Action;
  CurrentPrcb = KeGetCurrentPrcb();
  v7 = __rdtsc();
  Group = CurrentPrcb->Group;
  GroupIndex = CurrentPrcb->GroupIndex;
  ++CurrentPrcb->SynchCounters.ExEtwSynchTrackingNotificationsCount;
  LOWORD(v12) = Group;
  HIWORD(v12) = GroupIndex;
  TrackingLockSlotForThread = EtwpGetTrackingLockSlotForThread((__int64)LockAddress, (unsigned int)Action & 0xFFFF0000);
  if( TrackingLockSlotForThread )
  {
    ++CurrentPrcb->SynchCounters.ExEtwSynchTrackingNotificationsAccountedCount;
    if( ((v5 - 65572) & 0xFFFFFFDF) != 0 )
    {
      if( ((v5 - 66084) & 0xFFFFFFDF) == 0 )
      {
        if( *(_DWORD *)(TrackingLockSlotForThread + 32) == 4
          && *(_WORD *)(TrackingLockSlotForThread + 24) == Group
          && *(_BYTE *)(TrackingLockSlotForThread + 26) == GroupIndex )
        {
          v11 = v7 - *(_QWORD *)TrackingLockSlotForThread;
        }
        else
        {
          v11 = 0i64;
        }
        if( !(v3 % EtwpExecutiveResourceTimeout) )
        {
          v13[0] = 0i64;
          v17 = v5;
          v16 = LockAddress;
          v14 = v3;
          v13[1] = v11;
          v13[2] = *(_QWORD *)TrackingLockSlotForThread;
          v18 = 0;
          v19[1] = 48i64;
          CurrentRunTime = KeGetCurrentThread()[1].CurrentRunTime;
          v19[0] = (__int64)v13;
          EtwTraceKernelEvent((__int64)v19, 1u, 0x20020000u, 0x52Bu, 0x1501802u);
        }
      }
    }
    else
    {
      *(_DWORD *)(TrackingLockSlotForThread + 24) = v12;
      *(_DWORD *)(TrackingLockSlotForThread + 32) = 4;
      *(_QWORD *)TrackingLockSlotForThread = v7;
    }
  }
}

Referenced by:

ExAcquireSharedWaitForExclusive