RtlpHpLfhBucketSubsegmentStatsUpdate
BOOL __stdcall RtlpHpLfhBucketSubsegmentStatsUpdate(INT64 *a1, INT64 a2){
signed __int64 v2;
_BOOL8 v3;
INT64 v4;
int v5;
char v7;
char v8;
signed __int64 v9;
_BYTE *v11;
__int64 v12;
_BYTE *v13;
__int64 v14;
signed __int64 v15;
v2 = *a1;
LOBYTE(v3) = 0;
v15 = *a1;
v4 = a2 & 3;
v5 = a2;
do
{
if( *((unsigned __int8 *)&v15 + 2 * v4) == v5 )
{
v7 = *((_BYTE *)&v15 + 2 * v4 + 1);
if( v7 == 64 )
{
v13 = (char *)&v15 + 1;
v14 = 4i64;
do
{
*v13 >>= 1;
v13 += 2;
--v14;
}
while( v14 );
v7 = *((_BYTE *)&v15 + 2 * v4 + 1);
}
v8 = v7 + 1;
v3 = (unsigned __int8)v8 > 8u;
}
else
{
v11 = (char *)&v15 + 1;
v12 = 4i64;
do
{
*v11 >>= 1;
v11 += 2;
--v12;
}
while( v12 );
*((_BYTE *)&v15 + 2 * v4) = v5;
v8 = 1;
}
*((_BYTE *)&v15 + 2 * v4 + 1) = v8;
v9 = v2;
v2 = _InterlockedCompareExchange64(a1, v15, v2);
v15 = v2;
}
while( v9 != v2 );
return v3;
}Referenced by:
RtlpHpLfhSubsegmentCreate