SepIsNgenImage
UINT8 __fastcall SepIsNgenImage(const _UNICODE_STRING *ImagePath){
_EJOB *CurrentServerSilo;
__int64 v3;
unsigned int v4;
unsigned __int16 Length;
unsigned __int16 MaximumLength;
unsigned int v8;
UNICODE_STRING String1;
*(_DWORD *)(&String1.MaximumLength + 1) = 0;
CurrentServerSilo = PsGetCurrentServerSilo();
v3 = PsGetServerSiloGlobals((__int64)CurrentServerSilo)[97];
if( !v3 )
return 0;
v4 = *(_DWORD *)v3;
if( !*(_DWORD *)v3 )
return 0;
Length = ImagePath->Length;
if( ImagePath->Length < *(_WORD *)(v3 + 4) )
return 0;
if( Length > *(_WORD *)(v3 + 6) )
return 0;
String1.Buffer = ImagePath->Buffer + 4;
MaximumLength = ImagePath->MaximumLength;
v8 = 0;
String1.Length = Length - 8;
String1.MaximumLength = MaximumLength - 8;
if( !v4 )
return 0;
while( !RtlEqualUnicodeString(&String1, (UNICODE_STRING *)(16i64 * v8 + v3 + 8), 1u) )
{
if( ++v8 >= v4 )
return 0;
}
return 1;
}Referenced by:
SeQuerySigningPolicyWorker