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