MmGetImageFileSignatureInformation
CHAR __fastcall MmGetImageFileSignatureInformation(INT64 a1){
_QWORD *v1;
CHAR v2;
__int64 v3;
_CONTROL_AREA *v4;
KIRQL v6;
v1 = *(_QWORD **)(a1 + 40);
v2 = 0;
v6 = 0;
if( !v1 )
return 0;
v3 = MiLockSectionControlArea(v1, 0, &v6);
v4 = (_CONTROL_AREA *)v3;
if( !v3 )
return 0;
if( (*(_DWORD *)(v3 + 56) & 3) != 0 )
{
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)(v3 + 72));
__writecr8(v6);
}
else
{
++*(_QWORD *)(v3 + 24);
MiRemoveUnusedSegment((_CONTROL_AREA *)v3);
++*((_QWORD *)v4 + 6);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)v4 + 9);
__writecr8(v6);
v2 = *(_BYTE *)(*(_QWORD *)v4 + 15i64) >> 4;
MiDereferenceControlAreaBySection(v4, 1ui64);
}
return v2;
}Referenced by:
No references.