Function at 0x1401e2220
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax + 0x30]
mov rbx, rdx
mov qword [rsp + 0x2a0], rcx
mov qword [rsp + 0x88], rax
call sym.Curl_ssl_cf_get_primary_config
mov rcx, qword [rsp + 0x2a0]
mov rdx, rbx
mov rdi, rax
call sym.Curl_ssl_cf_get_config
xor r9d, r9d
xor r8d, r8d
mov edx, 1
mov dword [rsp + 0x20], 1
mov ecx, 5
mov qword [rsp + 0xa0], r9
mov r9d, 2
mov qword [rsp + 0x90], rax
call sym.curlx_verify_windows_version
test rbx, rbx
setne byte [rsp + 0x9f]
test al, al
je 0x1401e22ca
cmp byte [rsp + 0x9f], 0
je 0x1401e22ca
test byte [rbx + 0xa0e], 0x20
je 0x1401e22ca
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, rbx
call sym.Curl_infof
cmp qword [rdi + 8], 0
mov byte [rsi + 0x6b], 0
jne 0x1401e22dc
cmp qword [rdi + 0x48], 0
je 0x1401e231a
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
jne 0x1401e231c
lea rdx, [0x14028de61]
mov rcx, rbx
mov r15d, 0x4d
call sym.Curl_failf
jmp 0x1401e3627
xor eax, eax
mov byte [rsi + 0x6c], al
mov rax, qword [rsp + 0x90]
xor r8d, r8d
mov qword [rsi], r8
test byte [rax + 0x6c], 8
jne 0x1401e238c
mov rax, qword [rsp + 0x2a0]
mov rcx, rax
mov rdi, qword [rax + 0x10]
call sym.Curl_ssl_cf_get_primary_config
mov rcx, qword [rsp + 0x2a0]
mov rdx, rbx
mov qword [rsp + 0x68], rax
call sym.Curl_ssl_cf_get_config
mov rdi, qword [rdi + 0x30]
xor ecx, ecx
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x80], rdi
mov rdi, qword [rsp + 0x68]
mov cl, byte [rdi + 0x6c]
test cl, 1
jne 0x1401e23f8
mov dword [rsp + 0x78], 0x1808
jmp 0x1401e243a
mov rcx, rbx
call sym.Curl_ssl_sessionid_lock
mov rcx, qword [rsp + 0x2a0]
xor r9d, r9d
mov rdx, rbx
lea r8, [rsp + 0xa0]
call sym.Curl_ssl_getsessionid
test al, al
jne 0x1401e23c1
mov rax, qword [rsp + 0xa0]
mov qword [rsi], rax
inc dword [rax + 0x28]
mov rcx, rbx
call sym.Curl_ssl_sessionid_unlock
cmp qword [rsi], 0
je 0x1401e2333
mov rax, qword [rsp + 0x88]
test byte [rax + 0x20], 1
je 0x1401e3393
cmp byte [rsp + 0x9f], 0
jne 0x1401e337b
jmp 0x1401e3393
mov rdi, qword [rsp + 0x80]
mov r8b, byte [rax + 0xb0]
cmp byte [rdi + 0x6c], 1
sbb edx, edx
and edx, 0x18
add edx, 8
test r8d, 8
je 0x1401e2421
or dh, 0x18
jmp 0x1401e2436
mov edi, edx
or edi, 0x200
and r8d, 0x20
mov dword [rsp + 0x78], edi
je 0x1401e243a
or dh, 0x1a
mov dword [rsp + 0x78], edx
and cl, 2
jne 0x1401e2444
or dword [rsp + 0x78], 4
cmp byte [rax + 0xb0], 0
js 0x1401e2473
test rbx, rbx
je 0x1401e245b
test byte [rbx + 0xa0e], 0x20
jne 0x1401e2462
or dword [rsp + 0x78], 0x10
jmp 0x1401e2490
lea rdx, str.schannel:_disabled_automatic_use_of_client_certificate
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401e245b
test rbx, rbx
je 0x1401e2490
test byte [rbx + 0xa0e], 0x20
je 0x1401e2490
lea rdx, str.schannel:_enabled_automatic_use_of_client_certificate
mov rcx, rbx
call sym.Curl_infof
mov rax, qword [rsp + 0x68]
mov al, byte [rax + 0x68]
cmp al, 3
ja 0x1401e24a5
cmp al, 1
jbe 0x1401e24b0
jmp 0x1401e2597
sub eax, 4
cmp al, 3
ja 0x1401e25b1
mov rcx, qword [rsp + 0x2a0]
call sym.Curl_ssl_cf_get_primary_config
movzx ebp, byte [rax + 0x68]
mov eax, dword [rax + 0x64]
test eax, 0xfffeffff
jne 0x1401e24f7
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
xor edx, edx
sar eax, 0x10
mov dword [rsp + 0x7c], edx
mov edi, eax
cmp ebp, edi
jg 0x1401e2582
cmp ebp, 6
je 0x1401e2532
jg 0x1401e2521
cmp ebp, 4
je 0x1401e2528
cmp ebp, 5
jne 0x1401e257e
or dword [rsp + 0x7c], 0x200
jmp 0x1401e257e
cmp ebp, 7
je 0x1401e253c
jmp 0x1401e257e
or dword [rsp + 0x7c], 0x80
jmp 0x1401e257e
or dword [rsp + 0x7c], 0x800
jmp 0x1401e257e
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 0x1401e256a
or dword [rsp + 0x7c], 0x2000
jmp 0x1401e257e
lea rdx, str.schannel:_TLS_1.3_not_supported_on_Windows_prior_to_11
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e3559
inc ebp
jmp 0x1401e2502
mov rcx, qword [rbx + 0x518]
mov r12, qword [rbx + 0x540]
test rcx, rcx
jne 0x1401e25c4
jmp 0x1401e25ba
lea rdx, str.SSL_versions_not_supported
mov rcx, rbx
mov r15d, 4
call sym.Curl_failf
jmp 0x1401e3627
lea rdx, str.Unrecognized_parameter_passed_via_CURLOPT_SSLVERSION
jmp 0x1401e2571
test r12, r12
jne 0x1401e25c9
jmp 0x1401e2c0f
test r12, r12
je 0x1401e25db
mov r13, qword [r12]
mov r15, qword [r12 + 8]
xor edi, edi
xor ebp, ebp
jmp 0x1401e281b
call sym.strdup
mov r15d, 0x1b
mov rdi, rax
test rax, rax
je 0x1401e3627
mov edx, 0x5c
mov rcx, rax
call sym.strchr
mov r14, rax
test rax, rax
je 0x1401e27b8
mov rbp, rax
mov r8d, 0xc
lea rdx, str.CurrentUser
mov rcx, rdi
sub rbp, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2729
mov r8d, 0xd
lea rdx, str.LocalMachine
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2731
mov r8d, 0xf
lea rdx, str.CurrentService
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2739
mov r8d, 9
lea rdx, str.Services
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2741
mov r8d, 6
lea rdx, str.Users
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2749
mov r13d, 0x17
lea rdx, str.CurrentUserGroupPolicy
mov rcx, rdi
cmp rbp, r13
cmovbe r13, rbp
mov r8, r13
call sym.strncmp
test eax, eax
je 0x1401e2751
mov r8d, 0x18
lea rdx, str.LocalMachineGroupPolicy
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x1401e2759
mov r8, r13
lea rdx, str.LocalMachineEnterprise
mov rcx, rdi
mov r13d, 0x90000
call sym.strncmp
test eax, eax
je 0x1401e275f
jmp 0x1401e27b5
mov r13d, 0x10000
jmp 0x1401e275f
mov r13d, 0x20000
jmp 0x1401e275f
mov r13d, 0x40000
jmp 0x1401e275f
mov r13d, 0x50000
jmp 0x1401e275f
mov r13d, 0x60000
jmp 0x1401e275f
mov r13d, 0x70000
jmp 0x1401e275f
mov r13d, 0x80000
lea rbp, [r14 + 1]
mov edx, 0x5c
mov rcx, rbp
call sym.strchr
mov r15, rax
test rax, rax
je 0x1401e360a
lea r14, [rax + 1]
mov rcx, r14
call sym.strlen
cmp rax, 0x28
jne 0x1401e27bb
mov rax, qword [0x140297bf0]
mov byte [r15], 0
mov rcx, rbp
call qword [rax]
mov byte [r15], 0x5c
mov r10, rax
test rax, rax
je 0x1401e3612
xor ebp, ebp
xor r15d, r15d
jmp 0x1401e27e3
xor r14d, r14d
xor r13d, r13d
mov r15d, 0x3a
mov rcx, qword [rbx + 0x518]
cmp byte [rcx], 0
je 0x1401e361d
lea rdx, [0x14028e037]
call sym.curlx_win32_fopen
xor r10d, r10d
mov rbp, rax
test r15d, r15d
je 0x1401e2810
test rbp, rbp
jne 0x1401e2815
mov r8, qword [rbx + 0x518]
mov rcx, rbx
lea rdx, str.schannel:_Failed_to_get_certificate_location_or_file_for__s
call sym.Curl_failf
mov rcx, rdi
call sym.free
jmp 0x1401e3627
test rbp, rbp
je 0x1401e286b
xor r13d, r13d
xor r15d, r15d
mov rcx, qword [rbx + 0x588]
test rcx, rcx
je 0x1401e28ac
lea rdx, [0x14028e076]
call sym.curl_strequal
test eax, eax
jne 0x1401e28ac
lea r8, [0x14028ddb0]
test r12, r12
jne 0x1401e284e
mov r8, qword [rbx + 0x518]
lea rdx, str.schannel:_certificate_format_compatibility_error__for__s
mov rcx, rbx
call sym.Curl_failf
test rdi, rdi
jne 0x1401e2b4d
jmp 0x1401e2c04
mov r9d, r13d
mov qword [rsp + 0x20], r10
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x70], r10
or r9d, 0x4000
mov ecx, 9
call qword [sym.imp.CRYPT32.dll_CertOpenStore]
mov r12, qword [0x140297ba0]
mov r10, qword [rsp + 0x70]
test rax, rax
mov rbp, rax
jne 0x1401e2b5a
jmp 0x1401e2afd
test r12, r12
jne 0x1401e28bf
mov r14, qword [rbx + 0x518]
test rdi, rdi
jne 0x1401e28cb
jmp 0x1401e28dc
lea r14, [0x14028ddb0]
test rdi, rdi
je 0x1401e28d3
mov rcx, rdi
call sym.free
test rbp, rbp
je 0x1401e2981
xor edx, edx
mov r8d, 2
mov rcx, rbp
call sym.fseek
test eax, eax
jne 0x1401e2927
mov rcx, rbp
xor edi, edi
call sym.ftell
test eax, eax
js 0x1401e292c
xor r8d, r8d
xor edx, edx
mov rcx, rbp
movsxd r15, eax
call sym.fseek
test eax, eax
jne 0x1401e292c
mov rax, qword [0x140297bb0]
lea rcx, [r15 + 1]
mov dil, 1
call qword [rax]
mov r13, rax
jmp 0x1401e292c
xor edi, edi
xor r15d, r15d
test r13, r13
jne 0x1401e2935
xor edi, edi
jmp 0x1401e294d
mov r9, rbp
mov r8d, 1
mov rdx, r15
mov rcx, r13
call sym.fread
dec eax
jne 0x1401e2931
mov rcx, rbp
call sym.fclose
test dil, dil
jne 0x1401e2981
mov r8, qword [rbx + 0x518]
mov rcx, rbx
lea rdx, str.schannel:_Failed_to_read_cert_file__s
call sym.Curl_failf
mov rax, qword [0x140297ba0]
mov rcx, r13
call qword [rax]
jmp 0x1401e2c04
mov rcx, qword [rbx + 0x5a8]
mov qword [rsp + 0x158], r13
xor ebp, ebp
mov dword [rsp + 0x150], r15d
test rcx, rcx
je 0x1401e29a7
call sym.strlen
mov rbp, rax
mov rax, qword [0x140297bb0]
lea rcx, [rbp + 1]
add rcx, rcx
call qword [rax]
mov rdi, rax
test rax, rax
je 0x1401e2a5b
xor eax, eax
test rbp, rbp
je 0x1401e29f8
lea eax, [rbp + 1]
mov qword [rsp + 0x20], rdi
mov r9d, ebp
mov edx, 8
mov dword [rsp + 0x28], eax
mov ecx, 0xfde9
mov r8, qword [rbx + 0x5a8]
call qword [sym.imp.kernel32.dll_MultiByteToWideChar]
test eax, eax
js 0x1401e2a02
cmp ebp, eax
jl 0x1401e2a02
cdqe
mov word [rdi + rax*2], 0
jmp 0x1401e2a07
mov word [rdi], 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 + 0x150]
mov r8d, 0x8000
test al, al
mov rax, qword [sym.imp.CRYPT32.dll_PFXImportCertStore]
jne 0x1401e2a40
xor r8d, r8d
mov rdx, rdi
call rax
mov rcx, rdi
mov rbp, rax
mov rax, qword [0x140297ba0]
call qword [rax]
test r12, r12
jne 0x1401e2a6e
jmp 0x1401e2a62
test r12, r12
jne 0x1401e2a73
xor ebp, ebp
mov rax, qword [0x140297ba0]
mov rcx, r13
call qword [rax]
test rbp, rbp
jne 0x1401e2aac
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8, r14
mov r9d, eax
cmp eax, 0x56
jne 0x1401e2a98
lea rdx, str.schannel:_Failed_to_import_cert_file__s__password_is_bad
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e2c04
lea rdx, str.schannel:_Failed_to_import_cert_file__s__last_error_is_0x_lx
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e2c04
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10001
mov qword [rsp + 0x28], rax
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov qword [rsp + 0xa8], rax
test rax, rax
jne 0x1401e2bff
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8, r14
lea rdx, str.schannel:_Failed_to_get_certificate_from_file__s__last_error_is_0x_lx
mov rcx, rbx
mov r9d, eax
call sym.Curl_failf
jmp 0x1401e2bf2
mov rcx, r10
mov qword [rsp + 0x68], r10
call sym.strdup
mov rsi, rax
call qword [sym.imp.kernel32.dll_GetLastError]
test rsi, rsi
mov rcx, rbx
mov r8d, r13d
mov dword [rsp + 0x20], eax
lea r9, [0x14028ddbe]
lea rdx, str.schannel:_Failed_to_open_cert_store__lx__s__last_error_is_0x_lx
cmovne r9, rsi
call sym.Curl_failf
mov rcx, qword [rsp + 0x68]
call qword [r12]
test rsi, rsi
je 0x1401e2b4d
mov rcx, rsi
call sym.free
mov rcx, rdi
call sym.free
jmp 0x1401e2c04
mov rcx, r10
call qword [r12]
xor eax, eax
mov r8d, 4
mov rcx, r14
lea r9, [rsp + 0x150]
mov qword [rsp + 0x30], rax
mov edx, 0x28
lea r12, [rsp + 0x100]
mov qword [rsp + 0x108], r9
mov dword [rsp + 0x100], 0x14
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x1401e2bb7
mov rcx, rdi
call sym.free
jmp 0x1401e2bf2
xor eax, eax
mov qword [rsp + 0x20], r12
xor r8d, r8d
mov rcx, rbp
mov qword [rsp + 0x28], rax
mov r9d, 0x10000
mov edx, 0x10001
call qword [sym.imp.CRYPT32.dll_CertFindCertificateInStore]
mov rcx, rdi
mov r12, rax
mov qword [rsp + 0xa8], rax
call sym.free
test r12, r12
jne 0x1401e2bff
xor edx, edx
mov rcx, rbp
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x1401e2c04
mov r12, rbp
jmp 0x1401e2c0f
mov r15d, 0x3a
jmp 0x1401e3627
mov rax, qword [0x140297b90]
mov edx, 0x30
mov ecx, 1
call qword [rax]
mov rdi, qword [rsp + 0x80]
mov qword [rdi], rax
test rax, rax
jne 0x1401e2c6d
mov rcx, rbx
lea rdx, str.schannel:_unable_to_allocate_memory
call sym.Curl_failf
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x1401e2c54
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
test r12, r12
je 0x1401e352f
xor edx, edx
mov rcx, r12
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x1401e352f
mov qword [rax + 0x20], r12
mov dword [rax + 0x28], 1
mov rax, qword [rsp + 0x68]
cmp qword [rax + 0x20], 0
jne 0x1401e3083
mov dword [rsp + 0x20], 3
mov r9d, 2
mov r8d, 0x4563
xor edx, edx
mov ecx, 0xa
call sym.curlx_verify_windows_version
mov r14d, eax
test al, al
je 0x1401e3083
xor eax, eax
lea rdi, [rsp + 0x100]
mov ecx, 0x12
rep stosd dword [rdi], eax
lea rdi, [rsp + 0xd8]
mov ecx, 0xa
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x150]
mov ecx, 0x30
rep stosd dword [rdi], eax
xor eax, eax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1401e2e6b
cmp byte [rax], 0
mov r13d, r14d
mov ebp, r14d
mov r15d, r14d
mov r12d, r14d
je 0x1401e2e7b
xor eax, eax
mov dword [rsp + 0x98], eax
mov rcx, qword [rsp + 0x68]
mov edx, 0x3a
call sym.strchr
mov rdi, rax
test rax, rax
je 0x1401e2d5a
mov rcx, qword [rsp + 0x68]
sub rax, rcx
jmp 0x1401e2d64
mov rcx, qword [rsp + 0x68]
call sym.strlen
mov qword [rsp + 0x70], rax
test r14b, r14b
je 0x1401e2d8c
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_AES_256_GCM_SHA384
call sym.algo
test al, al
jne 0x1401e2e2a
test r12b, r12b
je 0x1401e2daf
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_AES_128_GCM_SHA256
call sym.algo
test al, al
jne 0x1401e2e2f
test r15b, r15b
je 0x1401e2dce
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_CHACHA20_POLY1305_SHA256
call sym.algo
test al, al
jne 0x1401e2e34
test bpl, bpl
je 0x1401e2ded
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_AES_128_CCM_8_SHA256
call sym.algo
test al, al
jne 0x1401e2e39
test r13b, r13b
je 0x1401e2e0c
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_AES_128_CCM_SHA256
call sym.algo
test al, al
jne 0x1401e2e3d
mov r9, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x70]
lea rdx, str.schannel:_Unknown_TLS_1.3_cipher:__.s
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e32cf
xor r14d, r14d
jmp 0x1401e2e40
xor r12d, r12d
jmp 0x1401e2e40
xor r15d, r15d
jmp 0x1401e2e40
xor ebp, ebp
jmp 0x1401e2e40
xor r13d, r13d
test rdi, rdi
je 0x1401e2e7b
inc dword [rsp + 0x98]
lea rax, [rdi + 1]
cmp byte [rdi + 1], 0
mov qword [rsp + 0x68], rax
je 0x1401e2e7b
cmp dword [rsp + 0x98], 5
jne 0x1401e2d39
jmp 0x1401e2e7b
xor r13d, r13d
xor ebp, ebp
xor r15d, r15d
xor r12d, r12d
xor r14d, r14d
jmp 0x1401e2ea5
test r14b, r14b
je 0x1401e2ea0
test r12b, r12b
je 0x1401e2ea0
test r15b, r15b
je 0x1401e2ea0
test bpl, bpl
je 0x1401e2ea5
lea rdx, str.schannel:_All_available_TLS_1.3_ciphers_were_disabled
test r13b, r13b
je 0x1401e2eb0
jmp 0x1401e3222
test bpl, bpl
jne 0x1401e2eb0
xor eax, eax
test r13b, r13b
je 0x1401e2f33
lea rax, str.ChainingModeCCM
mov dword [rsp + 0xb0], 0x200020
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x170], rax
lea rax, [0x14028dde4]
mov dword [rsp + 0x150], 2
mov dword [rsp + 0x168], 1
mov dword [rsp + 0x158], 0x80008
mov qword [rsp + 0x160], rax
cmp bpl, r13b
je 0x1401e2f1f
test bpl, bpl
je 0x1401e2f26
mov dword [rsp + 0x178], pe_nt_image_headers64
mov eax, 1
jmp 0x1401e2f33
mov dword [rsp + 0x17c], 0x40
jmp 0x1401e2f1f
test r14b, r14b
jne 0x1401e2f41
test r12b, r12b
je 0x1401e2fc7
mov r8d, 2
lea rcx, [0x14028dde4]
cmp r14b, r12b
je 0x1401e2f6e
test r14b, r14b
lea rcx, str.SHA256
lea rdx, str.SHA384
mov r8d, 3
cmovne rcx, rdx
movsxd rdx, eax
inc eax
mov dword [rsp + 0xc0], 0x200020
imul rdx, rdx, 0x30
lea rdi, str.ChainingModeGCM
mov qword [rsp + 0xc8], rdi
mov qword [rsp + rdx + 0x160], rcx
lea rcx, [rsp + 0xc0]
mov dword [rsp + rdx + 0x150], r8d
mov dword [rsp + rdx + 0x158], 0x80008
mov qword [rsp + rdx + 0x170], rcx
mov dword [rsp + rdx + 0x168], 1
test r15b, r15b
je 0x1401e2ffa
movsxd rdx, eax
lea rdi, str.CHACHA20_POLY1305
inc eax
imul rdx, rdx, 0x30
mov dword [rsp + rdx + 0x150], 2
mov dword [rsp + rdx + 0x158], 0x240024
mov qword [rsp + rdx + 0x160], rdi
mov dword [rsp + 0xec], eax
lea rax, [rsp + 0xd8]
lea rdx, [rsp + 0x150]
mov qword [rsp + 0x140], rax
mov eax, dword [rsp + 0x78]
mov qword [rsp + 0xf0], rdx
mov dword [rsp + 0x138], 1
or eax, 0x400000
cmp qword [rsp + 0xa8], 0
mov dword [rsp + 0x134], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x100], 5
not eax
mov dword [rsp + 0xe8], eax
je 0x1401e3265
lea rax, [rsp + 0xa8]
mov dword [rsp + 0x108], 1
mov qword [rsp + 0x110], rax
jmp 0x1401e3265
mov rax, qword [rsp + 0x68]
lea rdi, [rsp + 0x104]
mov ecx, 0x13
mov rbp, qword [rax + 0x20]
xor eax, eax
rep stosd dword [rdi], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x100], 4
mov dword [rsp + 0x148], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x138], eax
test rbp, rbp
je 0x1401e322f
bt eax, 0xd
jae 0x1401e30e5
test byte [rbx + 0xa0e], 0x20
je 0x1401e30e5
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, rbx
call sym.Curl_infof
mov rax, qword [rsp + 0x68]
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 0x1401e3222
xor r13d, r13d
cmp byte [rbp], 0
je 0x1401e3201
cmp r13d, 0x2f
je 0x1401e3201
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call sym.strtol
mov edi, eax
test eax, eax
jne 0x1401e319a
mov edx, 0x3a
mov rcx, rbp
call sym.strchr
mov r12, rax
test rax, rax
je 0x1401e3140
sub r12, rbp
jmp 0x1401e314b
mov rcx, rbp
call sym.strlen
mov r12, rax
lea r14, str.CALG_MD2
mov r15, r14
mov rcx, qword [r14]
test rcx, rcx
je 0x1401e31a9
mov qword [rsp + 0x68], rcx
call sym.strlen
mov rcx, qword [rsp + 0x68]
cmp rax, r12
jne 0x1401e3192
mov r8, r12
mov rdx, rbp
call sym.strncmp
test eax, eax
jne 0x1401e3192
movsxd rdi, edi
shl rdi, 4
mov edi, dword [r15 + rdi + 8]
test edi, edi
jne 0x1401e319a
jmp 0x1401e31a9
inc edi
add r14, 0x10
jmp 0x1401e3155
movsxd rax, r13d
inc r13d
mov dword [rsp + rax*4 + 0x150], edi
jmp 0x1401e31e6
mov r8d, 0x11
lea rdx, str.USE_STRONG_CRYPTO
mov rcx, rbp
call sym.strncmp
test eax, eax
je 0x1401e31db
mov r8d, 0x15
lea rdx, str.SCH_USE_STRONG_CRYPTO
mov rcx, rbp
call sym.strncmp
test eax, eax
jne 0x1401e321b
or dword [rsp + 0x148], 0x400000
mov edx, 0x3a
mov rcx, rbp
call sym.strchr
test rax, rax
je 0x1401e3201
lea rbp, [rax + 1]
jmp 0x1401e30ff
lea rax, [rsp + 0x150]
mov dword [rsp + 0x128], r13d
mov qword [rsp + 0x130], rax
jmp 0x1401e323f
lea rdx, str.schannel:_Failed_setting_algorithm_cipher_list
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e32cf
mov eax, dword [rsp + 0x78]
or eax, 0x400000
mov dword [rsp + 0x148], eax
cmp qword [rsp + 0xa8], 0
je 0x1401e3265
lea rax, [rsp + 0xa8]
mov dword [rsp + 0x104], 1
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x80]
xor r15d, r15d
xor ecx, ecx
xor r9d, r9d
mov rdx, qword [0x140297f10]
mov r8d, 2
mov rax, qword [rax]
mov r10, qword [rdx]
mov qword [rsp + 0x30], r15
lea rdx, [rax + 0x10]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x40], rdx
lea rdx, str.Microsoft_Unified_Security_Protocol_Provider
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call qword [r10 + 0x18]
mov rcx, qword [rsp + 0xa8]
mov edi, eax
test rcx, rcx
je 0x1401e32da
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
jmp 0x1401e32da
mov r15d, 0x3b
jmp 0x1401e3627
test edi, edi
je 0x1401e3341
lea rdx, [rsp + 0x150]
mov ecx, edi
xor r14d, r14d
xor r15d, r15d
mov r8d, 0x100
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_AcquireCredentialsHandle_failed:__s
mov rcx, rbx
mov r8, rax
call sym.Curl_failf
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
mov rax, qword [0x140297ba0]
call qword [rax]
mov rax, qword [rsp + 0x80]
cmp edi, 0x80090300
setne r15b
mov qword [rax], r14
lea r15d, [r15*8 + 0x1b]
jmp 0x1401e3627
mov rax, qword [rsp + 0x88]
xor r13d, r13d
mov dword [rsp + 0xa8], r13d
mov rcx, qword [rax + 0x18]
test rcx, rcx
jne 0x1401e3361
mov rcx, qword [rax + 8]
mov rdi, qword [rsi]
call sym.strdup
mov qword [rdi + 0x18], rax
test rax, rax
jne 0x1401e23d3
jmp 0x1401e352f
test byte [rbx + 0xa0e], 0x20
je 0x1401e3393
lea rdx, str.schannel:_using_IP_address__SNI_is_not_supported_by_OS.
mov rcx, rbx
call sym.Curl_infof
lea rax, [rsp + 0xd8]
xor ebp, ebp
xor r12d, r12d
mov ecx, 1
mov qword [rsp + 0x108], rax
mov eax, 1
lea rdx, [rsp + 0xb0]
shl rax, 0x20
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xb0], r12
movsx eax, byte [rax + 0xb0]
mov qword [rsp + 0xc8], rdx
mov edx, 0x18
mov qword [rsp + 0xe0], rbp
sar eax, 0x1f
mov qword [rsp + 0xb8], r12
and eax, 0xffffff80
add eax, 0x819c
mov dword [rsi + 0x5c], eax
mov rax, qword [0x140297b90]
call qword [rax]
mov qword [rsi + 8], rax
test rax, rax
jne 0x1401e343e
lea rdx, str.schannel:_unable_to_allocate_memory
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e352f
mov rbp, qword [0x140297f10]
lea rdi, [rax + 0x10]
lea r11, [rsi + 0x60]
mov rdx, qword [rbp]
mov r10, qword [rdx + 0x30]
xor edx, edx
cmp byte [rsi + 0x6b], 0
je 0x1401e3465
lea rdx, [rsp + 0x100]
mov rcx, qword [rsi]
mov r9d, dword [rsi + 0x5c]
mov r8, qword [rcx + 0x18]
mov qword [rsp + 0x50], r11
lea r11, [rsp + 0xc0]
mov qword [rsp + 0x58], rdi
xor edi, edi
mov qword [rsp + 0x48], r11
xor r11d, r11d
mov qword [rsp + 0x30], rdx
xor edx, edx
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r11d
call r10
mov edi, eax
cmp eax, 0x90312
je 0x1401e3564
mov rax, qword [0x140297ba0]
mov rcx, qword [rsi + 8]
call qword [rax]
xor edx, edx
cmp edi, 0x80090300
mov qword [rsi + 8], rdx
lea rdx, [rsp + 0x150]
je 0x1401e350d
cmp edi, 0x80090322
jne 0x1401e353a
mov r8d, 0x100
mov ecx, 0x80090322
mov r15d, 0x3c
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_SNI_or_certificate_check_failed:__s
mov rcx, rbx
mov r8, rax
call sym.Curl_failf
jmp 0x1401e3627
mov r8d, 0x100
mov ecx, 0x80090300
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_initial_InitializeSecurityContext_failed:__s
mov rcx, rbx
mov r8, rax
call sym.Curl_failf
mov r15d, 0x1b
jmp 0x1401e3627
mov r8d, 0x100
mov ecx, edi
call sym.Curl_sspi_strerror
lea rdx, str.schannel:_initial_InitializeSecurityContext_failed:__s
mov rcx, rbx
mov r8, rax
call sym.Curl_failf
mov r15d, 0x23
jmp 0x1401e3627
mov rax, qword [rsp + 0x2a0]
mov r8, qword [rsp + 0xb8]
mov rdx, rbx
mov r9d, dword [rsp + 0xb0]
mov rcx, qword [rax + 8]
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
call sym.Curl_conn_cf_send
mov rcx, qword [rsp + 0xb8]
mov qword [rsp + 0x68], rax
mov rax, qword [rbp]
call qword [rax + pe_nt_image_headers64]
mov r15d, dword [rsp + 0xa8]
mov r8, qword [rsp + 0x68]
test r15d, r15d
jne 0x1401e35ca
mov eax, dword [rsp + 0xb0]
cmp rax, r8
je 0x1401e35e6
mov r9d, dword [rsp + 0xb0]
lea rdx, str.schannel:_failed_to_send_initial_handshake_data:_sent__zd_of__lu_bytes
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401e3559
xor eax, eax
mov word [rsi + 0x68], 0
mov dword [rsi + 0x64], eax
mov rax, qword [rsp + 0x88]
mov byte [rsi + 0x6a], 0
mov byte [rsi + 0x58], 0
mov dword [rax + 4], 1
jmp 0x1401e3627
xor r14d, r14d
jmp 0x1401e27bb
mov r15d, 0x1b
jmp 0x1401e27c1
xor r10d, r10d
xor ebp, ebp
jmp 0x1401e27e3
mov eax, r15d
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret