RtlRemoveDynamicEnforcedAddressRange

NTSTATUS __stdcall RtlRemoveDynamicEnforcedAddressRange(_RTL_BALANCED_NODE **Tree, INT64 a2, INT64 a3){
  INT64 *v3; 
  NTSTATUS v7; 
  INT64 v9; 
  __int128 v10; 
  INT64 v11; 
  INT64 v12; 

  v9 = 0i64;
  v3 = (INT64 *)*Tree;
  v11 = a2;
  v12 = a3;
  v10 = 0i64;
  if( !v3 )
    return -1073741275;
  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 -1073741275;
  if( v3[3] != a2 || v3[4] != a3 )
    return -1073741800;
  RtlAvlRemoveNode((UINT64 *)Tree, v3);
  ExFreePoolWithTag(v3, 0);
  return 0;
}

Referenced by:

PspProcessDynamicEnforcedAddressRanges