RtlpFindMessageInTable
INT64 __fastcall RtlpFindMessageInTable(INT64 *a1, INT64 a2, UINT64 a3, UINT16 **a4){
__int64 v4;
int v5;
_DWORD *v6;
UINT16 *v7;
UINT16 *v8;
int v9;
v4 = (unsigned int)(a2 - 1);
v5 = *(_DWORD *)a1;
v6 = (_DWORD *)a1 + 1;
v7 = (UINT16 *)((char *)a1 + v4);
while( v5 )
{
--v5;
if( (unsigned int)a3 >= *v6 && (unsigned int)a3 <= v6[1] )
{
v8 = (UINT16 *)((char *)a1 + (unsigned int)v6[2]);
v9 = a3 - *v6;
if( !v9 )
{
LABEL_9:
*a4 = v8;
return 0i64;
}
while( 1 )
{
--v9;
v8 = (UINT16 *)((char *)v8 + *v8);
if( v8 > v7 )
return 3221225737i64;
if( !v9 )
goto LABEL_9;
}
}
v6 += 3;
}
return 3221225737i64;
}Referenced by:
RtlFindMessage