EnlistKeyBodyWithKCB
__int64 __fastcall EnlistKeyBodyWithKCB(_QWORD *a1, char a2){
__int64 *v2;
unsigned int v3;
unsigned int v4;
__int64 v6;
__int64 **v7;
v2 = a1 + 4;
v3 = 0;
a1[5] = a1 + 4;
v4 = 0;
a1[4] = a1 + 4;
while( _InterlockedCompareExchange64((volatile signed __int64 *)(a1[1] + 8i64 * v4 + 136), (signed __int64)a1, 0i64) )
{
if( ++v4 >= 4 )
{
if( (a2 & 2) != 0 )
{
v6 = a1[1] + 120i64;
v7 = *(__int64 ***)(a1[1] + 128i64);
if( *v7 != (__int64 *)v6 )
__fastfail(3u);
*v2 = v6;
v2[1] = (__int64)v7;
*v7 = v2;
*(_QWORD *)(v6 + 8) = v2;
}
else
{
return(unsigned int)-1073741267;
}
return v3;
}
}
return v3;
}Referenced by:
CmRenameKey
CmpCreateRegistryRoot