sub_1403B8E0C
INT64 __fastcall sub_1403B8E0C(INT64 a1, const VOID *a2, _DWORD *a3, UINT8 *a4, UINT64 a5, _DWORD *a6){
INT64 *v10;
_DWORD *v11;
UINT64 a5a;
unsigned int v14;
_ETHREAD *CurrentThread;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
v10 = (INT64 *)(a1 + 46840);
ExAcquirePushLockSharedEx(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 )
{
LODWORD(a5a) = a5;
v14 = sub_1407A1CEC(a1, a2, a3, a4, a5a, a6);
goto LABEL_10;
}
goto LABEL_9;
}
LABEL_7:
v14 = -1073741772;
goto LABEL_10;
}
LABEL_9:
v14 = -1073741762;
LABEL_10:
if( _InterlockedCompareExchange64(v10, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v10);
KeAbPostRelease(v10);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return v14;
}Referenced by:
ExpConsumeAddonPolicySetCacheProvider
SLGetSubscriptionPfn
SLQueryLicenseValueInternal