parameters: (co, lasti=-1)
docstring: Disassemble a code object.
docstring_summary: Disassemble a code object.
docstring_tokens: Disassemble a code object .
function: def disassemble(co, lasti=-1):
      """Disassemble a code object."""
      code = co.co_code
      labels = findlabels(code)
      linestarts = dict(findlinestarts(co))
      n = len(code)
      i = 0
      extended_arg = 0
      free = None
      while i < n:
          c = code[i]
          op = ord(c)
          if i in linestarts:
              if i > 0:
                  print
              print "%3d" % linestarts[i],
          else:
              print '   ',
  
          if i == lasti: print '-->',
          else: print '   ',
          if i in labels: print '>>',
          else: print '  ',
          print repr(i).rjust(4),
          print opname[op].ljust(20),
          i = i+1
          if op >= HAVE_ARGUMENT:
              oparg = ord(code[i]) + ord(code[i+1])*256 + extended_arg
              extended_arg = 0
              i = i+2
              if op == EXTENDED_ARG:
                  extended_arg = oparg*65536L
              print repr(oparg).rjust(5),
              if op in hasconst:
                  print '(' + repr(co.co_consts[oparg]) + ')',
              elif op in hasname:
                  print '(' + co.co_names[oparg] + ')',
              elif op in hasjrel:
                  print '(to ' + repr(i + oparg) + ')',
              elif op in haslocal:
                  print '(' + co.co_varnames[oparg] + ')',
              elif op in hascompare:
                  print '(' + cmp_op[oparg] + ')',
              elif op in hasfree:
                  if free is None:
                      free = co.co_cellvars + co.co_freevars
                  print '(' + free[oparg] + ')',
          print
function_tokens: def disassemble ( co , lasti = - 1 ) : code = co . co_code labels = findlabels ( code ) linestarts = dict ( findlinestarts ( co ) ) n = len ( code ) i = 0 extended_arg = 0 free = None while i < n : c = code [ i ] op = ord ( c ) if i in linestarts : if i > 0 : print print "%3d" % linestarts [ i ] , else : print '   ' , if i == lasti : print '-->' , else : print '   ' , if i in labels : print '>>' , else : print '  ' , print repr ( i ) . rjust ( 4 ) , print opname [ op ] . ljust ( 20 ) , i = i + 1 if op >= HAVE_ARGUMENT : oparg = ord ( code [ i ] ) + ord ( code [ i + 1 ] ) * 256 + extended_arg extended_arg = 0 i = i + 2 if op == EXTENDED_ARG : extended_arg = oparg * 65536L print repr ( oparg ) . rjust ( 5 ) , if op in hasconst : print '(' + repr ( co . co_consts [ oparg ] ) + ')' , elif op in hasname : print '(' + co . co_names [ oparg ] + ')' , elif op in hasjrel : print '(to ' + repr ( i + oparg ) + ')' , elif op in haslocal : print '(' + co . co_varnames [ oparg ] + ')' , elif op in hascompare : print '(' + cmp_op [ oparg ] + ')' , elif op in hasfree : if free is None : free = co . co_cellvars + co . co_freevars print '(' + free [ oparg ] + ')' , print