if __name__ == '__main__':
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument('-l',
                        '--language',
                        help='the original source language',
                        required=True)
    parser.add_argument('-s',
                        '--srcmap',
                        help='include line numbers from the debug info',
                        action='store_true')
    parser.add_argument('-y',
                        '--yaml',
                        help='produce YAML output instead of plaintext',
                        action='store_true')
    parser.add_argument('binary', help='path to an ELF binary to disassemble')
    parser.add_argument('patterns',
                        help='function names (glob patterns)',
                        nargs='+')

    args = parser.parse_args()
    binary = Binary(args.binary, args.language)
    disasm = binary.disassemble(args.patterns, args.srcmap)

    if args.yaml:
        print_yaml(disasm)
    else:
        print_text(disasm)
def main(app_path, output_path):
    binary = Binary(fromfile=app_path)
    disassembly = binary.disassemble()
    disassembly.save(output_path)