Here's a hopefully correct version:
Code:
alias endread {
  if (!$isid) return
  if $0 > 2 {
    if w isin $2 || r isin $2 { var %m = $v1, %l = 1, %s = $iif($4 isnum 2-,$4,1) } 
    else return
  }
  elseif $2 isnum 1- { var %m = l, %l = $2 }
  else return
  .fopen e $qt($1)
  if ($ferr) return

  var %p = $file($1) - 920, %i = 0
  while %p > -920 {
    if %p > 0 {
      .fseek e %p
      .fseek -n e
    }
    else .fseek e 0
    var %d = $calc(919 - $fopen(e).pos + %p), %p = $fopen(e).pos - 920
    if !%i { 
      var %n = $fread(e,$calc(%d + 1),&a)
      if $bvar(&a,%n) == 10 { bset &a %n 13 }
    }
    else noop $fread(e,%d,&a)
    var %t = $bvar(&a,1-).text, %n = $regex(%t,/\r?\n/g) + 1
    inc %i %n
    if %m == l {
      if %l <= %i { 
        .fclose e $regex(e,%t,/(?<=^|\n)(.*?)(?=$|\r?\n)/g)
        return $remove($regml(e,$calc(%i - %l + 1)),$cr)
      }
    }
    elseif %s <= %i {
      var %j = $regex(e,%t,/(?<=^|\n)(.*?)(?=$|\r?\n)/g)
      if (%m == w) var %c = $!wildtok($regml(e,%j),$3,0,0)
      else var %c = $!regex($regml(e,%j),$3)
      while %j { 
        if $calc(%i - %j + 1) >= %s && $(%c,2) {
          .fclose e
          return $remove($regml(e,%j),$cr)
        }
        dec %j
      }
    }
  }
  .fclose e
}