sub_1403B8E0C
__int64 __fastcall sub_1403B8E0C(__int64 a1, const void *a2, _DWORD *a3, VOID *a4, size_t a5, _DWORD *a6){
_EX_PUSH_LOCK *v10;
_DWORD *v11;
unsigned int v13;
_ETHREAD *CurrentThread;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
v10 = (_EX_PUSH_LOCK *)(a1 + 46840);
ExAcquirePushLockSharedEx((_EX_PUSH_LOCK *)(a1 + 46840), 0i64);
if( *(_BYTE *)(a1 + 46828) == 1 && !*(_DWORD *)(a1 + 46824) )
goto LABEL_7;
v11 = *(_DWORD **)a1;
if( *(_QWORD *)a1 || (v11 = *(_DWORD **)(a1 + 46832)) != 0i64 )
{
if( *v11 != 24 )
{
if( *v11 >= 0x18u )
{
v13 = sub_1407A1CEC(a1, a2, a3, a4, a5, a6);
goto LABEL_10;
}
goto LABEL_9;
}
LABEL_7:
v13 = -1073741772;
goto LABEL_10;
}
LABEL_9:
v13 = -1073741762;
LABEL_10:
if( _InterlockedCompareExchange64(&v10->_bf_0, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v10);
KeAbPostRelease(v10);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v13;
}Referenced by:
ExpConsumeAddonPolicySetCacheProvider
SLGetSubscriptionPfn
SLQueryLicenseValueInternal