def as_dotted(dotted_str):
    """
    Implement RFC 5396 to support 'asdotted' notation for BGP AS numbers.
    Provide a string in format of '1.10', '65000.65015' and this will return
    a 4-byte decimal representation of the AS number.
    Get the binary values for the int's and pad to 16 bits if necessary
    (values <255). Concatenate the first 2 bytes with second 2 bytes then
    convert back to decimal. The maximum for low and high order values is
    65535 (i.e. 65535.65535).
    
    :param str dotted_str: asdotted notation for BGP ASN
    :rtype: int
    """
    if '.' not in dotted_str:
        return dotted_str
    max_byte = 65535
    left, right = map(int, dotted_str.split('.'))
    if left > max_byte or right > max_byte:
        raise ValueError(
            'The max low and high order value for a 32-bit ASN is 65535')
    binval = '{0:016b}'.format(left)
    binval += '{0:016b}'.format(right)
    return int(binval, 2)
