CHAR __fastcall CmpTryToLockKcbExclusive(INT64 a1){
void *v1;
CHAR v3;
_BYTE *v4;
v1 = (void *)(a1 + 48);
v3 = 1;
LODWORD(v4) = KeAbPreAcquire((PVOID)(a1 + 48), 0i64, 1ui64);
if( _interlockedbittestandset64((volatile signed __int32 *)v1, 0i64) )
{
if( v4 )
KeAbPostReleaseEx(v1, v4);
return 0;
}
else
{
if( v4 )
v4[26] |= 1u;
*(_QWORD *)(a1 + 56) = KeGetCurrentThread();
}
return v3;
}