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