MiValidateSectionSigningPolicy
INT64 __fastcall MiValidateSectionSigningPolicy(
UINT64 a1,
UINT64 a2,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
CHAR a7,
CHAR a8,
INT64 a9,
CHAR a10,
CHAR a11){
int v13;
INT64 v15;
int v16;
__int64 v17;
__int64 v18;
int v19;
v13 = a1;
if( (unsigned int)a1 >= 2 )
return 3221225485i64;
if( !a7 && !a8 )
return 0i64;
v15 = *((_QWORD *)KeGetCurrentThread() + 23);
v16 = a6 | 0x2000000;
if( a7 )
v16 = a6;
v19 = MiValidateSectionCreate(a2, a3, a4, a5, v16, a10, a11);
if( v19 < 0 )
{
v18 = (unsigned int)(v13 != 1) + 1;
dword_140C4C958 = (v13 != 1) + 1;
}
if( a7 == 1 && v19 < 0 )
{
if( v19 == -1073740760 && (_DWORD)a9 == 1 )
EtwTimLogProhibitNonMicrosoftBinaries(2i64, v15, a10, *(_BYTE *)(*(_QWORD *)a3 + 15i64) >> 4, (UINT16 *)(a2 + 88));
}
else if( a8 == 1 )
{
if( v19 < 0 )
{
return 0;
}
else if( !qword_140C1D900
|| (LOBYTE(v17) = a11,
LOBYTE(v18) = *(_BYTE *)(*(_QWORD *)a3 + 15i64) >> 4,
!(unsigned int)qword_140C1D900(v18, v17)) )
{
EtwTimLogProhibitNonMicrosoftBinaries(1i64, v15, a11, *(_BYTE *)(*(_QWORD *)a3 + 15i64) >> 4, (UINT16 *)(a2 + 88));
}
}
return(unsigned int)v19;
}Referenced by:
MiValidateExistingImage