Function at 0x1401c0e90
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x268
mov rax, qword [rcx + 0x10]
mov rbx, qword [rax + 0x38]
mov r12, rdx
mov qword [rsp + 0x2b0], rcx
mov qword [rsp + 0x78], rax
call sym.Curl_ssl_cf_get_primary_config
mov rcx, qword [rsp + 0x2b0]
mov rdx, r12
mov rsi, rax
call sym.Curl_ssl_cf_get_config
mov dword [rsp + 0x20], 1
xor r8d, r8d
mov r9d, 2
mov edx, 1
mov ecx, 5
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xb0], 0
call sym.curlx_verify_windows_version
test r12, r12
setne byte [rsp + 0xa7]
test al, al
je 0x1401c0f4d
cmp byte [rsp + 0xa7], 0
je 0x1401c0f4d
test byte [r12 + 0x986], 0x20
je 0x1401c0f4d
mov rax, qword [r12 + 0x1120]
test rax, rax
je 0x1401c0f3e
cmp dword [rax + 8], 0
jle 0x1401c0f4d
lea rdx, str.schannel:_Windows_version_is_old_and_may_not_be_able_to_connect_to_some_servers_due_to_lack_of_SNI__algorithms__etc.
mov rcx, r12
call sym.Curl_infof
cmp qword [rsi + 8], 0
mov byte [rbx + 0x6b], 0
jne 0x1401c0f5f
cmp qword [rsi + 0x48], 0
je 0x1401c0fa2
mov dword [rsp + 0x20], 3
xor r8d, r8d
mov r9d, 2
mov edx, 1
mov ecx, 6
call sym.curlx_verify_windows_version
test al, al
je 0x1401c0f89
mov byte [rbx + 0x6c], 1
jmp 0x1401c0fa6
lea rdx, [0x140270969]
mov rcx, r12
mov ebp, 0x4d
call sym.Curl_failf
jmp 0x1401c242d
mov byte [rbx + 0x6c], 0
mov rax, qword [rsp + 0x98]
mov qword [rbx], 0
test byte [rax + 0x6c], 8
jne 0x1401c1023
mov rax, qword [rsp + 0x2b0]
mov rcx, rax
mov rsi, qword [rax + 0x10]
call sym.Curl_ssl_cf_get_primary_config
mov rcx, qword [rsp + 0x2b0]
mov rdx, r12
mov qword [rsp + 0x80], rax
call sym.Curl_ssl_cf_get_config
mov qword [rsp + 0xb8], 0
mov rdx, rax
mov rax, qword [rsi + 0x38]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x80]
mov cl, byte [rax + 0x6c]
test cl, 1
jne 0x1401c109b
mov dword [rsp + 0x68], 0x1808
jmp 0x1401c10da
mov rcx, r12
call sym.Curl_ssl_sessionid_lock
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x2b0]
mov rdx, r12
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0xb0]
lea r8, [rax + 8]
call sym.Curl_ssl_getsessionid
test al, al
jne 0x1401c1067
mov rax, qword [rsp + 0xb0]
mov qword [rbx], rax
inc dword [rax + 0x28]
mov rcx, r12
call sym.Curl_ssl_sessionid_unlock
cmp qword [rbx], 0
je 0x1401c0fbb
mov rax, qword [rsp + 0x78]
cmp dword [rax + 0x20], 0
je 0x1401c1dfe
cmp byte [rsp + 0xa7], 0
jne 0x1401c1dd1
jmp 0x1401c1dfe
mov rax, qword [rsp + 0x88]
mov r8b, byte [rdx + 0xb0]
cmp byte [rax + 0x6c], 1
sbb eax, eax
and eax, 0x18
add eax, 8
test r8b, 8
je 0x1401c10c1
or ah, 0x18
jmp 0x1401c10d6
mov edi, eax
or edi, 0x200
and r8b, 0x20
mov dword [rsp + 0x68], edi
je 0x1401c10da
or ah, 0x1a
mov dword [rsp + 0x68], eax
and cl, 2
jne 0x1401c10e4
or dword [rsp + 0x68], 4
cmp byte [rdx + 0xb0], 0
js 0x1401c111e
or dword [rsp + 0x68], 0x10
test r12, r12
je 0x1401c1150
test byte [r12 + 0x986], 0x20
je 0x1401c1150
mov rax, qword [r12 + 0x1120]
test rax, rax
je 0x1401c1115
cmp dword [rax + 8], 0
jle 0x1401c1150
lea rdx, str.schannel:_disabled_automatic_use_of_client_certificate
jmp 0x1401c1148
test r12, r12
je 0x1401c1150
test byte [r12 + 0x986], 0x20
je 0x1401c1150
mov rax, qword [r12 + 0x1120]
test rax, rax
je 0x1401c1141
cmp dword [rax + 8], 0
jle 0x1401c1150
lea rdx, str.schannel:_enabled_automatic_use_of_client_certificate
mov rcx, r12
call sym.Curl_infof
mov rax, qword [rsp + 0x80]
mov al, byte [rax + 0x68]
cmp al, 3
ja 0x1401c1168
cmp al, 1
jbe 0x1401c1173
jmp 0x1401c1253
sub eax, 4
cmp al, 3
ja 0x1401c126c
mov rcx, qword [rsp + 0x2b0]
call sym.Curl_ssl_cf_get_primary_config
movzx edi, byte [rax + 0x68]
mov eax, dword [rax + 0x64]
test eax, 0xfffeffff
jne 0x1401c11ba
mov dword [rsp + 0x20], 3
xor edx, edx
mov ecx, 0xa
mov r9d, 2
mov r8d, 0x4f7c
call sym.curlx_verify_windows_version
cmp al, 1
sbb eax, eax
xor ax, ax
add eax, 0x70000
mov dword [rsp + 0x70], 0
sar eax, 0x10
mov esi, eax
cmp edi, esi
jg 0x1401c123c
cmp edi, 6
je 0x1401c11f7
jg 0x1401c11e6
cmp edi, 4
je 0x1401c11ed
cmp edi, 5
jne 0x1401c1238
or dword [rsp + 0x70], 0x200
jmp 0x1401c1238
cmp edi, 7
je 0x1401c1201
jmp 0x1401c1238
or dword [rsp + 0x70], 0x80
jmp 0x1401c1238
or dword [rsp + 0x70], 0x800
jmp 0x1401c1238
mov dword [rsp + 0x20], 3
xor edx, edx
mov ecx, 0xa
mov r9d, 2
mov r8d, 0x4f7c
call sym.curlx_verify_windows_version
test al, al
je 0x1401c122f
or dword [rsp + 0x70], 0x2000
jmp 0x1401c1238
lea rdx, str.schannel:_TLS_1.3_not_supported_on_Windows_prior_to_11
jmp 0x1401c1273
inc edi
jmp 0x1401c11c7
mov rcx, qword [r12 + 0x530]
mov r15, qword [r12 + 0x558]
test rcx, rcx
jne 0x1401c128f
jmp 0x1401c1285
lea rdx, str.SSL_versions_not_supported
mov rcx, r12
mov ebp, 4
call sym.Curl_failf
jmp 0x1401c242d
lea rdx, str.Unrecognized_parameter_passed_via_CURLOPT_SSLVERSION
mov rcx, r12
call sym.Curl_failf
mov ebp, 0x23
jmp 0x1401c242d
test r15, r15
jne 0x1401c1294
jmp 0x1401c1587
test r15, r15
je 0x1401c12a6
mov rsi, qword [r15]
mov rbp, qword [r15 + 8]
xor r13d, r13d
xor r14d, r14d
jmp 0x1401c14e0
call sym.strdup
mov ebp, 0x1b
mov r13, rax
test rax, rax
je 0x1401c242d
mov edx, 0x5c
mov rcx, rax
call sym.strchr
mov rdi, rax
test rax, rax
je 0x1401c1487
mov rsi, rax
mov r8d, 0xc
lea rdx, str.CurrentUser
mov rcx, r13
sub rsi, r13
cmp rsi, 0xc
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c1400
cmp rsi, 0xd
mov r8d, 0xd
lea rdx, str.LocalMachine
mov rcx, r13
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c1407
cmp rsi, 0xf
mov r8d, 0xf
lea rdx, str.CurrentService
mov rcx, r13
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c140e
cmp rsi, 9
mov r8d, 9
lea rdx, str.Services
mov rcx, r13
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c1415
cmp rsi, 6
mov r8d, 6
lea rdx, str.Users
mov rcx, r13
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c141c
mov ebp, 0x17
cmp rsi, 0x17
lea rdx, str.CurrentUserGroupPolicy
mov rcx, r13
mov r8, rbp
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c1423
cmp rsi, 0x18
mov r8d, 0x18
lea rdx, str.LocalMachineGroupPolicy
mov rcx, r13
cmovbe r8, rsi
call sym.strncmp
test eax, eax
je 0x1401c142a
cmp rsi, 0x17
mov r8, rbp
lea rdx, str.LocalMachineEnterprise
mov rcx, r13
cmovbe r8, rsi
mov esi, 0x90000
call sym.strncmp
test eax, eax
je 0x1401c142f
jmp 0x1401c1485
mov esi, 0x10000
jmp 0x1401c142f
mov esi, 0x20000
jmp 0x1401c142f
mov esi, 0x40000
jmp 0x1401c142f
mov esi, 0x50000
jmp 0x1401c142f
mov esi, 0x60000
jmp 0x1401c142f
mov esi, 0x70000
jmp 0x1401c142f
mov esi, 0x80000
lea r14, [rdi + 1]
mov edx, 0x5c
mov rcx, r14
call sym.strchr
mov rbp, rax
test rax, rax
je 0x1401c2404
lea rdi, [rax + 1]
mov rcx, rdi
call sym.strlen
cmp rax, 0x28
jne 0x1401c1489
mov rax, qword [0x14027ac00]
mov byte [rbp], 0
mov rcx, r14
call qword [rax]
mov byte [rbp], 0x5c
mov r10, rax
test rax, rax
je 0x1401c240b
xor r14d, r14d
xor ebp, ebp
jmp 0x1401c14b1
xor edi, edi
xor esi, esi
mov ebp, 0x3a
mov rcx, qword [r12 + 0x530]
cmp byte [rcx], 0
je 0x1401c2415
lea rdx, [0x140270b3f]
call sym.curlx_win32_fopen
xor r10d, r10d
mov r14, rax
test ebp, ebp
je 0x1401c14d3
test r14, r14
jne 0x1401c14dc
mov r8, qword [r12 + 0x530]
lea rdx, str.schannel:_Failed_to_get_certificate_location_or_file_for__s
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c1536
test r14, r14
je 0x1401c2089
xor esi, esi
xor ebp, ebp
mov rcx, qword [r12 + 0x5a0]
test rcx, rcx
je 0x1401c2196
lea rdx, [0x140270b7e]
call sym.curl_strequal
test eax, eax
jne 0x1401c2196
lea r8, [0x1402708c0]
test r15, r15
jne 0x1401c1519
mov r8, qword [r12 + 0x530]
lea rdx, str.schannel:_certificate_format_compatibility_error__for__s
mov rcx, r12
mov ebp, 0x3a
call sym.Curl_failf
test r13, r13
je 0x1401c242d
mov rcx, r13
call sym.free
jmp 0x1401c242d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
mov rcx, r14
mov edx, 0x10001
mov qword [rsp + 0x28], 0
mov r9d, 0x10000
call qword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov rcx, r13
mov rsi, rax
mov qword [rsp + 0xb8], rax
call sym.free
test rsi, rsi
je 0x1401c2186
mov r15, r14
mov rax, qword [0x14027aba0]
mov edx, 0x30
mov ecx, 1
call qword [rax]
mov rdi, qword [rsp + 0x88]
mov qword [rdi], rax
test rax, rax
jne 0x1401c15e5
mov rcx, r12
lea rdx, str.schannel:_unable_to_allocate_memory
call sym.Curl_failf
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x1401c15cc
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
test r15, r15
je 0x1401c1fb5
xor edx, edx
mov rcx, r15
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x1401c1fb5
mov qword [rax + 0x20], r15
mov dword [rax + 0x28], 1
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x20], 0
lea rax, [rsp + 0x110]
mov qword [rsp + 0x90], rax
jne 0x1401c1a98
mov dword [rsp + 0x20], 3
mov r9d, 2
mov r8d, 0x4563
xor edx, edx
mov ecx, 0xa
call sym.curlx_verify_windows_version
mov esi, eax
test al, al
je 0x1401c1a98
mov rdi, qword [rsp + 0x90]
xor eax, eax
mov ecx, 0x12
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0xe8]
mov ecx, 0xa
mov qword [rsp + 0xd0], 0
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x160]
mov ecx, 0x30
mov qword [rsp + 0xd8], 0
rep stosd dword [rdi], eax
mov rax, qword [rsp + 0x80]
mov r14, qword [rax + 0x28]
test r14, r14
jne 0x1401c16be
xor r13d, r13d
xor edi, edi
xor r15d, r15d
xor ebp, ebp
xor esi, esi
jmp 0x1401c185f
mov r13d, esi
mov edi, esi
mov r15d, esi
mov ebp, esi
mov dword [rsp + 0x90], 0
cmp byte [r14], 0
je 0x1401c1835
cmp dword [rsp + 0x90], 5
je 0x1401c1835
mov edx, 0x3a
mov rcx, r14
call sym.strchr
mov qword [rsp + 0x80], rax
test rax, rax
je 0x1401c170d
mov r8, rax
sub r8, r14
jmp 0x1401c1718
mov rcx, r14
call sym.strlen
mov r8, rax
test sil, sil
je 0x1401c1744
mov rdx, r14
lea rcx, str.TLS_AES_256_GCM_SHA384
mov qword [rsp + 0xa8], r8
call sym.algo
mov r8, qword [rsp + 0xa8]
test al, al
jne 0x1401c17ff
test bpl, bpl
je 0x1401c1770
mov rdx, r14
lea rcx, str.TLS_AES_128_GCM_SHA256
mov qword [rsp + 0xa8], r8
call sym.algo
mov r8, qword [rsp + 0xa8]
test al, al
jne 0x1401c1803
test r15b, r15b
je 0x1401c1798
mov rdx, r14
lea rcx, str.TLS_CHACHA20_POLY1305_SHA256
mov qword [rsp + 0xa8], r8
call sym.algo
mov r8, qword [rsp + 0xa8]
test al, al
jne 0x1401c1807
test dil, dil
je 0x1401c17c0
mov rdx, r14
lea rcx, str.TLS_AES_128_CCM_8_SHA256
mov qword [rsp + 0xa8], r8
call sym.algo
mov r8, qword [rsp + 0xa8]
test al, al
jne 0x1401c180c
test r13b, r13b
je 0x1401c17e8
mov rdx, r14
lea rcx, str.TLS_AES_128_CCM_SHA256
mov qword [rsp + 0xa8], r8
call sym.algo
mov r8, qword [rsp + 0xa8]
test al, al
jne 0x1401c1810
mov r9, r14
lea rdx, str.schannel:_Unknown_TLS_1.3_cipher:__.s
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c1d1e
xor esi, esi
jmp 0x1401c1813
xor ebp, ebp
jmp 0x1401c1813
xor r15d, r15d
jmp 0x1401c1813
xor edi, edi
jmp 0x1401c1813
xor r13d, r13d
cmp qword [rsp + 0x80], 0
je 0x1401c1835
mov r14, qword [rsp + 0x80]
inc dword [rsp + 0x90]
inc r14
jmp 0x1401c16d3
test sil, sil
je 0x1401c185a
test bpl, bpl
je 0x1401c185a
test r15b, r15b
je 0x1401c185a
test dil, dil
je 0x1401c185f
lea rdx, str.schannel:_All_available_TLS_1.3_ciphers_were_disabled
test r13b, r13b
je 0x1401c186a
jmp 0x1401c1c6c
test dil, dil
jne 0x1401c186a
xor eax, eax
test r13b, r13b
je 0x1401c18f0
lea rax, str.ChainingModeCCM
mov dword [rsp + 0xc0], 0x200020
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x180], rax
lea rax, [0x140270dfa]
mov qword [rsp + 0x170], rax
mov eax, 1
mov dword [rsp + 0x160], 2
mov dword [rsp + 0x178], 1
mov dword [rsp + 0x168], 0x80008
cmp dil, r13b
je 0x1401c18f0
test dil, dil
je 0x1401c18e0
mov dword [rsp + 0x188], pe_nt_image_headers64
jmp 0x1401c18f0
mov dword [rsp + 0x18c], 0x40
mov eax, 1
test sil, sil
jne 0x1401c18fe
test bpl, bpl
je 0x1401c19a3
lea rdi, str.ChainingModeGCM
cmp sil, bpl
movsxd rdx, eax
mov dword [rsp + 0xd0], 0x200020
mov qword [rsp + 0xd8], rdi
je 0x1401c1959
imul rcx, rdx, 0x30
lea r8, str.SHA384
test sil, sil
lea r9, str.SHA256
cmove r8, r9
mov dword [rsp + rcx + 0x160], 3
mov dword [rsp + rcx + 0x168], 0x80008
mov qword [rsp + rcx + 0x170], r8
jmp 0x1401c1982
imul rcx, rdx, 0x30
lea rdi, [0x140270dfa]
mov dword [rsp + rcx + 0x160], 2
mov dword [rsp + rcx + 0x168], 0x80008
mov qword [rsp + rcx + 0x170], rdi
imul rdx, rdx, 0x30
lea rcx, [rsp + 0xd0]
inc eax
mov qword [rsp + rdx + 0x180], rcx
mov dword [rsp + rdx + 0x178], 1
test r15b, r15b
je 0x1401c19d6
movsxd rdx, eax
lea rdi, str.CHACHA20_POLY1305
inc eax
imul rdx, rdx, 0x30
mov dword [rsp + rdx + 0x160], 2
mov dword [rsp + rdx + 0x168], 0x240024
mov qword [rsp + rdx + 0x170], rdi
mov dword [rsp + 0xfc], eax
lea rax, [rsp + 0xe8]
lea rdx, [rsp + 0x160]
mov qword [rsp + 0x150], rax
mov eax, dword [rsp + 0x68]
mov qword [rsp + 0x100], rdx
mov dword [rsp + 0x148], 1
or eax, 0x400000
cmp qword [rsp + 0xb8], 0
mov dword [rsp + 0x144], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x110], 5
not eax
mov dword [rsp + 0xf8], eax
je 0x1401c1a56
lea rax, [rsp + 0xb8]
mov dword [rsp + 0x118], 1
mov qword [rsp + 0x120], rax
mov rax, qword [rsp + 0x88]
mov rdx, qword [0x14027af30]
mov rax, qword [rax]
mov r10, qword [rdx]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rdx, [rax + 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x40], rdx
jmp 0x1401c1cec
mov rax, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x90]
mov ecx, 0x14
mov r13, qword [rax + 0x20]
xor eax, eax
rep stosd dword [rdi], eax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x110], 4
mov dword [rsp + 0x158], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x148], eax
test r13, r13
je 0x1401c1c79
bt eax, 0xd
jae 0x1401c1b12
test byte [r12 + 0x986], 0x20
je 0x1401c1b12
mov rax, qword [r12 + 0x1120]
test rax, rax
je 0x1401c1b03
cmp dword [rax + 8], 0
jle 0x1401c1b12
lea rdx, str.schannel:_WARNING:_This_version_of_Schannel_may_negotiate_a_less_secure_TLS_version_than_TLS_1.3_because_the_user_set_an_algorithm_cipher_list.
mov rcx, r12
call sym.Curl_infof
mov rax, qword [rsp + 0x80]
lea rdx, str.schannel:_This_version_of_Schannel_does_not_support_setting_an_algorithm_cipher_list_and_TLS_1.3_cipher_list_at_the_same_time
cmp qword [rax + 0x28], 0
jne 0x1401c1c6c
xor edi, edi
lea r14, str.SCH_USE_STRONG_CRYPTO
lea r15, str.CALG_MD2
cmp byte [r13], 0
je 0x1401c1c4c
cmp edi, 0x2e
jg 0x1401c1c4c
xor r8d, r8d
xor edx, edx
mov rcx, r13
call sym.strtol
mov esi, eax
test eax, eax
jne 0x1401c1bea
mov edx, 0x3a
mov rcx, r13
call sym.strchr
mov r8, rax
test rax, rax
je 0x1401c1b81
sub r8, r13
jmp 0x1401c1b8c
mov rcx, r13
call sym.strlen
mov r8, rax
lea rbp, str.CALG_MD2
mov rcx, qword [rbp]
test rcx, rcx
je 0x1401c1bf8
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x68], rcx
call sym.strlen
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
cmp rax, r8
jne 0x1401c1be2
mov rdx, r13
mov qword [rsp + 0x68], r8
call sym.strncmp
mov r8, qword [rsp + 0x68]
test eax, eax
jne 0x1401c1be2
movsxd rsi, esi
shl rsi, 4
mov esi, dword [r15 + rsi + 8]
test esi, esi
je 0x1401c1bf8
jmp 0x1401c1bea
inc esi
add rbp, 0x10
jmp 0x1401c1b93
movsxd rax, edi
inc edi
mov dword [rsp + rax*4 + 0x160], esi
jmp 0x1401c1c31
mov r8d, 0x11
lea rdx, str.USE_STRONG_CRYPTO
mov rcx, r13
call sym.strncmp
test eax, eax
je 0x1401c1c26
mov r8d, 0x15
mov rdx, r14
mov rcx, r13
call sym.strncmp
test eax, eax
jne 0x1401c1c65
or dword [rsp + 0x158], 0x400000
mov edx, 0x3a
mov rcx, r13
call sym.strchr
test rax, rax
je 0x1401c1c4c
lea r13, [rax + 1]
jmp 0x1401c1b3c
lea rax, [rsp + 0x160]
mov dword [rsp + 0x138], edi
mov qword [rsp + 0x140], rax
jmp 0x1401c1c89
lea rdx, str.schannel:_Failed_setting_algorithm_cipher_list
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c1d1e
mov eax, dword [rsp + 0x68]
or eax, 0x400000
mov dword [rsp + 0x158], eax
cmp qword [rsp + 0xb8], 0
je 0x1401c1caf
lea rax, [rsp + 0xb8]
mov dword [rsp + 0x114], 1
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x88]
mov rdx, qword [0x14027af30]
mov rax, qword [rax]
mov r10, qword [rdx]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
lea rdx, [rax + 0x10]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x40], rdx
xor ecx, ecx
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, 2
lea rdx, str.Microsoft_Unified_Security_Protocol_Provider
call qword [r10 + 0x18]
mov rcx, qword [rsp + 0xb8]
mov esi, eax
test rcx, rcx
je 0x1401c1d28
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
jmp 0x1401c1d28
mov ebp, 0x3b
jmp 0x1401c242d
test esi, esi
jne 0x1401c1d50
mov dword [rsp + 0xb8], 0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x18]
test rcx, rcx
jne 0x1401c1db2
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 8]
jmp 0x1401c1db2
lea rdx, [rsp + 0x160]
mov r8d, 0x100
mov ecx, esi
xor ebp, ebp
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_AcquireCredentialsHandle_failed:__s
mov rcx, r12
mov r8, rax
call sym.Curl_failf
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax]
mov rax, qword [0x14027abd0]
call qword [rax]
mov rax, qword [rsp + 0x88]
cmp esi, 0x80090300
setne bpl
mov qword [rax], 0
lea ebp, [rbp*8 + 0x1b]
jmp 0x1401c242d
mov rsi, qword [rbx]
mov ebp, 0x1b
call sym.strdup
mov qword [rsi + 0x18], rax
test rax, rax
jne 0x1401c1079
jmp 0x1401c242d
test byte [r12 + 0x986], 0x20
je 0x1401c1dfe
mov rax, qword [r12 + 0x1120]
test rax, rax
je 0x1401c1def
cmp dword [rax + 8], 0
jle 0x1401c1dfe
lea rdx, str.schannel:_using_IP_address__SNI_is_not_supported_by_OS.
mov rcx, r12
call sym.Curl_infof
lea rax, [rsp + 0xe8]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0x118], rax
mov eax, 1
shl rax, 0x20
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x110], rax
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xf0], 0
cmp byte [rax + 0xb0], 0
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xc8], 0
mov dword [rbx + 0x5c], 0x811c
js 0x1401c1e86
mov dword [rbx + 0x5c], 0x819c
mov rax, qword [0x14027aba0]
mov edx, 0x18
mov ecx, 1
call qword [rax]
mov qword [rbx + 8], rax
test rax, rax
jne 0x1401c1eb6
lea rdx, str.schannel:_unable_to_allocate_memory
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c1fb5
cmp byte [rbx + 0x6b], 0
lea r11, [rbx + 0x60]
mov r9d, dword [rbx + 0x5c]
lea rdi, [rax + 0x10]
mov rsi, qword [0x14027af30]
mov ecx, 0
mov rdx, qword [rsi]
mov r10, qword [rdx + 0x30]
lea rdx, [rsp + 0x110]
cmove rdx, rcx
mov rcx, qword [rbx]
mov r8, qword [rcx + 0x18]
mov qword [rsp + 0x50], r11
lea r11, [rsp + 0xd0]
mov qword [rsp + 0x30], rdx
xor edx, edx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call r10
mov r13d, eax
cmp eax, 0x90312
je 0x1401c1fe4
mov rax, qword [0x14027abd0]
mov rcx, qword [rbx + 8]
call qword [rax]
cmp r13d, 0x80090300
mov qword [rbx + 8], 0
lea rdx, [rsp + 0x160]
je 0x1401c1f93
cmp r13d, 0x80090322
jne 0x1401c1fbf
mov r8d, 0x100
mov ecx, 0x80090322
mov ebp, 0x3c
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_SNI_or_certificate_check_failed:__s
mov rcx, r12
mov r8, rax
call sym.Curl_failf
jmp 0x1401c242d
mov r8d, 0x100
mov ecx, 0x80090300
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_initial_InitializeSecurityContext_failed:__s
mov rcx, r12
mov r8, rax
call sym.Curl_failf
mov ebp, 0x1b
jmp 0x1401c242d
mov ecx, r13d
mov r8d, 0x100
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_initial_InitializeSecurityContext_failed:__s
mov rcx, r12
mov r8, rax
call sym.Curl_failf
jmp 0x1401c127b
mov rax, qword [rsp + 0x2b0]
mov r8, qword [rsp + 0xc8]
mov rdx, r12
mov r9d, dword [rsp + 0xc0]
mov rcx, qword [rax + 8]
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
call sym.Curl_conn_cf_send
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsi]
call qword [rax + pe_nt_image_headers64]
mov ebp, dword [rsp + 0xb8]
mov r8, qword [rsp + 0x68]
test ebp, ebp
jne 0x1401c2047
mov eax, dword [rsp + 0xc0]
cmp rax, r8
je 0x1401c2063
mov r9d, dword [rsp + 0xc0]
lea rdx, str.schannel:_failed_to_send_initial_handshake_data:_sent__zd_of__lu_bytes
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c127b
mov rax, qword [rsp + 0x78]
mov dword [rbx + 0x64], 0
mov word [rbx + 0x68], 0
mov byte [rbx + 0x6a], 0
mov byte [rbx + 0x58], 0
mov dword [rax + 4], 1
jmp 0x1401c242d
mov r9d, esi
mov qword [rsp + 0x20], r10
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x90], r10
or r9d, 0x4000
mov ecx, 9
call qword [sym.imp.CRYPT32.dll_CertOpenStore]
mov rbp, qword [0x14027abd0]
mov r10, qword [rsp + 0x90]
test rax, rax
mov r14, rax
jne 0x1401c2122
mov rcx, r10
mov qword [rsp + 0x68], r10
call sym.strdup
mov r14, rax
call qword [sym.imp.kernel32.dll_GetLastError]
test r14, r14
mov rcx, r12
mov r8d, esi
mov dword [rsp + 0x20], eax
lea r9, [0x1402708ce]
lea rdx, str.schannel:_Failed_to_open_cert_store__lx__s__last_error_is_0x_lx
cmovne r9, r14
call sym.Curl_failf
mov r10, qword [rsp + 0x68]
mov rcx, r10
call qword [rbp]
test r14, r14
je 0x1401c2420
mov rcx, r14
call sym.free
jmp 0x1401c2420
mov rcx, r10
lea rsi, [rsp + 0x110]
call qword [rbp]
mov qword [rsp + 0x20], rsi
mov edx, 0x28
mov rcx, rdi
lea r9, [rsp + 0x160]
mov r8d, 4
mov dword [rsp + 0x110], 0x14
mov qword [rsp + 0x118], r9
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x1401c1543
mov rcx, r13
call sym.free
xor edx, edx
mov rcx, r14
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x1401c2428
test r15, r15
jne 0x1401c21aa
mov rdi, qword [r12 + 0x530]
test r13, r13
jne 0x1401c21b6
jmp 0x1401c21c7
lea rdi, [0x1402708c0]
test r13, r13
je 0x1401c21be
mov rcx, r13
call sym.free
test r14, r14
je 0x1401c227f
xor edx, edx
mov r8d, 2
mov rcx, r14
call sym.fseek
mov edx, eax
xor eax, eax
test edx, edx
jne 0x1401c21fc
mov rcx, r14
mov dword [rsp + 0x90], edx
xor r13d, r13d
call sym.ftell
mov edx, dword [rsp + 0x90]
test eax, eax
js 0x1401c2228
movsxd rbp, eax
xor r13d, r13d
test edx, edx
jne 0x1401c2228
xor r8d, r8d
mov rcx, r14
call sym.fseek
test eax, eax
jne 0x1401c2228
mov rax, qword [0x14027abe0]
lea rcx, [rbp + 1]
mov r13b, 1
call qword [rax]
mov rsi, rax
test rsi, rsi
jne 0x1401c2232
xor r13d, r13d
jmp 0x1401c224a
mov r9, r14
mov r8d, 1
mov rdx, rbp
mov rcx, rsi
call sym.fread
dec eax
jne 0x1401c222d
mov rcx, r14
call sym.fclose
test r13b, r13b
jne 0x1401c227f
mov r8, qword [r12 + 0x530]
mov rcx, r12
lea rdx, str.schannel:_Failed_to_read_cert_file__s
call sym.Curl_failf
mov rax, qword [0x14027abd0]
mov rcx, rsi
call qword [rax]
jmp 0x1401c2428
mov rcx, qword [r12 + 0x5c0]
mov dword [rsp + 0x160], ebp
xor ebp, ebp
mov qword [rsp + 0x168], rsi
test rcx, rcx
je 0x1401c22a5
call sym.strlen
mov rbp, rax
mov rax, qword [0x14027abe0]
lea rcx, [rbp + 1]
add rcx, rcx
call qword [rax]
mov r13, rax
test rax, rax
je 0x1401c235e
xor eax, eax
test rbp, rbp
je 0x1401c22f7
lea eax, [rbp + 1]
mov qword [rsp + 0x20], r13
mov r9d, ebp
mov edx, 8
mov dword [rsp + 0x28], eax
mov r8, qword [r12 + 0x5c0]
mov ecx, 0xfde9
call qword [sym.imp.kernel32.dll_MultiByteToWideChar]
test eax, eax
js 0x1401c2303
cmp ebp, eax
jl 0x1401c2303
cdqe
mov word [r13 + rax*2], 0
jmp 0x1401c230a
mov word [r13], 0
xor r8d, r8d
xor edx, edx
mov ecx, 6
mov r9d, 2
mov dword [rsp + 0x20], 3
call sym.curlx_verify_windows_version
lea rcx, [rsp + 0x160]
mov r8d, 0x8000
test al, al
mov rax, qword [sym.imp.CRYPT32.dll_PFXImportCertStore]
jne 0x1401c2343
xor r8d, r8d
mov rdx, r13
call rax
mov rcx, r13
mov r14, rax
mov rax, qword [0x14027abd0]
call qword [rax]
test r15, r15
jne 0x1401c2372
jmp 0x1401c2366
test r15, r15
jne 0x1401c2377
xor r14d, r14d
mov rax, qword [0x14027abd0]
mov rcx, rsi
call qword [rax]
test r14, r14
jne 0x1401c23ad
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8, rdi
mov r9d, eax
cmp eax, 0x56
jne 0x1401c239c
lea rdx, str.schannel:_Failed_to_import_cert_file__s__password_is_bad
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c2428
lea rdx, str.schannel:_Failed_to_import_cert_file__s__last_error_is_0x_lx
mov rcx, r12
call sym.Curl_failf
jmp 0x1401c2428
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10001
mov rcx, r14
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov qword [rsp + 0xb8], rax
test rax, rax
jne 0x1401c1584
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8, rdi
lea rdx, str.schannel:_Failed_to_get_certificate_from_file__s__last_error_is_0x_lx
mov rcx, r12
mov r9d, eax
call sym.Curl_failf
jmp 0x1401c2186
xor edi, edi
jmp 0x1401c1489
mov ebp, 0x1b
jmp 0x1401c148e
xor r10d, r10d
xor r14d, r14d
jmp 0x1401c14b1
mov rcx, r13
call sym.free
mov ebp, 0x3a
mov eax, ebp
add rsp, 0x268
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret