def METHOD_NAME():
    """The main function. Hier spielt die Musik.
    """
    # parse the command line, exit with UNKNOWN if it fails
    try:
        args = parse_args()
    except SystemExit:
        sys.exit(STATE_UNKNOWN)
    # authenticate and get the authSid
    url = '{}/cgi-bin/authLogin.cgi'.format(args.URL)
    data = {
        'user': args.USERNAME,
        'pwd': lib.txt.to_text(base64.b64encode(lib.txt.to_bytes(args.PASSWORD))),
    }
    result = lib.base.coe(lib.url.fetch(url, data=data, insecure=args.INSECURE, no_proxy=args.NO_PROXY, timeout=args.TIMEOUT))
    data = xmltodict.parse(result)['QDocRoot']
    auth_passed = data['authPassed']
    if auth_passed is not None and len(auth_passed) == 1 and auth_passed == "0":
        lib.base.cu('Failed to authenticate.')
    authSid = data['authSid']
    # get the memory usage
    url = '{}/cgi-bin/management/manaRequest.cgi?subfunc=sysinfo&hd=no&multicpu=1&sid={}'.format(args.URL, authSid)
    result = lib.base.coe(lib.url.fetch(url, data=data, insecure=args.INSECURE, no_proxy=args.NO_PROXY, timeout=args.TIMEOUT))
    data = xmltodict.parse(result)['QDocRoot']
    total = float(data['func']['ownContent']['root']['total_memory']) * 1024 * 1024
    free = float(data['func']['ownContent']['root']['free_memory']) * 1024 * 1024
    used = total - free
    memory_usage = round(used / total * 100, 2)
    state = lib.base.get_state(memory_usage, args.WARN, args.CRIT, _operator='gt')
    # build the message
    msg = '{}% - total: {}, used: {}, free: {}'.format(
        memory_usage,
        lib.human.bytes2human(total),
        lib.human.bytes2human(used),
        lib.human.bytes2human(free),
    )
    perfdata = lib.base.get_perfdata('memory-usage', memory_usage, '%', args.WARN, args.CRIT, 0, 100)
    perfdata += lib.base.get_perfdata('total', total, 'B', None, None, 0, total)
    perfdata += lib.base.get_perfdata('used', used, 'B', None, None, 0, total)
    perfdata += lib.base.get_perfdata('free', free, 'B', None, None, 0, total)
    # over and out
    lib.base.oao(msg, state, perfdata, always_ok=args.ALWAYS_OK)