KiResetScb

void __fastcall KiResetScb(__int64 a1, __int64 a2){
  bool v2; 
  __int64 v4; 
  _DWORD *v5; 
  __int64 v6; 
  int v7; 
  _KPRCB *v8; 
  __int64 v9; 
  *(_BYTE *)(a1 + 112) &= 0xF1u;
  v2 = (*(_BYTE *)(a1 + 112) & 0x20) == 0;
  v4 = a1;
  *(_QWORD *)a1 = 0i64;
  *(_QWORD *)(a1 + 24) = 0i64;
  *(_QWORD *)(a1 + 40) = 0i64;
  *(_QWORD *)(a1 + 56) = 0i64;
  *(_DWORD *)(a1 + 116) = 0;
  if( v2 )
  {
    v5 = *(_DWORD **)(a1 + 120);
    if( v5 )
      *v5 = 0;
  }
  else
  {
    *(_DWORD *)(a1 + 128) = 0;
  }
  if( *(_WORD *)(a1 + 114) )
  {
    if( !*(_DWORD *)(a1 + 116) )
    {
      do
      {
        v6 = *(_QWORD *)(a1 + 408);
        if( !v6 )
          break;
        a1 = *(_QWORD *)(a1 + 408);
      }
      while( !*(_DWORD *)(v6 + 116) );
    }
    v7 = *(_DWORD *)(a1 + 116);
    v8 = 0i64;
    if( !v7 )
      v8 = (_KPRCB *)a2;
    KiMoveScbThreadsToNewReadylist((_KSCB *)v4, (_KSCB *)(a1 & -(__int64)(v7 != 0)), v8, 0i64);
    if( (*(_BYTE *)(v4 + 112) & 1) != 0 )
    {
      v9 = *(_QWORD *)(v4 + 392);
      if( (*(_BYTE *)(v4 + 400) & 1) != 0 )
      {
        if( !v9 )
        {
LABEL_16:
          KiRemoveSchedulingGroupQueue((_KPRCB *)a2, (_KSCB *)v4, 0);
          return;
        }
        v9 ^= v4 + 392;
      }
      if( !v9 )
        goto LABEL_16;
    }
  }
}

Referenced by:

KiUpdateCpuTargetByRate
KiUpdateCpuTargetByWeight