RtlpInternEntryHash
INT64 __fastcall RtlpInternEntryHash(INT64 *a1, INT64 *a2){
INT64 v2;
__int64 v3;
__int64 v4;
INT64 v5;
__int64 v6;
unsigned __int8 *v7;
unsigned __int64 v8;
__int64 v9;
__int64 v10;
INT64 result;
int v12;
int v13;
int v14;
int v15;
int v16;
int v17;
v2 = a1[2];
v3 = *a1;
v4 = 314159i64;
if( v2 )
{
v5 = a1[1];
do
{
v6 = *(_QWORD *)(v5 + 16);
v7 = *(unsigned __int8 **)v5;
v3 = *(_QWORD *)(v5 + 24) + v6 - ((*(_QWORD *)(v5 + 24) - 1i64) & (*(_QWORD *)(v5 + 24) + v3 - 1)) + v3 - 1;
if( v6 >= 8 )
{
v8 = (unsigned __int64)v6 >> 3;
v6 -= 8 * ((unsigned __int64)v6 >> 3);
do
{
v9 = v7[6] + 37 * (v7[5] + 37 * (v7[4] + 37 * (v7[3] + 37 * (v7[2] + 37 * (v7[1] + 37 * (*v7 + 37 * v4))))));
v10 = v7[7];
v7 += 8;
v4 = v10 + 37 * v9;
--v8;
}
while( v8 );
}
if( (unsigned __int64)(v6 - 1) > 6 )
goto LABEL_7;
v12 = v6 - 1;
if( v12 )
{
v13 = v12 - 1;
if( v13 )
{
v14 = v13 - 1;
if( v14 )
{
v15 = v14 - 1;
if( v15 )
{
v16 = v15 - 1;
if( v16 )
{
v17 = v16 - 1;
if( v17 )
{
if( v17 != 1 )
goto LABEL_7;
v4 = *v7++ + 37 * v4;
}
v4 = *v7++ + 37 * v4;
}
v4 = *v7++ + 37 * v4;
}
v4 = *v7++ + 37 * v4;
}
v4 = *v7++ + 37 * v4;
}
v4 = *v7++ + 37 * v4;
}
v4 = *v7 + 37 * v4;
LABEL_7:
v5 += 32i64;
--v2;
}
while( v2 );
}
result = v3 + v4;
*a2 = v3;
return result;
}Referenced by:
RtlInternTableIntern