KiFindFirstAvailableNode

NTSTATUS __stdcall KiFindFirstAvailableNode(UINT16 *Node){
  unsigned __int16 v1; 
  unsigned __int16 v2; 
  __int64 v3; 
  unsigned __int16 *v4; 
  v1 = KeNumberNodes;
  v2 = 0;
  if( !KeNumberNodes )
    return -1073741275;
  while( 1 )
  {
    v3 = *((_QWORD *)&KeNodeBlock + v2);
    if( (*(_BYTE *)(v3 + 181) & 2) != 0 && !KiIsNodeFull(v3) )
      break;
    if( ++v2 >= v1 )
      return -1073741275;
  }
  *v4 = v2;
  return 0;
}

Referenced by:

KiQueryProcessorNode