KiAbApplyWakeupBoost

VOID __stdcall KiAbApplyWakeupBoost(INT64 HandoffPriority, _KLOCK_ENTRY *TargetEntry, UINT64 SkipThreadDispatch){
  int v3; 
  __int64 EntryOffset; 
  char *v6; 
  UINT8 CurrentIrql; 
  char v8; 
  char v9; 
  _KPRCB *CurrentPrcb; 
  UINT64 SpinCount; 
  _SINGLE_LIST_ENTRY ReadyList; 

  v3 = SkipThreadDispatch;
  if( (TargetEntry->CrossThreadFlags & 1) == 0 || TargetEntry->WaiterTree.Root )
  {
    EntryOffset = TargetEntry->EntryOffset;
    ReadyList.Next = 0i64;
    v6 = (char *)TargetEntry - 16 * EntryOffset;
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(2ui64);
    v8 = HandoffPriority;
    if( (char)HandoffPriority > 15 )
      v8 = 15;
    if( v6[563] < v8 && ((1 << (v8 - 1)) & 0x7FFF & TargetEntry->BoostBitmap._bf_0) == 0 )
    {
      LODWORD(SpinCount) = 0;
      while( _interlockedbittestandset64((volatile signed __int32 *)v6 + 16, 0i64) )
      {
        do
          KeYieldProcessorEx(&SpinCount);
        while( *((_QWORD *)v6 + 8) );
      }
      v9 = v6[v8 + 824];
      if( v9 == -1 )
        KeBugCheckEx(0x157u, v6, (PVOID)v8, (PVOID)1, 0i64);
      v6[v8 + 824] = v9 + 1;
      *((_DWORD *)v6 + 214) |= 1 << v8;
      if( v6[195] < v8 )
        KiSetPriorityThread((_KTHREAD *)v6, &ReadyList, (unsigned int)v8);
      KiReleaseThreadLockSafe((INT64)v6);
      TargetEntry->BoostBitmap._bf_0 ^= (TargetEntry->BoostBitmap._bf_0 ^ (TargetEntry->BoostBitmap._bf_0 & 0x7FFF | (1 << (v8 - 1)))) & 0x7FFF;
    }
    CurrentPrcb = KeGetCurrentPrcb();
    if( v3 )
      KiReadyDeferredReadyList(CurrentPrcb, &ReadyList);
    else
      KiProcessDeferredReadyList(CurrentPrcb, &ReadyList, CurrentIrql);
  }
}

Referenced by:

ExpWakePushLock
KeAbPreWakeupThread