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