RtlFindDynamicEnforcedAddressInRanges

BOOL __stdcall RtlFindDynamicEnforcedAddressInRanges(UINT64 *rcx0, INT64 a2){
  UINT64 *i; 
  _ETHREAD *CurrentThread; 
  INT64 *v4; 
  int v5; 
  BOOL result; 
  INT64 v7; 
  __int128 v8; 
  INT64 v9; 
  __int64 v10; 
  v9 = a2;
  v7 = 0i64;
  v8 = 0i64;
  v10 = 1i64;
  i = rcx0;
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  v4 = (INT64 *)(rcx0 + 1);
  ExAcquirePushLockSharedEx((UINT64)(rcx0 + 1), 0i64);
LABEL_2:
  for( i = (UINT64 *)*i; i; i = (UINT64 *)i[1] )
  {
    v5 = RtlpDynamicEnforcedAddressRangesTreeCompare((INT64)&v7, (INT64)i);
    if( v5 < 0 )
      goto LABEL_2;
    if( v5 <= 0 )
      break;
  }
  if( _InterlockedCompareExchange64(v4, 0i64, 17i64) != 17 )
    ExfReleasePushLockShared(v4);
  KeAbPostRelease(v4);
  KeLeaveCriticalRegion();
  LOBYTE(result) = i != 0i64;
  return result;
}

Referenced by:

KiCheckUserAddressCetCompat