CmpRehashKcbSubtree
CHAR __fastcall CmpRehashKcbSubtree(INT64 a1, INT64 a2){
INT64 v2;
INT64 v4;
INT64 v5;
CHAR v6;
INT64 v7;
__int64 v8;
int v9;
v2 = 0i64;
v4 = a2;
if( a1 )
{
do
{
v5 = *(_QWORD *)(v4 + 72);
*(_QWORD *)(v4 + 72) = v2;
v2 = v4;
v4 = v5;
}
while( v2 != a1 );
}
v6 = 0;
if( v2 )
{
do
{
v7 = *(_QWORD *)(v2 + 72);
v8 = *(_QWORD *)(v2 + 80);
*(_QWORD *)(v2 + 72) = v4;
if( v4 )
v9 = *(_DWORD *)(v8 + 8) + 37 * *(_DWORD *)(v4 + 16);
else
v9 = *(_DWORD *)(v8 + 8);
if( v9 != *(_DWORD *)(v2 + 16) )
{
CmpRemoveKeyHash(*(_CMHIVE **)(a2 + 32), (_CM_KEY_HASH *)(v2 + 16));
*(_DWORD *)(v2 + 16) = v9;
CmpInsertKeyHash(*(_QWORD *)(a2 + 32), (_DWORD *)(v2 + 16));
v6 = 1;
}
v4 = v2;
v2 = v7;
}
while( v7 );
}
return v6;
}Referenced by:
CmpSearchAndRehashWorker