KiRemoveThreadFromSharedReadyQueue

__int64 __fastcall KiRemoveThreadFromSharedReadyQueue(__int64 a1, __int64 a2, char a3){
  _QWORD *v3; 
  _QWORD *v4; 
  __int64 result; 
  if( (*(_DWORD *)(a2 + 120) & 0x400000) != 0 )
    _InterlockedAnd(*(volatile signed __int32 **)(a2 + 968), 0xFFFBFFFF);
  v3 = *(_QWORD **)(a2 + 216);
  v4 = *(_QWORD **)(a2 + 224);
  if( v3[1] != a2 + 216 || *v4 != a2 + 216 )
    __fastfail(3u);
  *v4 = v3;
  v3[1] = v4;
  if( v4 == v3 )
    *(_DWORD *)(a1 + 8) ^= 1 << a3;
  --*(_DWORD *)(a1 + 608);
  result = *(unsigned int *)(a2 + 1568);
  *(_QWORD *)(a1 + 616) -= result;
  return result;
}

Referenced by:

KiFindReadyThread
KiQuantumEnd
KiRemoveThreadFromAnyReadyQueue
KiSetThreadSchedulingGroup