EtwpCovSampEnumerateProcess
NTSTATUS __stdcall EtwpCovSampEnumerateProcess(PVOID BugCheckParameter1, _DOUBLE XMM1_8){
int v2;
void *v3;
_QWORD *v5;
unsigned __int64 *v6;
unsigned __int64 v7;
__int64 v8;
unsigned __int64 v9;
__int64 v11;
_IMAGE_INFO ImageInfo;
__int128 v13;
unsigned __int64 v14;
_UNICODE_STRING FullImageName;
_KAPC_STATE ApcState;
v2 = 0;
v11 = 0i64;
v3 = 0i64;
memset(&ApcState, 0, sizeof(ApcState));
v14 = 0i64;
FullImageName = 0i64;
memset(&ImageInfo, 0, sizeof(ImageInfo));
v13 = 0i64;
if( BugCheckParameter1 == PsInitialSystemProcess )
return 0;
if( BugCheckParameter1 == KeGetCurrentThread()->ApcState.Process )
goto LABEL_5;
if( ExAcquireRundownProtection((_EX_RUNDOWN_REF *)BugCheckParameter1 + 139) )
{
KiStackAttachProcess(BugCheckParameter1, 0i64, &ApcState);
v2 = 1;
LABEL_5:
v5 = MmEnumerateAddressSpaceAndReferenceImages((_EPROCESS *)BugCheckParameter1, 1);
v3 = v5;
if( v5 )
{
LODWORD(ImageInfo.ImageBase) |= 0x400u;
v6 = v5;
*(_QWORD *)&ImageInfo.anonymous_0.Properties = 56i64;
v7 = *v5;
if( *v5 )
{
v8 = v11;
do
{
if( (v7 & 3) == 0 )
{
v9 = v7 & 0xFFFFFFFFFFFFFFFCui64;
*v6 = v9;
v14 = v9;
*(_QWORD *)&ImageInfo.ImageSelector = v6[1] & 0xFFFFFFFFFFFF0000ui64;
*(_QWORD *)&v13 = v6[3];
if( *(&stru_140CF2E80 + 599)
&& (*(int(__fastcall **)(unsigned __int64, __int64, _UNICODE_STRING *, __int64 *))(*(&stru_140CF2E80 + 599)
+ 24i64))(
v9,
1024i64,
&FullImageName,
&v11) >= 0 )
{
EtwpCovSampImageNotify(
&FullImageName,
*((_QWORD *)BugCheckParameter1 + 136),
(PIMAGE_INFO)&ImageInfo.ImageBase);
}
v8 = v11;
}
if( v8 )
{
(*(void(**)(void))(*(&stru_140CF2E80 + 599) + 32i64))();
v8 = 0i64;
v11 = 0i64;
}
v6 += 6;
v7 = *v6;
}
while( *v6 );
}
}
}
if( v3 )
ExFreePoolWithTag(v3, 0);
if( v2 )
{
KiUnstackDetachProcess(&ApcState, 0i64);
ExReleaseRundownProtection((_EX_RUNDOWN_REF *)BugCheckParameter1 + 139);
}
return 0;
}Referenced by:
No references.