_QWORD *__fastcall MmLocateUnloadedDriver(unsigned __int64 a1){
int v1;
_QWORD *result;
if( !MmUnloadedDrivers )
return 0i64;
v1 = 0;
if( !MmLastUnloadedDriver )
return 0i64;
while( 1 )
{
result = (char *)MmUnloadedDrivers + 40 * (unsigned int)(MmLastUnloadedDriver - v1 - 1);
if( result[1] )
{
if( a1 >= result[2] && a1 < result[3] )
break;
}
if( ++v1 >= (unsigned int)MmLastUnloadedDriver )
return 0i64;
}
return result;
}