/* Generated by Nim Compiler v1.2.6 */
/*   (c) 2020 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg;
typedef struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef N_CDECL_PTR(void, tyProc__sYEjOwC8kj9bf3dL1zf0Hrw) (void* a, void* b, void* c);
typedef N_CDECL_PTR(int, tyProc__pduP3uOMtjDyYKG6z4GVFg) (NU64 opts, NU8 settings);
typedef N_CDECL_PTR(int, tyProc__cez8YhJI0vaCUcjGg6z4zA) (void);
typedef N_CDECL_PTR(void, tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) (void);
struct tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw {
char dummy;
};
typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
struct TNimType {
NI size;
tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef N_CDECL_PTR(int, tyProc__Vff1ipOwDPDGknaRJAdXjA) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl);
typedef N_CDECL_PTR(int, tyProc__kxUw9cdxJbPtv0iPyoSbDBQ) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* s, int ret_code);
typedef N_CDECL_PTR(NCSTRING, tyProc__S7DQYB5vODbZUsDBlWEW6g) (int e, NCSTRING buf);
typedef N_CDECL_PTR(void, tyProc__e47RoMUolEGMiUlfiZt9abQ) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl);
typedef N_CDECL_PTR(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*, tyProc__Rqjya8uauy9aPcyfGamaSrg) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* context);
typedef N_CDECL_PTR(NI, tyProc__xGcw2zK9bzuUE9c8WzKW5hzw) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl, int cmd, NI larg, void* parg);
typedef N_CDECL_PTR(int, tyProc__sG7rgqmtlgBaumPwwN3BfQ) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl, NCSTRING buf, NI num);
typedef N_CDECL_PTR(int, tyProc__09aW01hZ1tSPafLaWVpBcXA) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl, void* buf, NI num);
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
  Exception Sup;
};
struct tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA {
  tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
NI32 errorCode;
};
struct tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg {
  tyObject_OSError__BeJgrOdDsczOwEWOZbRfKA Sup;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_CDECL_PTR(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*, tyProc__HXibadfWHwHwyhCwpIRD2A) (void);
typedef N_CDECL_PTR(int, tyProc__2PA7CxitARKs0jpUW1gQ0g) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* s, NCSTRING ciphers);
typedef N_CDECL_PTR(NI, tyProc__aF4y9aPKIi8D4VGrVvX011Q) (NI a, void* b);
typedef N_CDECL_PTR(void, tyProc__H5wL7jexPlRA7WCw9cqLm0A) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* s, NI mode, tyProc__aF4y9aPKIi8D4VGrVvX011Q cb);
typedef N_STDCALL_PTR(int, tyProc__tYatIIo0oRSB9bjHLep7yhQ) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ctx, NCSTRING filename);
typedef N_CDECL_PTR(int, tyProc__xjxKRHVZXDqdWXw9bunoZ3w) (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ctx, NCSTRING filename, int typ);
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void*, nimLoadLibrary)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void, nimLoadLibraryError)(NimStringDesc* path);
N_LIB_PRIVATE N_NIMCALL(void*, nimGetProcAddr)(void* lib, NCSTRING name);
N_LIB_PRIVATE N_CDECL(void*, allocWrapper__RKtAA5JYxWxZj79aCAifPvA)(NI size);
N_LIB_PRIVATE N_NOCONV(void*, allocSharedImpl)(NI size);
N_LIB_PRIVATE N_CDECL(void*, reallocWrapper__9cfMO5SIG9bC9adqbrJrcB70Q)(void* p, NI newSize);
N_LIB_PRIVATE N_NOCONV(void, deallocShared)(void* p);
N_LIB_PRIVATE N_NOCONV(void*, reallocSharedImpl__EIuTxhlMorNfTFWwy4AzTA)(void* p, NI newSize);
N_LIB_PRIVATE N_CDECL(void, deallocWrapper__uOonBuLtXfZwTuGZR20a6Q)(void* p);
N_LIB_PRIVATE N_NIMCALL(void*, sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ)(NimStringDesc* name, NimStringDesc* alternativeName);
static N_INLINE(void*, sslModule__E9agIDZT2VyIwfkoJys1E0Aopenssl)(void);
N_LIB_PRIVATE N_NIMCALL(void*, loadLibPattern__b9aH5C9aWbfFKSp3nIx1lqTA)(NimStringDesc* pattern, NIM_BOOL globalSymbols);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void*, symAddr__ALH9bdNwXEzg7MPq4PA9csvw)(void* lib, NCSTRING name);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
static N_INLINE(void*, thisModule__E9agIDZT2VyIwfkoJys1E0A_2openssl)(void);
N_LIB_PRIVATE N_NIMCALL(void*, loadLib__3W0xEugBG13TxVu4hk9b9b5g)(void);
N_LIB_PRIVATE N_NIMCALL(void*, sslSymThrows__dsinlRPqANpoUTK9bUXQLCQ_2)(NimStringDesc* name, NimStringDesc* alternativeName);
N_LIB_PRIVATE N_NOINLINE(void, raiseInvalidLibrary__TnaNIb4lz2PqhpvzfjxuWw)(NCSTRING name);
N_LIB_PRIVATE N_NIMCALL(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*, loadPSSLMethod__Ly1cbhDPrPcypgHb7sj70w)(NimStringDesc* method1, NimStringDesc* method2);
N_LIB_PRIVATE N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_4, "libcrypto.so.1.1", 16);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_6, "libcrypto.so.1.0.2", 18);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_8, "libcrypto.so.1.0.1", 18);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_10, "libcrypto.so.1.0.0", 18);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_12, "libcrypto.so.0.9.9", 18);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_14, "libcrypto.so.0.9.8", 18);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_16, "libcrypto.so.47", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_18, "libcrypto.so.46", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_20, "libcrypto.so.45", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_22, "libcrypto.so.44", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_24, "libcrypto.so.43", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_26, "libcrypto.so.41", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_28, "libcrypto.so.39", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_30, "libcrypto.so.38", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_32, "libcrypto.so.10", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_34, "libcrypto.so", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_35, "libcrypto.so(.1.1|.1.0.2|.1.0.1|.1.0.0|.0.9.9|.0.9.8|.47|.46|.4"
"5|.44|.43|.41|.39|.38|.10|)", 90);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_38, "libssl.so(.1.1|.1.0.2|.1.0.1|.1.0.0|.0.9.9|.0.9.8|.47|.46|.45|."
"44|.43|.41|.39|.38|.10|)", 87);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_39, "OPENSSL_init_ssl", 16);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_40, "SSL_library_init", 16);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_41, "SSL_load_error_strings", 22);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_44, "OPENSSL_add_all_algorithms_conf", 31);
N_LIB_PRIVATE TNimType NTI__hZKic6WnTBMq6Usbg49bnhw_;
N_LIB_PRIVATE TNimType NTI__QQ33RYEe889cv60wm9bVkd8A_;
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_49, "libssl.so.1.1", 13);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_51, "libssl.so.1.0.2", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_53, "libssl.so.1.0.1", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_55, "libssl.so.1.0.0", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_57, "libssl.so.0.9.9", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_59, "libssl.so.0.9.8", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_61, "libssl.so.47", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_63, "libssl.so.46", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_65, "libssl.so.45", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_67, "libssl.so.44", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_69, "libssl.so.43", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_71, "libssl.so.41", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_73, "libssl.so.39", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_75, "libssl.so.38", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_77, "libssl.so.10", 12);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_79, "libssl.so", 9);
extern TNimType NTI__HV2B9a6TW6WPpQna2mQFeQQ_;
extern TNimType NTI__x1muge9crz9aAVqWWUrEL9aXg_;
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_108, "Could not load ", 15);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_109, " nor ", 5);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_110, "SSLv23_method", 13);
STRING_LITERAL(TM__SLGpYVEqpFQ7VaPsJH6HIA_111, "TLS_method", 10);
static void* TM__SLGpYVEqpFQ7VaPsJH6HIA_2;
tyProc__sYEjOwC8kj9bf3dL1zf0Hrw Dl_15790015_;
N_LIB_PRIVATE void* sslMod__jjPr6K4VwnmIfXONVVYefQ;
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__759bT87luu8XGcbkw13FUjA;
N_LIB_PRIVATE void* thisMod__BVflfs5GGPI4d1Lan5mHzA;
tyProc__ln4kdL5W9bbX4a1xl8nnVXQ Dl_15780414_;
tyProc__ln4kdL5W9bbX4a1xl8nnVXQ Dl_15825657_;
static void* TM__SLGpYVEqpFQ7VaPsJH6HIA_47;
tyProc__Vff1ipOwDPDGknaRJAdXjA Dl_15780496_;
tyProc__kxUw9cdxJbPtv0iPyoSbDBQ Dl_15780519_;
tyProc__cez8YhJI0vaCUcjGg6z4zA Dl_15780826_;
tyProc__S7DQYB5vODbZUsDBlWEW6g Dl_15780820_;
tyProc__e47RoMUolEGMiUlfiZt9abQ Dl_15780419_;
tyProc__Rqjya8uauy9aPcyfGamaSrg Dl_15780416_;
tyProc__kxUw9cdxJbPtv0iPyoSbDBQ Dl_15780492_;
tyProc__xGcw2zK9bzuUE9c8WzKW5hzw Dl_15825488_;
tyProc__Vff1ipOwDPDGknaRJAdXjA Dl_15780506_;
tyProc__Vff1ipOwDPDGknaRJAdXjA Dl_15780523_;
tyProc__sG7rgqmtlgBaumPwwN3BfQ Dl_15780514_;
tyProc__Vff1ipOwDPDGknaRJAdXjA Dl_15780526_;
tyProc__09aW01hZ1tSPafLaWVpBcXA Dl_15780509_;
tyProc__Rqjya8uauy9aPcyfGamaSrg Dl_15780432_;
tyProc__HXibadfWHwHwyhCwpIRD2A Dl_15766236_;
tyProc__2PA7CxitARKs0jpUW1gQ0g Dl_15780455_;
tyProc__H5wL7jexPlRA7WCw9cqLm0A Dl_15780443_;
tyProc__xGcw2zK9bzuUE9c8WzKW5hzw Dl_15825459_;
tyProc__tYatIIo0oRSB9bjHLep7yhQ Dl_15780464_;
tyProc__xjxKRHVZXDqdWXw9bunoZ3w Dl_15780468_;
tyProc__Vff1ipOwDPDGknaRJAdXjA Dl_15780473_;
N_LIB_PRIVATE N_CDECL(void*, allocWrapper__RKtAA5JYxWxZj79aCAifPvA)(NI size) {
	void* result;
	result = (void*)0;
	result = allocSharedImpl(((NI) (size)));
	return result;
}
N_LIB_PRIVATE N_CDECL(void*, reallocWrapper__9cfMO5SIG9bC9adqbrJrcB70Q)(void* p, NI newSize) {
	void* result;
	result = (void*)0;
	{
		if (!(p == NIM_NIL)) goto LA3_;
		{
			if (!(((NI) 0) < newSize)) goto LA7_;
			result = allocSharedImpl(((NI) (newSize)));
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		if (!(newSize == ((NI) 0))) goto LA10_;
		deallocShared(p);
	}
	goto LA1_;
	LA10_: ;
	{
		result = reallocSharedImpl__EIuTxhlMorNfTFWwy4AzTA(p, ((NI) (newSize)));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_CDECL(void, deallocWrapper__uOonBuLtXfZwTuGZR20a6Q)(void* p) {
	{
		if (!!((p == NIM_NIL))) goto LA3_;
		deallocShared(p);
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, CRYPTO_malloc_init__G2BDIxFj2W9ajANxAoi8oZA)(void) {
	Dl_15790015_(((void*) (allocWrapper__RKtAA5JYxWxZj79aCAifPvA)), ((void*) (reallocWrapper__9cfMO5SIG9bC9adqbrJrcB70Q)), ((void*) (deallocWrapper__uOonBuLtXfZwTuGZR20a6Q)));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (NIM_BOOL*)0;
	result = (&nimInErrorMode__759bT87luu8XGcbkw13FUjA);
	return result;
}
static N_INLINE(void*, sslModule__E9agIDZT2VyIwfkoJys1E0Aopenssl)(void) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	{
		void* T5_;
		if (!(sslMod__jjPr6K4VwnmIfXONVVYefQ == 0)) goto LA3_;
		T5_ = (void*)0;
		T5_ = loadLibPattern__b9aH5C9aWbfFKSp3nIx1lqTA(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_38), NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		sslMod__jjPr6K4VwnmIfXONVVYefQ = T5_;
	}
	LA3_: ;
	result = sslMod__jjPr6K4VwnmIfXONVVYefQ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
	NCSTRING result;
	result = (NCSTRING)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (s == NIM_NIL);
		if (T3_) goto LA4_;
		T3_ = ((*s).Sup.len == ((NI) 0));
		LA4_: ;
		if (!T3_) goto LA5_;
		result = "";
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((NCSTRING) ((*s).data));
	}
	LA1_: ;
	return result;
}
static N_INLINE(void*, thisModule__E9agIDZT2VyIwfkoJys1E0A_2openssl)(void) {
	void* result;
	result = (void*)0;
	{
		if (!(thisMod__BVflfs5GGPI4d1Lan5mHzA == 0)) goto LA3_;
		thisMod__BVflfs5GGPI4d1Lan5mHzA = loadLib__3W0xEugBG13TxVu4hk9b9b5g();
	}
	LA3_: ;
	result = thisMod__BVflfs5GGPI4d1Lan5mHzA;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ)(NimStringDesc* name, NimStringDesc* alternativeName) {
	void* result;
	void* sslDynlib;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	sslDynlib = sslModule__E9agIDZT2VyIwfkoJys1E0Aopenssl();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!!((sslDynlib == 0))) goto LA3_;
		result = symAddr__ALH9bdNwXEzg7MPq4PA9csvw(sslDynlib, nimToCStringConv(name));
		{
			NIM_BOOL T7_;
			T7_ = (NIM_BOOL)0;
			T7_ = (result == 0);
			if (!(T7_)) goto LA8_;
			T7_ = (((NI) 0) < (alternativeName ? alternativeName->Sup.len : 0));
			LA8_: ;
			if (!T7_) goto LA9_;
			result = symAddr__ALH9bdNwXEzg7MPq4PA9csvw(sslDynlib, nimToCStringConv(alternativeName));
		}
		LA9_: ;
	}
	LA3_: ;
	{
		void* thisDynlib;
		if (!(result == 0)) goto LA13_;
		thisDynlib = thisModule__E9agIDZT2VyIwfkoJys1E0A_2openssl();
		{
			if (!(thisDynlib == 0)) goto LA17_;
			result = NIM_NIL;
			goto BeforeRet_;
		}
		LA17_: ;
		result = symAddr__ALH9bdNwXEzg7MPq4PA9csvw(thisDynlib, nimToCStringConv(name));
		{
			NIM_BOOL T21_;
			T21_ = (NIM_BOOL)0;
			T21_ = (result == 0);
			if (!(T21_)) goto LA22_;
			T21_ = (((NI) 0) < (alternativeName ? alternativeName->Sup.len : 0));
			LA22_: ;
			if (!T21_) goto LA23_;
			result = symAddr__ALH9bdNwXEzg7MPq4PA9csvw(sslDynlib, nimToCStringConv(alternativeName));
		}
		LA23_: ;
	}
	LA13_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void*, sslSymThrows__dsinlRPqANpoUTK9bUXQLCQ_2)(NimStringDesc* name, NimStringDesc* alternativeName) {
	void* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (void*)0;
	result = sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ(name, alternativeName);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(result == 0)) goto LA3_;
		raiseInvalidLibrary__TnaNIb4lz2PqhpvzfjxuWw(nimToCStringConv(name));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(int, SSL_library_init__6SfBfS64wp6JZihQGGrnKg)(void) {
	int result;
	void* newInitSym;
	tyProc__cez8YhJI0vaCUcjGg6z4zA olderProc;
	void* T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (int)0;
	newInitSym = sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_39), ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyProc__pduP3uOMtjDyYKG6z4GVFg newInitProc;
		if (!!((newInitSym == 0))) goto LA3_;
		newInitProc = ((tyProc__pduP3uOMtjDyYKG6z4GVFg) (newInitSym));
		result = newInitProc(0ULL, ((NU8) 0));
		goto BeforeRet_;
	}
	LA3_: ;
	T5_ = (void*)0;
	T5_ = sslSymThrows__dsinlRPqANpoUTK9bUXQLCQ_2(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_40), ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	olderProc = ((tyProc__cez8YhJI0vaCUcjGg6z4zA) (T5_));
	{
		if (!!((olderProc == 0))) goto LA8_;
		result = olderProc();
	}
	LA8_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, SSL_load_error_strings__G2BDIxFj2W9ajANxAoi8oZA_2)(void) {
	tyProc__ln4kdL5W9bbX4a1xl8nnVXQ theProc;
	void* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (void*)0;
	T1_ = sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_41), ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	theProc = ((tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) (T1_));
	{
		if (!!((theProc == 0))) goto LA4_;
		theProc();
	}
	LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, OpenSSL_add_all_algorithms__G2BDIxFj2W9ajANxAoi8oZA_3)(void) {
	tyProc__ln4kdL5W9bbX4a1xl8nnVXQ theProc;
	void* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (void*)0;
	T1_ = sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_44), ((NimStringDesc*) NIM_NIL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	theProc = ((tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) (T1_));
	{
		if (!!((theProc == 0))) goto LA4_;
		theProc();
	}
	LA4_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, SSL_set_tlsext_host_name__jGR2GiKRQZ9cgDkYFu4P9aNg)(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ssl, NCSTRING name) {
	NI result;
	result = (NI)0;
	result = Dl_15825488_(ssl, ((int) 55), ((NI) 0), ((void*) (name)));
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*, loadPSSLMethod__Ly1cbhDPrPcypgHb7sj70w)(NimStringDesc* method1, NimStringDesc* method2) {
	tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* result;
	void* methodSym;
	tyProc__HXibadfWHwHwyhCwpIRD2A method2Proc;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*)0;
	methodSym = sslSymNullable__dsinlRPqANpoUTK9bUXQLCQ(method1, method2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg* T5_;
		NimStringDesc* T6_;
		if (!(methodSym == 0)) goto LA3_;
		T5_ = (tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg*)0;
		T5_ = (tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg*) newObj((&NTI__HV2B9a6TW6WPpQna2mQFeQQ_), sizeof(tyObject_LibraryError__x1muge9crz9aAVqWWUrEL9aXg));
		(*T5_).Sup.Sup.Sup.Sup.m_type = (&NTI__x1muge9crz9aAVqWWUrEL9aXg_);
		(*T5_).Sup.Sup.Sup.name = "LibraryError";
		T6_ = (NimStringDesc*)0;
		T6_ = rawNewString((method1 ? method1->Sup.len : 0) + (method2 ? method2->Sup.len : 0) + 20);
appendString(T6_, ((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_108));
appendString(T6_, method1);
appendString(T6_, ((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_109));
appendString(T6_, method2);
		(*T5_).Sup.Sup.Sup.message = T6_;
		(*T5_).Sup.Sup.Sup.parent = NIM_NIL;
		raiseExceptionEx((Exception*)T5_, "LibraryError", "loadPSSLMethod", "openssl.nim", 322);
		goto BeforeRet_;
	}
	LA3_: ;
	method2Proc = ((tyProc__HXibadfWHwHwyhCwpIRD2A) (methodSym));
	result = method2Proc();
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*, SSLv23_method__LTfNTmKR6aBlZTkY8nHSxg)(void) {
	tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*)0;
	result = loadPSSLMethod__Ly1cbhDPrPcypgHb7sj70w(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_110), ((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_111));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, SSLCTXSetMode__u4DGuCXu9asDo9aQgd9cu5QNQ)(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw* ctx, NI mode) {
	NI result;
	result = (NI)0;
	result = Dl_15825459_(ctx, ((int) 33), mode, NIM_NIL);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_opensslDatInit000)(void) {
static TNimNode TM__SLGpYVEqpFQ7VaPsJH6HIA_0[1];
NTI__hZKic6WnTBMq6Usbg49bnhw_.size = sizeof(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw);
NTI__hZKic6WnTBMq6Usbg49bnhw_.kind = 18;
NTI__hZKic6WnTBMq6Usbg49bnhw_.base = 0;
NTI__hZKic6WnTBMq6Usbg49bnhw_.flags = 3;
TM__SLGpYVEqpFQ7VaPsJH6HIA_0[0].len = 0; TM__SLGpYVEqpFQ7VaPsJH6HIA_0[0].kind = 2;
NTI__hZKic6WnTBMq6Usbg49bnhw_.node = &TM__SLGpYVEqpFQ7VaPsJH6HIA_0[0];
NTI__QQ33RYEe889cv60wm9bVkd8A_.size = sizeof(tyObject_SslStruct__hZKic6WnTBMq6Usbg49bnhw*);
NTI__QQ33RYEe889cv60wm9bVkd8A_.kind = 21;
NTI__QQ33RYEe889cv60wm9bVkd8A_.base = (&NTI__hZKic6WnTBMq6Usbg49bnhw_);
NTI__QQ33RYEe889cv60wm9bVkd8A_.flags = 3;
if (!((TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_4)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_6)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_8)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_10)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_12)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_14)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_16)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_18)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_20)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_22)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_24)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_26)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_28)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_30)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_32)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_2 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_34)))
)) nimLoadLibraryError(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_35));
	Dl_15790015_ = (tyProc__sYEjOwC8kj9bf3dL1zf0Hrw) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_2, "CRYPTO_set_mem_functions");
	Dl_15780414_ = (tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_2, "ERR_load_BIO_strings");
	Dl_15825657_ = (tyProc__ln4kdL5W9bbX4a1xl8nnVXQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_2, "ERR_clear_error");
if (!((TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_49)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_51)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_53)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_55)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_57)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_59)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_61)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_63)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_65)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_67)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_69)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_71)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_73)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_75)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_77)))
||(TM__SLGpYVEqpFQ7VaPsJH6HIA_47 = nimLoadLibrary(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_79)))
)) nimLoadLibraryError(((NimStringDesc*) &TM__SLGpYVEqpFQ7VaPsJH6HIA_38));
	Dl_15780496_ = (tyProc__Vff1ipOwDPDGknaRJAdXjA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_shutdown");
	Dl_15780519_ = (tyProc__kxUw9cdxJbPtv0iPyoSbDBQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_get_error");
	Dl_15780826_ = (tyProc__cez8YhJI0vaCUcjGg6z4zA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_2, "ERR_peek_last_error");
	Dl_15780820_ = (tyProc__S7DQYB5vODbZUsDBlWEW6g) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_2, "ERR_error_string");
	Dl_15780419_ = (tyProc__e47RoMUolEGMiUlfiZt9abQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_free");
	Dl_15780416_ = (tyProc__Rqjya8uauy9aPcyfGamaSrg) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_new");
	Dl_15780492_ = (tyProc__kxUw9cdxJbPtv0iPyoSbDBQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_set_fd");
	Dl_15825488_ = (tyProc__xGcw2zK9bzuUE9c8WzKW5hzw) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_ctrl");
	Dl_15780506_ = (tyProc__Vff1ipOwDPDGknaRJAdXjA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_connect");
	Dl_15780523_ = (tyProc__Vff1ipOwDPDGknaRJAdXjA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_accept");
	Dl_15780514_ = (tyProc__sG7rgqmtlgBaumPwwN3BfQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_write");
	Dl_15780526_ = (tyProc__Vff1ipOwDPDGknaRJAdXjA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_pending");
	Dl_15780509_ = (tyProc__09aW01hZ1tSPafLaWVpBcXA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_read");
	Dl_15780432_ = (tyProc__Rqjya8uauy9aPcyfGamaSrg) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_new");
	Dl_15766236_ = (tyProc__HXibadfWHwHwyhCwpIRD2A) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "TLSv1_method");
	Dl_15780455_ = (tyProc__2PA7CxitARKs0jpUW1gQ0g) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_set_cipher_list");
	Dl_15780443_ = (tyProc__H5wL7jexPlRA7WCw9cqLm0A) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_set_verify");
	Dl_15825459_ = (tyProc__xGcw2zK9bzuUE9c8WzKW5hzw) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_ctrl");
	Dl_15780464_ = (tyProc__tYatIIo0oRSB9bjHLep7yhQ) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_use_certificate_chain_file");
	Dl_15780468_ = (tyProc__xjxKRHVZXDqdWXw9bunoZ3w) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_use_PrivateKey_file");
	Dl_15780473_ = (tyProc__Vff1ipOwDPDGknaRJAdXjA) nimGetProcAddr(TM__SLGpYVEqpFQ7VaPsJH6HIA_47, "SSL_CTX_check_private_key");
}

