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