SyML: Guiding Symbolic Execution Toward Vulnerable States Through Pattern Learning