Function at 0x45b680
Capabilities:
Link many functions at runtime

Disassembly:
push ecx
push edi
xor edi, edi
cmp dword [ecx + 0x3c], edi
mov dword [esp + 4], ecx
je 0x45b692
xor eax, eax
pop edi
pop ecx
ret
cmp dword [0x49deb0], edi
je 0x45b6a5
push 0x49de98
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x49faf4], edi
push ebx
push ebp
push esi
jne 0x45c058
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.libeay32.dll
call ebp
cmp eax, edi
mov dword [0x49fafc], eax
jne 0x45b6e5
mov eax, dword [0x49faf8]
cmp eax, edi
je 0x45b6da
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x49faf8], edi
jmp 0x45bfe9
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.BIO_ctrl_pending
push eax
xor bl, bl
call esi
cmp eax, edi
mov dword [0x49fa58], eax
jne 0x45b700
mov bl, 1
mov eax, dword [0x49fafc]
push str.BIO_ctrl_pending
push eax
call esi
cmp eax, edi
mov dword [0x49fa58], eax
jne 0x45b718
mov bl, 1
mov ecx, dword [0x49fafc]
push str.BIO_read
push ecx
call esi
cmp eax, edi
mov dword [0x49fa54], eax
jne 0x45b731
mov bl, 1
mov edx, dword [0x49fafc]
push str.BIO_ctrl
push edx
call esi
cmp eax, edi
mov dword [0x49fa50], eax
jne 0x45b74a
mov bl, 1
mov eax, dword [0x49fafc]
push str.BIO_write
push eax
call esi
cmp eax, edi
mov dword [0x49fa4c], eax
jne 0x45b762
mov bl, 1
mov ecx, dword [0x49fafc]
push str.BIO_ctrl_get_write_guarantee
push ecx
call esi
cmp eax, edi
mov dword [0x49fa48], eax
jne 0x45b77b
mov bl, 1
mov edx, dword [0x49fafc]
push str.BIO_new_bio_pair
push edx
call esi
cmp eax, edi
mov dword [0x49fa44], eax
jne 0x45b794
mov bl, 1
mov eax, dword [0x49fafc]
push str.BIO_new
push eax
call esi
cmp eax, edi
mov dword [0x49fa40], eax
jne 0x45b7ac
mov bl, 1
mov ecx, dword [0x49fafc]
push str.BIO_free
push ecx
call esi
cmp eax, edi
mov dword [0x49fa3c], eax
jne 0x45b7c5
mov bl, 1
mov edx, dword [0x49fafc]
push str.i2t_ASN1_OBJECT
push edx
call esi
cmp eax, edi
mov dword [0x49fa38], eax
jne 0x45b7de
mov bl, 1
mov eax, dword [0x49fafc]
push str.OBJ_obj2nid
push eax
call esi
cmp eax, edi
mov dword [0x49fa34], eax
jne 0x45b7f6
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_NAME_ENTRY_get_object
push ecx
call esi
cmp eax, edi
mov dword [0x49fa30], eax
jne 0x45b80f
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_NAME_get_entry
push edx
call esi
cmp eax, edi
mov dword [0x49fa2c], eax
jne 0x45b828
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_NAME_entry_count
push eax
call esi
cmp eax, edi
mov dword [0x49fa28], eax
jne 0x45b840
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_get_subject_name
push ecx
call esi
cmp eax, edi
mov dword [0x49fa24], eax
jne 0x45b859
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_get_issuer_name
push edx
call esi
cmp eax, edi
mov dword [0x49fa20], eax
jne 0x45b872
mov bl, 1
mov eax, dword [0x49fafc]
push str.OBJ_nid2sn
push eax
call esi
cmp eax, edi
mov dword [0x49fa1c], eax
jne 0x45b88a
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_NAME_ENTRY_get_data
push ecx
call esi
cmp eax, edi
mov dword [0x49fa18], eax
jne 0x45b8a3
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_STORE_CTX_set_error
push edx
call esi
cmp eax, edi
mov dword [0x49fa14], eax
jne 0x45b8bc
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_digest
push eax
call esi
cmp eax, edi
mov dword [0x49fa10], eax
jne 0x45b8d4
mov bl, 1
mov ecx, dword [0x49fafc]
push str.EVP_sha1
push ecx
call esi
cmp eax, edi
mov dword [0x49fa0c], eax
jne 0x45b8ed
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_STORE_CTX_get_current_cert
push edx
call esi
cmp eax, edi
mov dword [0x49fa08], eax
jne 0x45b906
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_STORE_CTX_get_error
push eax
call esi
cmp eax, edi
mov dword [0x49fa04], eax
jne 0x45b91e
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_free
push ecx
call esi
cmp eax, edi
mov dword [0x49fa00], eax
jne 0x45b937
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_get_pubkey
push edx
call esi
cmp eax, edi
mov dword [0x49f9fc], eax
jne 0x45b950
mov bl, 1
mov eax, dword [0x49fafc]
push str.BN_num_bits
push eax
call esi
cmp eax, edi
mov dword [0x49f9f8], eax
jne 0x45b968
mov bl, 1
mov ecx, dword [0x49fafc]
push str.EVP_PKEY_free
push ecx
call esi
cmp eax, edi
mov dword [0x49f9f4], eax
jne 0x45b981
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_STORE_CTX_get_ex_data
push edx
call esi
cmp eax, edi
mov dword [0x49f9f0], eax
jne 0x45b99a
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_NAME_oneline
push eax
call esi
cmp eax, edi
mov dword [0x49f9ec], eax
jne 0x45b9b2
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_verify_cert_error_string
push ecx
call esi
cmp eax, edi
mov dword [0x49f9e8], eax
jne 0x45b9cb
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_STORE_CTX_get_error_depth
push edx
call esi
cmp eax, edi
mov dword [0x49f9e4], eax
jne 0x45b9e4
mov bl, 1
mov eax, dword [0x49fafc]
push str.ERR_get_error
push eax
call esi
cmp eax, edi
mov dword [0x49f9e0], eax
jne 0x45b9fc
mov bl, 1
mov ecx, dword [0x49fafc]
push str.ERR_error_string
push ecx
call esi
cmp eax, edi
mov dword [0x49f9dc], eax
jne 0x45ba15
mov bl, 1
mov edx, dword [0x49fafc]
push str.ASN1_STRING_to_UTF8
push edx
call esi
cmp eax, edi
mov dword [0x49f9d8], eax
jne 0x45ba2e
mov bl, 1
mov eax, dword [0x49fafc]
push str.CRYPTO_free
push eax
call esi
cmp eax, edi
mov dword [0x49f9d4], eax
jne 0x45ba46
mov bl, 1
mov ecx, dword [0x49fafc]
push str.RSA_generate_key
push ecx
call esi
cmp eax, edi
mov dword [0x49f9d0], eax
jne 0x45ba5f
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_set_version
push edx
call esi
cmp eax, edi
mov dword [0x49f9cc], eax
jne 0x45ba78
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_gmtime_adj
push eax
call esi
cmp eax, edi
mov dword [0x49f9c8], eax
jne 0x45ba90
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_set_pubkey
push ecx
call esi
cmp eax, edi
mov dword [0x49f9c4], eax
jne 0x45baa9
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_NAME_add_entry_by_txt
push edx
call esi
cmp eax, edi
mov dword [0x49f9c0], eax
jne 0x45bac2
mov bl, 1
mov eax, dword [0x49fafc]
push str.X509_NAME_add_entry_by_NID
push eax
call esi
cmp eax, edi
mov dword [0x49f9bc], eax
jne 0x45bada
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_set_issuer_name
push ecx
call esi
cmp eax, edi
mov dword [0x49f9b8], eax
jne 0x45baf3
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_sign
push edx
call esi
cmp eax, edi
mov dword [0x49f9b4], eax
jne 0x45bb0c
mov bl, 1
mov eax, dword [0x49fafc]
push str.EVP_PKEY_new
push eax
call esi
cmp eax, edi
mov dword [0x49f9b0], eax
jne 0x45bb24
mov bl, 1
mov ecx, dword [0x49fafc]
push str.EVP_PKEY_assign
push ecx
call esi
cmp eax, edi
mov dword [0x49f9ac], eax
jne 0x45bb3d
mov bl, 1
mov edx, dword [0x49fafc]
push str.X509_new
push edx
call esi
cmp eax, edi
mov dword [0x49f9a8], eax
jne 0x45bb56
mov bl, 1
mov eax, dword [0x49fafc]
push str.ASN1_INTEGER_set
push eax
call esi
cmp eax, edi
mov dword [0x49f9a4], eax
jne 0x45bb6e
mov bl, 1
mov ecx, dword [0x49fafc]
push str.X509_get_serialNumber
push ecx
call esi
cmp eax, edi
mov dword [0x49f9a0], eax
jne 0x45bb87
mov bl, 1
mov edx, dword [0x49fafc]
push str.PEM_ASN1_write_bio
push edx
call esi
cmp eax, edi
mov dword [0x49f99c], eax
jne 0x45bba0
mov bl, 1
mov eax, dword [0x49fafc]
push str.i2d_X509
push eax
call esi
cmp eax, edi
mov dword [0x49f998], eax
jne 0x45bbb8
mov bl, 1
mov ecx, dword [0x49fafc]
push str.BIO_s_mem
push ecx
call esi
cmp eax, edi
mov dword [0x49f994], eax
jne 0x45bbd1
mov bl, 1
mov edx, dword [0x49fafc]
push str.i2d_PrivateKey
push edx
call esi
cmp eax, edi
mov dword [0x49f990], eax
je 0x45bbec
test bl, bl
je 0x45bc0c
mov eax, dword [0x49faf8]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push eax
call esi
mov ecx, dword [0x49fafc]
mov dword [0x49faf8], edi
push ecx
jmp 0x45bfe1
push str.ssleay32.dll
call ebp
cmp eax, edi
mov dword [0x49faf8], eax
jne 0x45bc35
mov eax, dword [0x49fafc]
cmp eax, edi
je 0x45bfe3
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x45bfe3
push str.SSL_state_string_long
push eax
call esi
cmp eax, edi
mov dword [0x49fae8], eax
jne 0x45bc48
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_state
push edx
call esi
cmp eax, edi
mov dword [0x49faec], eax
jne 0x45bc61
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_set_info_callback
push eax
call esi
cmp eax, edi
mov dword [0x49fae4], eax
jne 0x45bc79
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_set_bio
push ecx
call esi
cmp eax, edi
mov dword [0x49fae0], eax
jne 0x45bc92
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_set_connect_state
push edx
call esi
cmp eax, edi
mov dword [0x49fadc], eax
jne 0x45bcab
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_set_session
push eax
call esi
cmp eax, edi
mov dword [0x49fad8], eax
jne 0x45bcc3
mov bl, 1
mov ecx, dword [0x49faf8]
push str.BIO_f_ssl
push ecx
call esi
cmp eax, edi
mov dword [0x49fad4], eax
jne 0x45bcdc
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_new
push edx
call esi
cmp eax, edi
mov dword [0x49fad0], eax
jne 0x45bcf5
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_CTX_new
push eax
call esi
cmp eax, edi
mov dword [0x49facc], eax
jne 0x45bd0d
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSLv23_method
push ecx
call esi
cmp eax, edi
mov dword [0x49fac8], eax
jne 0x45bd26
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_load_error_strings
push edx
call esi
cmp eax, edi
mov dword [0x49fac4], eax
jne 0x45bd3f
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_library_init
push eax
call esi
cmp eax, edi
mov dword [0x49fac0], eax
jne 0x45bd57
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_CTX_free
push ecx
call esi
cmp eax, edi
mov dword [0x49fabc], eax
jne 0x45bd70
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_free
push edx
call esi
cmp eax, edi
mov dword [0x49fab8], eax
jne 0x45bd89
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_get_error
push eax
call esi
cmp eax, edi
mov dword [0x49fab4], eax
jne 0x45bda1
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_shutdown
push ecx
call esi
cmp eax, edi
mov dword [0x49fab0], eax
jne 0x45bdba
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_get_shutdown
push edx
call esi
cmp eax, edi
mov dword [0x49faac], eax
jne 0x45bdd3
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_alert_type_string_long
push eax
call esi
cmp eax, edi
mov dword [0x49faa8], eax
jne 0x45bdeb
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_alert_desc_string_long
push ecx
call esi
cmp eax, edi
mov dword [0x49faa4], eax
jne 0x45be04
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_CTX_set_verify
push edx
call esi
cmp eax, edi
mov dword [0x49faa0], eax
jne 0x45be1d
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_CTX_get_cert_store
push eax
call esi
cmp eax, edi
mov dword [0x49fa9c], eax
jne 0x45be35
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_get_verify_result
push ecx
call esi
cmp eax, edi
mov dword [0x49fa98], eax
jne 0x45be4e
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_get_peer_certificate
push edx
call esi
cmp eax, edi
mov dword [0x49fa94], eax
jne 0x45be67
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_get_version
push eax
call esi
cmp eax, edi
mov dword [0x49fa90], eax
jne 0x45be7f
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_get_current_cipher
push ecx
call esi
cmp eax, edi
mov dword [0x49fa8c], eax
jne 0x45be98
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_CIPHER_get_name
push edx
call esi
cmp eax, edi
mov dword [0x49fa88], eax
jne 0x45beb1
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_CIPHER_get_version
push eax
call esi
cmp eax, edi
mov dword [0x49fa84], eax
jne 0x45bec9
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_get_ex_data_X509_STORE_CTX_idx
push ecx
call esi
cmp eax, edi
mov dword [0x49fa80], eax
jne 0x45bee2
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_CTX_load_verify_locations
push edx
call esi
cmp eax, edi
mov dword [0x49fa7c], eax
jne 0x45befb
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_ctrl
push eax
call esi
cmp eax, edi
mov dword [0x49fa78], eax
jne 0x45bf13
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_set_accept_state
push ecx
call esi
cmp eax, edi
mov dword [0x49fa74], eax
jne 0x45bf2c
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_CTX_use_PrivateKey_file
push edx
call esi
cmp eax, edi
mov dword [0x49fa70], eax
jne 0x45bf45
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_CTX_use_certificate_file
push eax
call esi
cmp eax, edi
mov dword [0x49fa6c], eax
jne 0x45bf5d
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_CTX_check_private_key
push ecx
call esi
cmp eax, edi
mov dword [0x49fa68], eax
jne 0x45bf76
mov bl, 1
mov edx, dword [0x49faf8]
push str.SSL_CTX_set_default_passwd_cb_userdata
push edx
call esi
cmp eax, edi
mov dword [0x49fa60], eax
jne 0x45bf8f
mov bl, 1
mov eax, dword [0x49faf8]
push str.SSL_CTX_set_default_passwd_cb
push eax
call esi
cmp eax, edi
mov dword [0x49fa64], eax
jne 0x45bfa7
mov bl, 1
mov ecx, dword [0x49faf8]
push str.SSL_CTX_use_certificate_chain_file
push ecx
call esi
cmp eax, edi
mov dword [0x49fa5c], eax
je 0x45bfc2
test bl, bl
je 0x45c007
mov edx, dword [0x49faf8]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push edx
call esi
mov eax, dword [0x49fafc]
cmp eax, edi
mov dword [0x49faf8], edi
je 0x45bfe3
push eax
call esi
mov dword [0x49fafc], edi
cmp dword [0x49deb0], edi
je 0x45bffc
push 0x49de98
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebp
pop ebx
mov eax, 2
pop edi
pop ecx
ret
call dword [0x49fac4]
call dword [0x49fac0]
test eax, eax
jne 0x45c058
mov eax, dword [0x49faf8]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
push eax
call esi
mov ecx, dword [0x49fafc]
push ecx
mov dword [0x49faf8], edi
call esi
cmp dword [0x49deb0], edi
mov dword [0x49fafc], edi
je 0x45c04d
push 0x49de98
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebp
pop ebx
mov eax, 4
pop edi
pop ecx
ret
mov esi, 1
add dword [0x49faf4], esi
cmp dword [0x49deb0], edi
je 0x45c076
push 0x49de98
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x3c], esi
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
pop ecx
ret