RtlpSearchFunctionTable
INT64 __fastcall RtlpSearchFunctionTable(_MMPFN *a1, INT64 a2){
__int64 v2;
__int64 v3;
INT64 v4;
int v5;
unsigned __int64 v7;
unsigned int *v8;
unsigned __int64 v9;
bool v10;
int v11;
int v12;
int v13;
v4 = 0i64;
v5 = a2;
if( (_DWORD)a2 )
{
v7 = v2 - v3;
v8 = (unsigned int *)((char *)a1 + 12 * (unsigned int)(a2 - 1));
v9 = *v8;
if( v7 < v9 )
{
v10 = v5 - 2 < 0;
v11 = v5 - 2;
v12 = 0;
if( !v10 )
{
do
{
v13 = (v12 + v11) >> 1;
v8 = (unsigned int *)((char *)a1 + 12 * v13);
if( v7 < *v8 )
{
v11 = v13 - 1;
}
else
{
LODWORD(v9) = *v8;
if( v7 < v8[3] )
break;
v12 = v13 + 1;
}
LODWORD(v9) = *v8;
}
while( v11 >= v12 );
}
}
if( v7 >= (unsigned int)v9 && v7 < v8[1] )
return(INT64)v8;
}
return v4;
}Referenced by:
RtlMarkExceptionHandlingPages