code: def lines(start=None, end=None, reverse=False, selection=False):
      
      if selection:
          start, end = get_selection()
  
      else:
          start, end = fix_addresses(start, end)
  
      if not reverse:
          item = idaapi.get_item_head(start)
          while item < end:
              yield Line(item)
              item += idaapi.get_item_size(item)
  
      else:  # if reverse:
          item = idaapi.get_item_head(end - 1)
          while item >= start:
              yield Line(item)
              item = idaapi.get_item_head(item - 1)
docs: Iterate lines in range.
  
      Args:
          start: Starting address, start of IDB if `None`.
          end: End address, end of IDB if `None`.
          reverse: Set to true to iterate in reverse order.
          selection: If set to True, replaces start and end with current selection.
  
      Returns:
          iterator of `Line` objects.