KiRemoveThreadFromReadyQueue

__int64 __fastcall KiRemoveThreadFromReadyQueue(__int64 a1, __int64 a2, char a3){
  _QWORD *v3; 
  _QWORD *v4; 
  __int64 result; 
  if( (*(_DWORD *)(a2 - 96) & 0x400000) != 0 )
    _InterlockedAnd(*(volatile signed __int32 **)(a2 + 752), 0xFFFBFFFF);
  v3 = *(_QWORD **)a2;
  v4 = *(_QWORD **)(a2 + 8);
  if( *(_QWORD *)(*(_QWORD *)a2 + 8i64) != a2 || *v4 != a2 )
    __fastfail(3u);
  *v4 = v3;
  v3[1] = v4;
  if( v4 == v3 )
    *(_DWORD *)(a1 + 31768) ^= 1 << a3;
  --*(_DWORD *)(a1 + 32436);
  result = *(unsigned int *)(a2 + 1352);
  *(_QWORD *)(a1 + 32440) -= result;
  return result;
}

Referenced by:

KiFindReadyThread
KiQuantumEnd
KiRemoveThreadFromAnyReadyQueue
KiSelectReadyThread