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