code: def main(asm, show_bytes, header, files):
      
      Usage_short = """usage:
     %s [--asm] -i FILE...
     %s --version
  Type -h for for full help.""" % (program, program)
  
  
      if not (2.5 <= PYTHON_VERSION <= 3.8):
          sys.stderr(print("This works on Python version 2.5..3.8; have %s" % PYTHON_VERSION))
  
      if not len(files):
          sys.stderr.write("No file(s) given..\n")
          print(Usage_short, file=sys.stderr)
          sys.exit(1)
  
      for path in files:
          # Some sanity checks
          if not osp.exists(path):
              sys.stderr.write("File name: '%s' doesn't exist\n" % path)
              continue
          elif not osp.isfile(path):
              sys.stderr.write("File name: '%s' isn't a file\n" % path)
              continue
          elif osp.getsize(path) < 50:
              sys.stderr.write("File name: '%s (%d bytes)' is too short to be a valid pyc file\n" % (path, osp.getsize(path)))
              continue
  
          disassemble_file(path, sys.stdout, asm, header, show_bytes)
      return
docs: Disassembles a Python bytecode file.
  
      We handle bytecode for virtually every release of Python and some releases of PyPy.
      The version of Python in the bytecode doesn't have to be the same version as
      the Python interpreter used to run this program. For example, you can disassemble Python 3.6.1
      bytecode from Python 2.7.13 and vice versa.