VOID __fastcall PdcAcquireRwLockExclusive(VOID *a1){
_ETHREAD *CurrentThread;
_BYTE *v3;
_BYTE *v4;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
LODWORD(v3) = KeAbPreAcquire(a1, 0i64, 0i64);
v4 = v3;
if( _interlockedbittestandset64((volatile signed __int32 *)a1, 0i64) )
ExfAcquirePushLockExclusiveEx((UINT64 *)a1, v3, a1);
if( v4 )
v4[26] |= 1u;
*((_QWORD *)a1 + 1) = KeGetCurrentThread();
}