private bool CertValidationCallback(string hostName, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
            {
                this.m_ServicePoint.UpdateServerCertificate(certificate);
                this.m_ServicePoint.UpdateClientCertificate(this.m_SecureStream.ClientCertificate);
                bool flag = true;

                if ((ServicePointManager.GetLegacyCertificatePolicy() != null) && (this.m_Request is WebRequest))
                {
                    flag = false;
                    bool flag2 = ServicePointManager.CertPolicyValidationCallback.Invoke(hostName, this.m_ServicePoint, certificate, (WebRequest)this.m_Request, chain, sslPolicyErrors);
                    if (!flag2 && (!ServicePointManager.CertPolicyValidationCallback.UsesDefault || (ServicePointManager.ServerCertificateValidationCallback == null)))
                    {
                        return(flag2);
                    }
                }
                if (ServicePointManager.ServerCertificateValidationCallback != null)
                {
                    flag = false;
                    return(ServicePointManager.ServerCertValidationCallback.Invoke(this.m_Request, certificate, chain, sslPolicyErrors));
                }
                if (flag)
                {
                    return(sslPolicyErrors == SslPolicyErrors.None);
                }
                return(true);
            }