sub_14094DC8C
__int64 __fastcall sub_14094DC8C(_EX_PUSH_LOCK *a1){
_EX_PUSH_LOCK *v2;
UINT64 CreateOptions;
UINT64 CreateOptionsa;
_ETHREAD *CurrentThread;
char v7;
NTSTATUS v8;
VOID *KeyHandle;
v8 = 0;
KeyHandle = 0i64;
v7 = 0;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
v2 = a1 + 5855;
ExAcquirePushLockSharedEx(a1 + 5855, 0i64);
if( a1[5854]._bf_0 )
{
LODWORD(CreateOptions) = 0;
v8 = ZwCreateKey(&KeyHandle, 0x20006ui64, (_OBJECT_ATTRIBUTES *)&stru_140984900, 0i64, 0i64, CreateOptions, 0i64);
if( v8 >= 0 )
{
v7 = 1;
LODWORD(CreateOptionsa) = *(_DWORD *)a1[5854]._bf_0;
v8 = ZwSetValueKey(KeyHandle, (_UNICODE_STRING *)&stru_1409841B8, 0i64, 3ui64, a1[5854].Ptr, CreateOptionsa);
}
}
if( _InterlockedCompareExchange64(&v2->_bf_0, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v2);
KeAbPostRelease(v2);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
if( v7 == 1 )
ZwClose((_HANDLE)KeyHandle);
return(unsigned int)v8;
}Referenced by:
SLUpdateLicenseDataInternal