MiAddEntryToImportList
UINT64 *__fastcall MiAddEntryToImportList(INT64 *a1, UINT64 a2){
INT64 v4;
UINT64 *result;
UINT64 *v6;
UINT8 *v7;
if( a1 == (INT64 *)-2i64 )
{
v4 = 0i64;
}
else
{
v4 = 1i64;
if( ((unsigned __int8)a1 & 1) == 0 )
v4 = *a1;
}
LODWORD(result) = MiAllocateImportList((_IMAGE_IMPORT_DESCRIPTOR *)(v4 + 1), (_LOAD_IMPORTS **)a2);
v6 = result;
if( result )
{
if( v4 )
{
v7 = (UINT8 *)(result + 1);
if( ((unsigned __int8)a1 & 1) != 0 )
*(_QWORD *)v7 = (unsigned __int64)a1 & 0xFFFFFFFFFFFFFFFEui64;
else
memmove(v7, (UINT8 *)a1 + 8, 8 * v4);
}
v6[v4 + 1] = a2;
return MiCompressImportList(v6);
}
return result;
}Referenced by:
MiApplyDriverHotPatch