MiInitializeNuma
VOID __fastcall MiInitializeNuma(UINT64 *a1){
UINT64 v1;
PSLIST_HEADER v3;
unsigned int i;
int v5;
int *v6;
_SLIST_HEADER *v7;
int v8;
unsigned int v9;
_DWORD *v10;
unsigned __int64 v11;
_QWORD *v12;
__int64 v13;
_QWORD *v14;
__int64 v15;
v1 = a1[2];
v3 = SListHead;
for( i = 0; i < (unsigned __int16)KeNumberNodes; v3 = (PSLIST_HEADER)((char *)v3 + 176) )
{
*(_DWORD *)(v1 + 4212) = i;
*(_BYTE *)(v1 + 3248) = 8;
*(_BYTE *)(v1 + 3250) = 8;
*(_QWORD *)(v1 + 4296) = 0i64;
*(_QWORD *)(v1 + 4328) = 0i64;
*(_DWORD *)(v1 + 4208) = i << byte_140C4DBCC;
if( a1 == &MiSystemPartition )
{
v5 = 0;
v6 = (int *)((char *)v3 + 16);
v7 = v3;
do
{
InitializeSListHead(v7);
v8 = -(v5++ != 1);
v7 = (_SLIST_HEADER *)((char *)v7 + 32);
*v6 = v8 & 5;
v6 += 8;
}
while( v5 < 2 );
}
MiInitializeChannelOrdering(a1, i);
v9 = 0;
v10 = (_DWORD *)(v1 + 4032);
do
{
*v10 = dword_140C4DC38 + 1;
v10 += 4;
v11 = (unsigned __int64)(v9++ << 8) >> 5;
*((_QWORD *)v10 - 1) = v1 + 4 * (v11 + 1016);
}
while( v9 < 2 );
v12 = (_QWORD *)(v1 + 3264);
v13 = 8i64;
do
{
v14 = v12;
v15 = 4i64;
do
{
*(v14 - 1) = 0i64;
*v14 = 0xFFFFFFFFFi64;
v14[1] = 0xFFFFFFFFFi64;
v14 += 24;
--v15;
}
while( v15 );
v12 += 3;
--v13;
}
while( v13 );
++i;
v1 += 4544i64;
}
}Referenced by:
MiInitializePartition