docs: def functions(start=None, end=None):
      """Get all functions in range.
  
      Args:
          start: Start address of the range. Defaults to IDB start.
          end: End address of the range. Defaults to IDB end.
  
      Returns:
          This is a generator that iterates over all the functions in the IDB.
      """
      start, end = fix_addresses(start, end)
  
      for func_t in idautils.Functions(start, end):
          yield Function(func_t)