ExInitializeProcessor
__int64 __fastcall ExInitializeProcessor(__int64 a1, char a2){
signed __int64 v4;
VOID *PoolWithTag;
__int64 v7;
v4 = 0i64;
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, 0x80ui64, 0x43497845ui64);
if( PoolWithTag )
{
ExInitializeSystemLookasideList((_DWORD)PoolWithTag, 512, 1264, 1128888389, 32, (__int64)&ExSystemLookasideListHead);
*(_QWORD *)(a1 + 2176) = PoolWithTag;
}
if( a2 )
{
v7 = *(unsigned __int16 *)(*(_QWORD *)(a1 + 192) + 146i64);
if( *((__int64 **)&KeNodeBlock + v7) != &KiNodeInit[48 * v7] )
v4 = *(_QWORD *)(a1 + 192);
if( !_InterlockedCompareExchange64((volatile signed __int64 *)(v4 + 408), v4, 0i64) )
ExQueueWorkItem((WORK_QUEUE_ITEM *)(v4 + 384), DelayedWorkQueue);
*(_QWORD *)(a1 + 33584) = *(_QWORD *)(ExSaPageArrays + 8i64 * *(unsigned int *)(a1 + 36));
}
return 0i64;
}Referenced by:
ExpInitSystemPhase1
KiStartDynamicProcessor