RtlpFindEntry
__int64 *__fastcall RtlpFindEntry(__int64 a1, unsigned __int64 a2){
INT64 v2;
INT64 v5;
INT64 v6;
__int64 *result;
v2 = *(_QWORD *)(a1 + 312);
if( a2 < *(unsigned int *)(v2 + 8) )
{
LABEL_4:
v6 = (unsigned int)a2;
}
else
{
while( 1 )
{
v5 = *(_QWORD *)v2;
if( !*(_QWORD *)v2 )
break;
v2 = *(_QWORD *)v2;
if( a2 < *(unsigned int *)(v5 + 8) )
goto LABEL_4;
}
v6 = (unsigned int)(*(_DWORD *)(v2 + 8) - 1);
}
while( 1 )
{
result = RtlpHeapFindListLookupEntry(a1, v2, 1, v6, a2);
if( result )
break;
v2 = *(_QWORD *)v2;
v6 = *(unsigned int *)(v2 + 24);
}
return result;
}Referenced by:
RtlZeroHeap
RtlpAllocateHeap
RtlpCreateSplitBlock
RtlpFreeHeap
RtlpInsertFreeBlock