KiEnterDeferredReadyState

NTSTATUS __stdcall KiEnterDeferredReadyState(INT64 a1){
  NTSTATUS result; 

  result = *(unsigned __int8 *)(a1 + 388);
  if( (_BYTE)result == 1 )
  {
    *(_DWORD *)(a1 + 116) |= 2u;
    *(_BYTE *)(a1 + 388) = 7;
  }
  else
  {
    if( (_BYTE)result == 5 )
    {
      result = KUSER_SHARED_DATA.TickCount.LowPart - *(_DWORD *)(a1 + 436);
      if( *(_BYTE *)(a1 + 391) )
        *(_QWORD *)(a1 + 1000) += (unsigned int)result;
      else
        *(_QWORD *)(a1 + 992) += (unsigned int)result;
    }
    *(_BYTE *)(a1 + 388) = 7;
  }
  return result;
}

Referenced by:

KiFastReadyThread
KiInsertDeferredReadyList
KiQueueReadyThread
KiReadyOutSwappedThreads
KiSearchForNewThread
KiSearchForNewThreadOnProcessor
KiSetThreadSchedulingGroup
KiSwapThread