docs: def help(self):
          '''
          Generates formatted help output.
  
          Returns the help string.
          '''
          modules = {}
          help_string = "\n"
          help_string += "Binwalk v%s\n" % binwalk.__version__
          help_string += "Craig Heffner, ReFirmLabs\n"
          help_string += "https://github.com/ReFirmLabs/binwalk\n"
          help_string += "\n"
          help_string += "Usage: binwalk [OPTIONS] [FILE1] [FILE2] [FILE3] ...\n"
  
          # Build a dictionary of modules and their ORDER attributes.
          # This makes it easy to sort modules by their ORDER attribute for
          # display.
          for module in self.list(attribute="CLI"):
              if module.CLI:
                  modules[module] = module.ORDER
  
          for module in sorted(modules, key=modules.get, reverse=True):
              help_string += "\n%s Options:\n" % module.TITLE
  
              for module_option in module.CLI:
                  if module_option.long and not module_option.hidden:
                      long_opt = '--' + module_option.long
  
                      if module_option.dtype:
                          optargs = "=<%s>" % module_option.dtype
                      else:
                          optargs = ""
  
                      if module_option.short:
                          short_opt = "-" + module_option.short + ","
                      else:
                          short_opt = "   "
  
                      fmt = "    %%s %%s%%-%ds%%s\n" % (25 - len(long_opt))
                      help_string += fmt % (short_opt, long_opt, optargs, module_option.description)
  
          return help_string + "\n"