KiGetHalNumaConversionFactor
UINT64 __stdcall KiGetHalNumaConversionFactor(INT64 *a1){
int v1;
unsigned int v3;
__int64 v4;
unsigned __int64 v5;
unsigned __int64 v6;
UINT64 result;
int v8;
unsigned __int64 v9;
v1 = 0;
if( KeNumberNodes )
{
while( 2 )
{
v3 = 0;
do
{
v4 = v3 + v1 * (unsigned __int16)KeNumberNodes;
v5 = *(_QWORD *)(*(&KiSwapEvent + 58) + 8 * v4);
if( v5 - 1 <= 0xFFFFFFFFFFFFFFFDui64 )
{
v6 = *((unsigned int *)KeNodeDistance + v4);
if( (unsigned int)v6 > 1 )
{
if( v6 < v5 )
{
v9 = 100 * v5;
v8 = 2;
result = v9 / v6;
}
else
{
result = (unsigned int)(100 * v6) / v5;
v8 = 3;
}
*(_DWORD *)a1 = v8;
return result;
}
}
++v3;
}
while( v3 < (unsigned __int16)KeNumberNodes );
if( ++v1 < (unsigned int)(unsigned __int16)KeNumberNodes )
continue;
break;
}
}
*(_DWORD *)a1 = 1;
return 0i64;
}Referenced by:
KiComputeNumaCosts