ViInitPickRandomTargets

UINT64 __fastcall ViInitPickRandomTargets(){
  UINT64 result; 
  int v1; 
  unsigned int v2; 
  bool v3; 
  unsigned int i; 
  unsigned int Number; 
  unsigned int v6; 
  result = (unsigned int)VfRandomVerifiedDrivers;
  v1 = 0;
  if( VfRandomVerifiedDrivers )
  {
    if( (unsigned int)VfRandomVerifiedDrivers > 0x200 )
    {
      LODWORD(result) = 512;
      VfRandomVerifiedDrivers = 512;
    }
    VfRandomTargetsBitMapHeader = 512;
    v2 = ViExpectedDriversCount + 2;
    if( (unsigned int)(ViExpectedDriversCount + 2) > 0x200 )
      v2 = 512;
    qword_140D491F8 = (__int64)&VfRandomTargetsBitMap;
    v3 = 2 * (int)result > (unsigned int)ViExpectedDriversCount;
    memset((INT64)&VfRandomTargetsBitMap, 0i64);
    for( i = 0; i < VfRandomVerifiedDrivers; ++i )
    {
      Number = VfRandomGetNumber(1ui64, v2 - 1);
      if( _bittest((const signed __int32 *)qword_140D491F8, Number) )
      {
        if( v3 )
        {
          ++v1;
        }
        else
        {
          v6 = Number;
          while( 1 )
          {
            v6 = (v6 + 1) % v2;
            if( !v6 )
              v6 = 1;
            if( !_bittest((const signed __int32 *)qword_140D491F8, v6) )
              break;
            if( v6 == Number )
              goto LABEL_20;
          }
          _bittestandset((signed __int32 *)qword_140D491F8, v6);
          if( v6 == Number )
            break;
        }
      }
      else
      {
        _bittestandset((signed __int32 *)qword_140D491F8, Number);
      }
    }
LABEL_20:
    VfRandomVerifiedDrivers -= v1;
    return 1i64;
  }
  return result;
}

Referenced by:

ViInitSystemPhase0