KiFindBiasedProcessorIndex

INT64 __fastcall KiFindBiasedProcessorIndex(INT64 a1, UINT64 a2, UINT64 a3){
  int v3; 
  int i; 
  unsigned __int64 v5; 
  v3 = 0;
  for( i = a2
          % ((0x101010101010101i64
            * ((((a3 - ((a3 >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
              + (((a3 - ((a3 >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)
              + ((((a3 - ((a3 >> 1) & 0x5555555555555555i64)) & 0x3333333333333333i64)
                + (((a3 - ((a3 >> 1) & 0x5555555555555555i64)) >> 2) & 0x3333333333333333i64)) >> 4)) & 0xF0F0F0F0F0F0F0Fi64)) >> 56)
          + 1; i; --i )
  {
    _BitScanForward64(&v5, a3);
    v3 += v5 + 1;
    a3 >>= (unsigned __int8)v5 + 1;
  }
  return(unsigned int)KiProcessorNumberToIndexMappingTable[v3 + ((_DWORD)a1 << 6) - 1];
}

Referenced by:

KiHeteroChooseTargetProcessor