RtlRemoveDynamicEnforcedAddressRange

INT64 __fastcall RtlRemoveDynamicEnforcedAddressRange(RTL_BALANCED_NODE **a1, INT64 a2, INT64 a3){
  __int64 *v3; 
  int v7; 
  INT64 v9; 
  __int128 v10; 
  INT64 v11; 
  INT64 v12; 
  v9 = 0i64;
  v3 = (__int64 *)*a1;
  v11 = a2;
  v12 = a3;
  v10 = 0i64;
  if( !v3 )
    return 3221226021i64;
  do
  {
    v7 = RtlpDynamicEnforcedAddressRangesTreeCompare((INT64)&v9, (INT64)v3);
    if( v7 >= 0 )
    {
      if( v7 <= 0 )
        break;
      v3 = (__int64 *)v3[1];
    }
    else
    {
      v3 = (__int64 *)*v3;
    }
  }
  while( v3 );
  if( !v3 )
    return 3221226021i64;
  if( v3[3] != a2 || v3[4] != a3 )
    return 3221225496i64;
  RtlAvlRemoveNode((unsigned __int64 *)a1, v3);
  ExFreePoolWithTag(v3, 0);
  return 0i64;
}

Referenced by:

PspProcessDynamicEnforcedAddressRanges