def disco(bytecode_version, co, timestamp, out=sys.stdout,<EOL>is_pypy=False, magic_int=None, source_size=None,<EOL>header=True, asm_format=False, show_bytes=False,<EOL>dup_lines=False):
assert iscode(co)<EOL>show_module_header(bytecode_version, co, timestamp, out,<EOL>is_pypy, magic_int, source_size, header,<EOL>show_filename=False)<EOL>real_out = out or sys.stdout<EOL>if co.co_filename and not asm_format:<EOL><INDENT>real_out.write(format_code_info(co, bytecode_version) + "<STR_LIT:\n>")<EOL>pass<EOL><DEDENT>opc = get_opcode(bytecode_version, is_pypy)<EOL>if asm_format:<EOL><INDENT>disco_loop_asm_format(opc, bytecode_version, co, real_out,<EOL>{}, set([]))<EOL><DEDENT>else:<EOL><INDENT>queue = deque([co])<EOL>disco_loop(opc, bytecode_version, queue, real_out,<EOL>show_bytes=show_bytes)<EOL><DEDENT>
diassembles and deparses a given code block 'co'