def gen_command_parser() -> ArgumentParser:
    parser = ArgumentParser(description='Parse Cobalt Strike beacon configuration from PE file or memory dump.')
    parser.add_argument('-V', '--version', action='version', version=f'%(prog)s {__version__}')
    parser.add_argument('--pretty', action='store_true', help='Pretty-print JSON output', dest='pretty')
    parser.add_argument('-v', '--cs-version', type=int, choices=CobaltStrikeConfigParser.SUPPORTED_VERSIONS, help='Cobalt Strike version. If not specified, will try all supported versions', dest='cs_version')
    parser.add_argument('source', type=Path, help='Path to PE file or memory dump')
    parser.set_defaults(func=csce)
    return parser
def gen_command_parser() -> ArgumentParser:
    parser = ArgumentParser(description='Parse Cobalt Strike beacon configuration from PE file or memory dump.')
    parser.add_argument('-V', '--version', action='version', version=f'%(prog)s {__version__}')
    parser.add_argument('--pretty', action='store_true', help='Pretty-print JSON output', dest='pretty')
    parser.add_argument('-v', '--cs-version', type=int, choices=CobaltStrikeConfigParser.SUPPORTED_VERSIONS, help='Cobalt Strike version. If not specified, will try all supported versions', dest='cs_version')
    parser.add_argument('source', type=Path, help='Path to PE file or memory dump')
    parser.set_defaults(func=csce)
    return parser