def is_icao_assigned(icao):
    """Check whether the ICAO address is assigned (Annex 10, Vol 3)."""
    if icao is None or not isinstance(icao, str) or len(icao) != 6:
        return False
    icaoint = int(icao, 16)
    if 2097152 < icaoint < 2621439:
        return False
    if 2621440 < icaoint < 2686975:
        return False
    if 5242880 < icaoint < 6291455:
        return False
    if 6291456 < icaoint < 6815743:
        return False
    if 6815744 < icaoint < 7274496:
        return False
    if 9437184 < icaoint < 10485759:
        return False
    if 11534336 < icaoint < 12582911:
        return False
    if 13631488 < icaoint < 14680063:
        return False
    if 15728640 < icaoint < 16777215:
        return False
    return True
