PfTInitialize
VOID __stdcall PfTInitialize(){
INT64 v0;
char v1;
_FAST_MUTEX *v2;
char v3;
INT64 v4;
unsigned int v5;
UINT64 v6;
UINT8 v7;
UINT8 v8;
_KEVENT *v9;
UINT64 v10;
UINT8 v11;
UINT8 v12;
UINT64 v13;
UINT8 v14;
UINT8 v15;
UINT64 v16;
UINT8 v17;
UINT8 v18;
__int64 v19;
int v20;
int v21;
__int64 v22;
void *v23;
void *v24;
v2 = (_FAST_MUTEX *)(v0 + 560);
v3 = v1;
v4 = v0;
if( v1 )
{
ExAcquireFastMutex(v2);
KeReleaseGuardedMutex(v2);
*(_OWORD *)(v4 + 784) = 0i64;
*(_OWORD *)(v4 + 800) = 0i64;
*(_QWORD *)(v4 + 816) = 0i64;
}
else
{
memset(v0, 0i64);
memset((INT64)&stru_140CEBE88, 0i64);
*(_QWORD *)v4 = 0i64;
}
PfKernelGlobals = 0x23C34600ui64 / KeQueryTimeIncrement();
*(_OWORD *)(v4 + 24) = 0i64;
*(_OWORD *)(v4 + 40) = 0i64;
*(_QWORD *)(v4 + 56) = 0i64;
*(_DWORD *)(v4 + 24) &= 0xFFFFFFF0;
*(_QWORD *)(v4 + 56) = v4 + 48;
*(_QWORD *)(v4 + 48) = v4 + 48;
*(_WORD *)(v4 + 34) = 0;
*(_QWORD *)(v4 + 40) = 0i64;
*(_WORD *)(v4 + 32) = 2;
*(_OWORD *)(v4 + 64) = 0i64;
*(_OWORD *)(v4 + 80) = 0i64;
*(_QWORD *)(v4 + 96) = 0i64;
*(_QWORD *)(v4 + 96) = v4 + 88;
*(_QWORD *)(v4 + 88) = v4 + 88;
v5 = *(_DWORD *)(v4 + 64) & 0xFFFFFFF1;
*(_WORD *)(v4 + 74) = 0;
*(_QWORD *)(v4 + 80) = 0i64;
*(_DWORD *)(v4 + 64) = v5 | 1;
*(_WORD *)(v4 + 72) = 0;
if( v3 )
ExAcquireFastMutex(v2);
else
KeInitializeGuardedMutex(v2);
*(_QWORD *)(v4 + 512) = v4 + 504;
*(_QWORD *)(v4 + 504) = v4 + 504;
*(_QWORD *)(v4 + 528) = v4 + 520;
*(_QWORD *)(v4 + 520) = v4 + 520;
if( v3 )
KeReleaseGuardedMutex(v2);
else
PfTAccessTracingInitialize(v4, (INT64)&PfKernelGlobals, 0i64);
v9 = (_KEVENT *)(v4 + 136);
if( v3 )
{
KeResetEvent(v9, v6, v7, v8, (IRP *)v19);
KeResetEvent((VOID *)(v4 + 160), v10, v11, v12, (IRP *)v19);
KeResetEvent((VOID *)(v4 + 112), v13, v14, v15, (IRP *)v19);
KeResetEvent((VOID *)(v4 + 200), v16, v17, v18, (IRP *)v19);
}
else
{
KeInitializeEvent(v9, NotificationEvent, 0);
KeInitializeEvent((_KEVENT *)(v4 + 160), NotificationEvent, 0);
KeInitializeEvent((_KEVENT *)(v4 + 112), NotificationEvent, 0);
KeInitializeEvent((_KEVENT *)(v4 + 200), NotificationEvent, 0);
}
v19 = 0x4C4E6650CEB10001i64;
v24 = PfpSectInfoHandleFullBuffer;
v23 = PfpSectInfoHandleOutOfBuffers;
v20 = 1;
v21 = 64;
v22 = 64i64;
PfFbBufferListInitialize((PKSPIN_LOCK)(v4 + 224), (__int64)&v19, v3);
InitializeSListHead((_SLIST_HEADER *)(v4 + 480));
*(_DWORD *)(v4 + 496) = -1;
v24 = PfpEventHandleFullBuffer;
v19 = 0x4C456650CEB10002i64;
v23 = PfpEventHandleOutOfBuffers;
v20 = 512;
v21 = 48;
v22 = 64i64;
PfFbBufferListInitialize((PKSPIN_LOCK)(v4 + 352), (__int64)&v19, v3);
}Referenced by:
PfSetSuperfetchInformation
PfTStart
PfpParametersPropagate