Function at 0x49f150
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
sub esp, 0x1ec
cmp dword [ebp + 0x358], 2
mov eax, dword [eax]
mov dword [esp + 0x44], edx
mov dword [esp + 0x58], 0xffffffff
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x38], eax
je 0x49f5e0
mov eax, dword [ebp + 0x304]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 5
call sym._Curl_verify_windows_version
test al, al
jne 0x49f590
mov eax, dword [esp + 0x44]
shl eax, 4
add eax, ebp
mov edx, dword [eax + 0x458]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x358]
mov byte [edx + 0x46], 0
cmp eax, 2
je 0x49f5b0
mov esi, dword [ebp + 0x4a0]
test esi, esi
setne cl
test cl, cl
jne 0x49f2a0
cmp eax, 2
mov byte [edx + 0x47], 0
mov dword [edx], 0
je 0x49f2f0
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x83c]
mov byte [esp + 0x48], al
shr al, 3
and eax, 1
test al, al
jne 0x49f32a
lea edi, [esp + 0xa8]
xor eax, eax
mov ecx, 0xe
rep stosd dword es:[edi], eax
movzx eax, byte [ebp + 0x4bc]
mov dword [esp + 0xa8], 4
test al, 1
jne 0x49f6c5
mov dword [esp + 0xd8], 0x1808
test al, 2
jne 0x49f26b
or dword [esp + 0xd8], 4
mov ecx, dword [ebp + 0x494]
cmp ecx, 7
jbe 0x49f845
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.Unrecognized_parameter_passed_via_CURLOPT_SSLVERSION
mov esi, 0x23
mov dword [esp], eax
call sym._Curl_failf
jmp 0x49f649
mov dword [esp + 0xc], 3
mov dword [esp + 8], 2
mov dword [esp + 4], 1
mov dword [esp], 6
call sym._Curl_verify_windows_version
test al, al
je 0x49f630
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x458]
mov eax, dword [ebp + 0x358]
cmp eax, 2
mov byte [edx + 0x47], 1
mov dword [edx], 0
jne 0x49f20d
nop
xor eax, eax
cmp dword [ebp + 0x40c], 0xffffffff
setne al
add eax, 0x47
shl eax, 4
cmp dword [ebp + eax], 2
je 0x49f20d
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x894]
mov byte [esp + 0x48], al
shr al, 3
and eax, 1
test al, al
je 0x49f22a
mov dword [esp], ebp
call sym._Curl_ssl_sessionid_lock
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 0
mov dword [esp], ebp
mov dword [esp + 0xc], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
call sym._Curl_ssl_getsessionid
test al, al
je 0x49f660
mov dword [esp], ebp
call sym._Curl_ssl_sessionid_unlock
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x458]
mov ebx, dword [edx]
test ebx, ebx
je 0x49f22a
lea eax, [esp + 0x64]
mov dword [esp], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym._Curl_inet_pton
test eax, eax
jne 0x49f610
lea eax, [esp + 0x98]
mov dword [esp], 0x17
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym._Curl_inet_pton
test eax, eax
jne 0x49f610
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x80]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x94], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x8c], 0
mov ebx, dword [edi + 0x458]
mov dword [esp + 0x90], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [ebx + 0x38], 0x811c
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], 1
mov dword [esp + 4], 0x10
mov dword [esp], 1
call dword [0x5bcc20]
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x458]
mov edx, dword [eax + 4]
test edx, edx
je 0x49f810
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x49f728
mov ecx, dword [0x743284]
cmp byte [eax + 0x46], 0
lea edi, [edx + 8]
mov ebx, 0
mov esi, dword [ecx + 0x18]
lea ecx, [esp + 0x8c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
cmove ecx, ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x48], esi
lea esi, [eax + 0x3c]
mov dword [esp + 0x18], ecx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x28], esi
lea esi, [esp + 0x74]
mov dword [esp + 0x24], esi
mov edx, dword [eax + 0x38]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp + 0xc], edx
mov eax, dword [eax]
mov dword [esp], eax
call dword [esp + 0x48]
sub esp, 0x30
cmp eax, 0x90312
mov ebx, eax
je 0x49f740
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x458]
mov eax, dword [eax + 4]
mov dword [esp], eax
call dword [0x5bcc2c]
mov eax, dword [esi + 0x458]
cmp ebx, 0x80090300
mov dword [eax + 4], 0
je 0x49f7c5
cmp ebx, 0x80090322
jne 0x49f680
lea eax, [esp + 0xe0]
mov dword [esp + 8], 0x100
mov dword [esp], 0x80090322
mov esi, 0x3c
mov dword [esp + 4], eax
call sym._Curl_sspi_strerror
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_SNI_or_certificate_check_failed:__s
mov dword [esp], eax
call sym._Curl_failf
add esp, 0x1ec
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_Windows_version_is_old_and_may_not_be_able_to_connect_to_some_servers_due_to_lack_of_SNI__algorithms__etc._n
mov dword [esp], eax
call sym._Curl_infof
jmp 0x49f1c1
xor ecx, ecx
cmp dword [ebp + 0x40c], 0xffffffff
setne cl
add ecx, 0x47
shl ecx, 4
cmp dword [ebp + ecx], 2
je 0x49f1e7
mov edi, dword [ebp + 0x4cc]
test edi, edi
setne cl
jmp 0x49f1f2
xor eax, eax
cmp dword [ebp + 0x40c], 0xffffffff
setne al
add eax, 0x47
shl eax, 4
cmp dword [ebp + eax], 2
je 0x49f18b
mov eax, dword [ebp + 0x34c]
mov dword [esp + 0x3c], eax
jmp 0x49f195
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_using_IP_address__SNI_is_not_supported_by_OS._n
mov dword [esp], eax
call sym._Curl_infof
jmp 0x49f3c1
mov eax, dword [esp + 0x38]
mov dword [esp + 4], 0x5de444
mov esi, 0x4d
mov dword [esp], eax
call sym._Curl_failf
add esp, 0x1ec
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x60]
mov edx, dword [esi + 0x458]
mov dword [edx], eax
add dword [eax + 0x10], 1
jmp 0x49f35a
lea eax, [esp + 0xe0]
mov dword [esp], ebx
mov dword [esp + 8], 0x100
mov esi, 0x23
mov dword [esp + 4], eax
call sym._Curl_sspi_strerror
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_initial_InitializeSecurityContext_failed:__s
mov dword [esp], eax
call sym._Curl_failf
add esp, 0x1ec
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [edx + 0x47], 0
jne 0x49f830
mov dword [esp + 0xd8], 0x20
mov edx, 0x20
mov edi, dword [esp + 0x38]
movzx ecx, byte [edi + 0x868]
test cl, 8
je 0x49ff70
or dh, 0x18
mov dword [esp + 0xd8], edx
jmp 0x49f25f
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_unable_to_allocate_memory
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x49f728
mov dword [esp], eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
push ebx
add esp, 0x1ec
mov esi, 0x1b
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov eax, dword [ebp + eax*4 + 0x408]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_write_plain
mov ebx, eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [0x743284]
call dword [eax + 0x40]
sub esp, 4
test ebx, ebx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x58]
jne 0x49f797
cmp edx, eax
je 0x4a0210
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov esi, 0x23
mov dword [esp + 0xc], edx
mov dword [esp + 4], str.schannel:_failed_to_send_initial_handshake_data:_sent__zd_of__lu_bytes
mov dword [esp], eax
call sym._Curl_failf
add esp, 0x1ec
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0xe0]
mov dword [esp + 8], 0x100
mov dword [esp], 0x80090300
mov esi, 0x1b
mov dword [esp + 4], eax
call sym._Curl_sspi_strerror
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_initial_InitializeSecurityContext_failed:__s
mov dword [esp], eax
call sym._Curl_failf
add esp, 0x1ec
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_unable_to_allocate_memory
mov esi, 0x1b
mov dword [esp], eax
call sym._Curl_failf
jmp 0x49f649
mov dword [esp + 0xd8], 8
mov edx, 8
jmp 0x49f6df
mov eax, 1
shl eax, cl
test al, 0xf3
jne 0x4a0160
test al, 4
jne 0x4a0150
test al, 8
je 0x49f27a
mov dword [esp + 0xc8], 0x20
cmp dword [ebp + 0x358], 2
je 0x4a0437
mov ebx, dword [ebp + 0x4b0]
test ebx, ebx
je 0x49ffa8
xor eax, eax
cmp byte [ebx], 0
je 0x49ff96
mov dword [esp + 0x48], ebp
mov ebp, eax
jmp 0x49f8e0
add ebp, 1
mov dword [esp + 4], 0x3a
mov dword [esp], ebx
mov dword [ebp*4 + 0x74329c], esi
call sym._strchr
test eax, eax
je 0x49ff90
mov ebx, eax
add ebx, 1
je 0x49ff90
cmp byte [eax + 1], 0
je 0x49ff90
cmp ebp, 0x2d
je 0x4a0549
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._strtol
test eax, eax
mov esi, eax
jne 0x49f8a0
xor eax, eax
mov dword [esp + eax + 0xe0], 0
add eax, 4
cmp eax, 0x20
jb 0x49f900
mov dword [esp + 4], 0x3a
mov dword [esp], ebx
call sym._strchr
test eax, eax
je 0x4a04ea
sub eax, ebx
mov esi, eax
cmp eax, 0x1f
mov eax, 0x1f
cmova esi, eax
lea eax, [esp + 0xe0]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
lea edi, [esp + 0xe0]
mov dword [esp], eax
call sym._strncpy
mov byte [esp + esi + 0xe0], 0
mov ecx, 9
mov esi, str.CALG_MD2
repe cmpsb byte [esi], byte es:[edi]
mov esi, 0x8001
seta dl
setb al
cmp dl, al
je 0x49f8a0
lea edi, [esp + 0xe0]
mov esi, str.CALG_MD4
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
mov esi, 0x8002
seta dl
setb al
cmp dl, al
je 0x49f8a0
lea edi, [esp + 0xe0]
mov esi, str.CALG_MD5
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
mov esi, 0x8003
seta dl
setb al
cmp dl, al
je 0x49f8a0
lea edi, [esp + 0xe0]
mov esi, str.CALG_SHA
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
mov esi, 0x8004
seta dl
setb al
cmp dl, al
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SHA1
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_MAC
mov esi, 0x8005
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_RSA_SIGN
mov esi, 0x2400
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_DSS_SIGN
mov esi, 0x2200
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_NO_SIGN
mov esi, 0x2000
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_RSA_KEYX
mov esi, 0xa400
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_DES
mov esi, 0x6601
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_3DES_112
mov esi, 0x6609
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_3DES
mov esi, 0x6603
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_DESX
mov esi, 0x6604
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_RC2
mov esi, 0x6602
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_RC4
mov esi, 0x6801
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SEAL
mov esi, 0x6802
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_DH_SF
mov esi, 0xaa01
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_DH_EPHEM
mov esi, 0xaa02
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_AGREEDKEY_ANY
mov esi, 0xaa03
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_HUGHES_MD5
mov esi, 0xa003
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SKIPJACK
mov esi, 0x660a
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_TEK
mov esi, 0x660b
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_CYLINK_MEK
mov esi, 0x660c
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SSL3_SHAMD5
mov esi, 0x8008
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SSL3_MASTER
mov esi, 0x4c01
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SCHANNEL_MASTER_HASH
mov esi, 0x4c02
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SCHANNEL_MAC_KEY
mov esi, 0x4c03
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SCHANNEL_ENC_KEY
mov esi, 0x4c07
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_PCT1_MASTER
mov esi, 0x4c04
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SSL2_MASTER
mov esi, 0x4c05
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_TLS1_MASTER
mov esi, 0x4c06
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_RC5
mov esi, 0x660d
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_HMAC
mov esi, 0x8009
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_TLS1PRF
mov esi, 0x800a
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_HASH_REPLACE_OWF
mov esi, 0x800b
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_AES_128
mov esi, 0x660e
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_AES_192
mov esi, 0x660f
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_AES_256
mov esi, 0x6610
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_AES
mov esi, 0x6611
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SHA_256
mov esi, 0x800c
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SHA_384
mov esi, 0x800d
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
je 0x49f8a0
lea eax, [esp + 0xe0]
mov dword [esp], str.CALG_SHA_512
mov dword [esp + 4], eax
call sym._strcmp
test eax, eax
jne 0x4a093f
mov esi, 0x800e
jmp 0x49f8a0
and ecx, 0x20
je 0x4a0140
or dh, 0x1a
mov dword [esp + 0xd8], edx
jmp 0x49f25f
mov eax, ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0xc4], 0x7432a0
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x854]
test ebx, ebx
je 0x4a0324
mov dword [esp + 4], 0x5c
mov dword [esp], ebx
call sym._strchr
test eax, eax
mov edx, eax
je 0x4a0240
sub eax, ebx
mov ecx, 0xc
mov edi, str.CurrentUser
cmp eax, 0xc
mov dword [esp + 0x48], eax
mov esi, ebx
cmovle ecx, eax
cmp ecx, ecx
repe cmpsb byte [esi], byte es:[edi]
je 0x4a0480
mov eax, dword [esp + 0x48]
mov ecx, 0xd
mov edi, str.LocalMachine
mov esi, ebx
cmp eax, 0xd
cmovle ecx, eax
cmp ecx, ecx
repe cmpsb byte [esi], byte es:[edi]
je 0x4a053c
mov eax, dword [esp + 0x48]
mov ecx, 0xf
mov edi, str.CurrentService
mov esi, ebx
cmp eax, 0xf
cmovle ecx, eax
cmp ecx, ecx
repe cmpsb byte [esi], byte es:[edi]
je 0x4a0801
mov eax, dword [esp + 0x48]
mov ecx, 9
mov edi, str.Services
mov esi, ebx
cmp eax, 9
cmovle ecx, eax
cmp ecx, ecx
repe cmpsb byte [esi], byte es:[edi]
je 0x4a0844
mov edi, dword [esp + 0x48]
mov eax, 6
mov dword [esp + 4], str.Users
mov dword [esp], ebx
mov dword [esp + 0x4c], edx
cmp edi, 6
cmovle eax, edi
mov dword [esp + 8], eax
call sym._strncmp
test eax, eax
mov edx, dword [esp + 0x4c]
je 0x4a08a9
cmp edi, 0x17
mov esi, 0x17
mov eax, edi
cmovg eax, esi
mov dword [esp + 4], str.CurrentUserGroupPolicy
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 0x48], edx
call sym._strncmp
test eax, eax
mov edx, dword [esp + 0x48]
je 0x4a0911
cmp edi, 0x18
mov eax, 0x18
mov dword [esp + 4], str.LocalMachineGroupPolicy
cmovle eax, edi
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym._strncmp
test eax, eax
mov edx, dword [esp + 0x48]
je 0x4a091e
cmp edi, 0x17
mov eax, edi
mov dword [esp + 4], str.LocalMachineEnterprise
cmovg eax, esi
mov dword [esp], ebx
mov esi, 0x3a
mov dword [esp + 8], eax
call sym._strncmp
test eax, eax
mov edx, dword [esp + 0x48]
je 0x4a0932
cmp byte [ebx], 0
jne 0x4a0557
mov eax, dword [esp + 0x38]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.schannel:_Failed_to_get_certificate_location_or_file_for__s
mov dword [esp], eax
call sym._Curl_failf
jmp 0x49f649
or dh, 2
mov dword [esp + 0xd8], edx
jmp 0x49f25f
mov dword [esp + 0xc8], 8
jmp 0x49f86f
cmp dword [ebp + 0x358], 2
mov ebx, dword [ebp]
je 0x4a050e
mov eax, dword [ebp + 0x498]
test eax, eax
je 0x4a0504
cmp eax, 0x10000
je 0x4a0504
sar eax, 0x10
cmp eax, ecx
jl 0x49f86f
cmp ecx, 5
je 0x4a0851
jg 0x4a024a
cmp ecx, 4
jne 0x4a0258
mov edx, dword [esp + 0xc8]
or dl, 0x80
cmp eax, 4
mov dword [esp + 0xc8], edx
jle 0x49f86f
or dh, 2
cmp eax, 5
mov dword [esp + 0xc8], edx
jle 0x49f86f
or dh, 8
cmp eax, 6
mov dword [esp + 0xc8], edx
jle 0x49f86f
mov dword [esp + 4], str.schannel:_TLS_1.3_is_not_yet_supported
mov dword [esp], ebx
mov esi, 0x23
call sym._Curl_failf
jmp 0x49f649
mov edi, dword [esp + 0x40]
xor esi, esi
mov eax, dword [edi + 0x458]
mov dword [eax + 0x40], 0
mov byte [eax + 0x44], 0
mov byte [eax + 0x45], 0
mov byte [eax + 0x34], 0
mov dword [edi + 0x454], 1
jmp 0x49f649
mov esi, 0x3a
jmp 0x4a0112
cmp ecx, 6
je 0x4a085d
cmp ecx, 7
je 0x4a01ec
add ecx, 1
cmp ecx, eax
jle 0x4a0194
jmp 0x49f86f
mov dword [esp], 2
call dword [0x5bcc30]
mov ebx, eax
xor eax, eax
xor edx, edx
mov word [ebx + eax], dx
lea eax, [esp + 0xe0]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.CRYPT32.dll_PFXImportCertStore]
sub esp, 0xc
mov edi, eax
mov dword [esp], ebx
call dword [0x5bcc2c]
mov dword [esp], esi
call dword [0x5bcc2c]
test edi, edi
je 0x4a080e
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10001
mov dword [esp], edi
call dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
sub esp, 0x18
test eax, eax
mov dword [esp + 0x5c], eax
je 0x4a0869
lea eax, [esp + 0x5c]
mov dword [esp + 0xac], 1
mov dword [esp + 4], 0
mov dword [esp], edi
mov dword [esp + 0xb0], eax
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
sub esp, 8
mov edi, dword [esp + 0x40]
mov ebx, dword [edi + 0x458]
mov dword [esp + 4], 0x18
mov dword [esp], 1
call dword [0x5bcc20]
mov dword [ebx], eax
mov eax, dword [edi + 0x458]
mov eax, dword [eax]
test eax, eax
je 0x49f702
mov dword [eax + 0x10], 1
lea edx, [eax + 8]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x743284]
mov dword [esp + 8], 2
mov dword [esp + 4], str.Microsoft_Unified_Security_Protocol_Provider
mov dword [esp], 0
call dword [eax + 0xc]
sub esp, 0x24
mov ebx, eax
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4a03c2
mov dword [esp], eax
call dword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
sub esp, 4
test ebx, ebx
je 0x49f376
lea eax, [esp + 0xe0]
mov dword [esp + 8], 0x100
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._Curl_sspi_strerror
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.schannel:_AcquireCredentialsHandle_failed:__s
mov dword [esp], eax
call sym._Curl_failf
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0x458]
mov eax, dword [eax]
mov dword [esp], eax
call dword [0x5bcc2c]
mov eax, dword [esi + 0x458]
mov dword [eax], 0
xor eax, eax
cmp ebx, 0x80090300
setne al
mov esi, eax
lea esi, [esi*8 + 0x1b]
jmp 0x49f649
xor eax, eax
cmp dword [ebp + 0x40c], 0xffffffff
setne al
add eax, 0x47
shl eax, 4
cmp dword [ebp + eax], 2
je 0x4a06c0
mov ecx, dword [ebp + 0x4dc]
test ecx, ecx
je 0x49ffa8
mov ebx, dword [ebp + 0x4dc]
test ebx, ebx
jne 0x49f88a
xor eax, eax
jmp 0x49ff96
mov dword [esp + 0x48], 0x10000
lea esi, [edx + 1]
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call sym._strchr
test eax, eax
mov edi, eax
je 0x4a0240
mov byte [eax], 0
mov dword [esp], esi
call dword [0x5bcc24]
test eax, eax
mov ebx, eax
mov byte [edi], 0x5c
je 0x4a07ed
lea eax, [edi + 1]
mov dword [esp], eax
mov dword [esp + 0x4c], eax
call sym._strlen
cmp eax, 0x28
je 0x4a06f6
mov eax, dword [esp + 0x38]
mov esi, 0x3a
mov ebx, dword [eax + 0x854]
jmp 0x4a0112
mov dword [esp], ebx
call sym._strlen
mov esi, eax
cmp eax, 0x1f
mov eax, 0x1f
cmovae esi, eax
jmp 0x49f93a
mov eax, 6
jmp 0x4a018c
xor eax, eax
cmp dword [ebp + 0x40c], 0xffffffff
setne al
add eax, 0x47
shl eax, 4
cmp dword [ebp + eax], 2
je 0x4a0170
mov ecx, dword [ebp + 0x4c0]
mov eax, dword [ebp + 0x4c4]
jmp 0x4a0176
mov dword [esp + 0x48], 0x20000
jmp 0x4a0488
mov ebp, dword [esp + 0x48]
mov eax, 0x2d
jmp 0x49ff96
mov dword [esp], ebx
mov dword [esp + 4], 0x5de7c6
call sym._fopen
test eax, eax
mov ebx, eax
je 0x4a095d
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._fseek
test eax, eax
je 0x4a05c8
xor esi, esi
mov dword [esp], ebx
call sym._fclose
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x854]
mov dword [esp + 4], str.schannel:_Failed_to_read_cert_file__s
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._Curl_failf
mov dword [esp], esi
call dword [0x5bcc2c]
mov esi, 0x3a
jmp 0x49f649
mov dword [esp], ebx
call sym._ftell
test eax, eax
mov edi, eax
js 0x4a058d
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sym._fseek
test eax, eax
jne 0x4a058d
lea eax, [edi + 1]
mov dword [esp], eax
call dword [0x5bcc30]
test eax, eax
mov esi, eax
je 0x4a058d
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._fread
cmp eax, 1
jne 0x4a058f
mov dword [esp], ebx
call sym._fclose
mov eax, dword [esp + 0x38]
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe0], edi
mov eax, dword [eax + 0x864]
test eax, eax
je 0x4a0268
mov dword [esp], eax
call sym._strlen
lea edx, [eax + 1]
mov edi, eax
lea eax, [edx + edx]
mov dword [esp + 0x48], edx
mov dword [esp], eax
call dword [0x5bcc30]
test edi, edi
mov ebx, eax
mov edx, dword [esp + 0x48]
je 0x4a0277
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], edi
mov eax, dword [eax + 0x864]
mov dword [esp + 4], 8
mov dword [esp], 0xfde9
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sub esp, 0x18
test eax, eax
js 0x4a06b6
cmp edi, eax
jge 0x4a092b
xor eax, eax
mov word [ebx], ax
jmp 0x4a027f
mov eax, dword [ebp + 0x4b0]
test eax, eax
je 0x49ffa8
xor eax, eax
cmp dword [ebp + 0x40c], 0xffffffff
setne al
add eax, 0x47
shl eax, 4
cmp dword [ebp + eax], 2
jne 0x4a0462
mov ebx, dword [ebp + 0x4b0]
jmp 0x4a0468
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 9
or ah, 0x40
mov dword [esp + 0xc], eax
call dword [sym.imp.CRYPT32.dll_CertOpenStore]
sub esp, 0x14
test eax, eax
mov edi, eax
je 0x4a08d9
mov dword [esp], ebx
lea esi, [esp + 0x98]
call dword [0x5bcc2c]
lea eax, [esp + 0xe0]
mov dword [esp + 0x98], 0x14
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], 4
mov dword [esp + 4], 0x28
mov dword [esp], eax
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
sub esp, 0x1c
test eax, eax
je 0x4a07d0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x10000
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10001
mov dword [esp], edi
call dword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
sub esp, 0x18
test eax, eax
mov dword [esp + 0x5c], eax
jne 0x4a02fa
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
push esi
push esi
mov esi, 0x3a
jmp 0x49f649
mov eax, dword [esp + 0x38]
mov esi, 0x1b
mov ebx, dword [eax + 0x854]
jmp 0x4a0112
mov dword [esp + 0x48], 0x40000
jmp 0x4a0488
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x56
je 0x4a08b6
mov edi, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x854]
mov dword [esp + 4], str.schannel:_Failed_to_import_cert_file__s__last_error_is_0x_x
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._Curl_failf
jmp 0x4a05be
mov dword [esp + 0x48], 0x50000
jmp 0x4a0488
mov edx, dword [esp + 0xc8]
jmp 0x4a01c6
mov edx, dword [esp + 0xc8]
jmp 0x4a01d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x854]
mov dword [esp + 4], str.schannel:_Failed_to_get_certificate_from_file__s__last_error_is_0x_x
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._Curl_failf
mov dword [esp], edi
mov dword [esp + 4], 0
call dword [sym.imp.CRYPT32.dll_CertCloseStore]
push edi
push edi
jmp 0x4a05be
mov dword [esp + 0x48], 0x60000
jmp 0x4a0488
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x854]
mov dword [esp + 4], str.schannel:_Failed_to_import_cert_file__s__password_is_bad
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._Curl_failf
jmp 0x4a05be
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.schannel:_Failed_to_open_cert_store__x__s__last_error_is_0x_x
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call sym._Curl_failf
mov dword [esp], ebx
call dword [0x5bcc2c]
jmp 0x4a05be
mov dword [esp + 0x48], 0x70000
jmp 0x4a0488
mov dword [esp + 0x48], 0x80000
jmp 0x4a0488
add eax, eax
jmp 0x4a0279
mov dword [esp + 0x48], 0x90000
jmp 0x4a0488
mov eax, dword [esp + 0x38]
mov dword [esp + 4], str.Unable_to_set_ciphers_to_passed_via_SSL_CONN_CONFIG
mov esi, 0x3b
mov dword [esp], eax
call sym._Curl_failf
jmp 0x49f649
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x854]
jmp 0x4a011b