Function at 0x14020b490
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 0x14020b53a
cmp byte [rsp + 0x9f], 0
je 0x14020b53a
test byte [rbx + 0xa0e], 0x20
je 0x14020b53a
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 0x14020b54c
cmp qword [rdi + 0x48], 0
je 0x14020b58a
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 0x14020b58c
lea rdx, [0x1402b7d51]
mov rcx, rbx
mov r15d, 0x4d
call sym.Curl_failf
jmp 0x14020c897
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 0x14020b5fc
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 0x14020b668
mov dword [rsp + 0x78], 0x1808
jmp 0x14020b6aa
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 0x14020b631
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 0x14020b5a3
mov rax, qword [rsp + 0x88]
test byte [rax + 0x20], 1
je 0x14020c603
cmp byte [rsp + 0x9f], 0
jne 0x14020c5eb
jmp 0x14020c603
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 0x14020b691
or dh, 0x18
jmp 0x14020b6a6
mov edi, edx
or edi, 0x200
and r8d, 0x20
mov dword [rsp + 0x78], edi
je 0x14020b6aa
or dh, 0x1a
mov dword [rsp + 0x78], edx
and cl, 2
jne 0x14020b6b4
or dword [rsp + 0x78], 4
cmp byte [rax + 0xb0], 0
js 0x14020b6e3
test rbx, rbx
je 0x14020b6cb
test byte [rbx + 0xa0e], 0x20
jne 0x14020b6d2
or dword [rsp + 0x78], 0x10
jmp 0x14020b700
lea rdx, str.schannel:_disabled_automatic_use_of_client_certificate
mov rcx, rbx
call sym.Curl_infof
jmp 0x14020b6cb
test rbx, rbx
je 0x14020b700
test byte [rbx + 0xa0e], 0x20
je 0x14020b700
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 0x14020b715
cmp al, 1
jbe 0x14020b720
jmp 0x14020b807
sub eax, 4
cmp al, 3
ja 0x14020b821
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 0x14020b767
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 0x14020b7f2
cmp ebp, 6
je 0x14020b7a2
jg 0x14020b791
cmp ebp, 4
je 0x14020b798
cmp ebp, 5
jne 0x14020b7ee
or dword [rsp + 0x7c], 0x200
jmp 0x14020b7ee
cmp ebp, 7
je 0x14020b7ac
jmp 0x14020b7ee
or dword [rsp + 0x7c], 0x80
jmp 0x14020b7ee
or dword [rsp + 0x7c], 0x800
jmp 0x14020b7ee
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 0x14020b7da
or dword [rsp + 0x7c], 0x2000
jmp 0x14020b7ee
lea rdx, str.schannel:_TLS_1.3_not_supported_on_Windows_prior_to_11
mov rcx, rbx
call sym.Curl_failf
jmp 0x14020c7c9
inc ebp
jmp 0x14020b772
mov rcx, qword [rbx + 0x518]
mov r12, qword [rbx + 0x540]
test rcx, rcx
jne 0x14020b834
jmp 0x14020b82a
lea rdx, str.SSL_versions_not_supported
mov rcx, rbx
mov r15d, 4
call sym.Curl_failf
jmp 0x14020c897
lea rdx, str.Unrecognized_parameter_passed_via_CURLOPT_SSLVERSION
jmp 0x14020b7e1
test r12, r12
jne 0x14020b839
jmp 0x14020be7f
test r12, r12
je 0x14020b84b
mov r13, qword [r12]
mov r15, qword [r12 + 8]
xor edi, edi
xor ebp, ebp
jmp 0x14020ba8b
call sym.strdup
mov r15d, 0x1b
mov rdi, rax
test rax, rax
je 0x14020c897
mov edx, 0x5c
mov rcx, rax
call sym.strchr
mov r14, rax
test rax, rax
je 0x14020ba28
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 0x14020b999
mov r8d, 0xd
lea rdx, str.LocalMachine
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x14020b9a1
mov r8d, 0xf
lea rdx, str.CurrentService
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x14020b9a9
mov r8d, 9
lea rdx, str.Services
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x14020b9b1
mov r8d, 6
lea rdx, str.Users
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x14020b9b9
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 0x14020b9c1
mov r8d, 0x18
lea rdx, str.LocalMachineGroupPolicy
mov rcx, rdi
cmp rbp, r8
cmovbe r8, rbp
call sym.strncmp
test eax, eax
je 0x14020b9c9
mov r8, r13
lea rdx, str.LocalMachineEnterprise
mov rcx, rdi
mov r13d, 0x90000
call sym.strncmp
test eax, eax
je 0x14020b9cf
jmp 0x14020ba25
mov r13d, 0x10000
jmp 0x14020b9cf
mov r13d, 0x20000
jmp 0x14020b9cf
mov r13d, 0x40000
jmp 0x14020b9cf
mov r13d, 0x50000
jmp 0x14020b9cf
mov r13d, 0x60000
jmp 0x14020b9cf
mov r13d, 0x70000
jmp 0x14020b9cf
mov r13d, 0x80000
lea rbp, [r14 + 1]
mov edx, 0x5c
mov rcx, rbp
call sym.strchr
mov r15, rax
test rax, rax
je 0x14020c87a
lea r14, [rax + 1]
mov rcx, r14
call sym.strlen
cmp rax, 0x28
jne 0x14020ba2b
mov rax, qword [0x1402c1af0]
mov byte [r15], 0
mov rcx, rbp
call qword [rax]
mov byte [r15], 0x5c
mov r10, rax
test rax, rax
je 0x14020c882
xor ebp, ebp
xor r15d, r15d
jmp 0x14020ba53
xor r14d, r14d
xor r13d, r13d
mov r15d, 0x3a
mov rcx, qword [rbx + 0x518]
cmp byte [rcx], 0
je 0x14020c88d
lea rdx, [0x1402b7f27]
call sym.curlx_win32_fopen
xor r10d, r10d
mov rbp, rax
test r15d, r15d
je 0x14020ba80
test rbp, rbp
jne 0x14020ba85
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 0x14020c897
test rbp, rbp
je 0x14020badb
xor r13d, r13d
xor r15d, r15d
mov rcx, qword [rbx + 0x588]
test rcx, rcx
je 0x14020bb1c
lea rdx, [0x1402b7f66]
call sym.curl_strequal
test eax, eax
jne 0x14020bb1c
lea r8, [0x1402b7ca0]
test r12, r12
jne 0x14020babe
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 0x14020bdbd
jmp 0x14020be74
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 [0x1402c1aa0]
mov r10, qword [rsp + 0x70]
test rax, rax
mov rbp, rax
jne 0x14020bdca
jmp 0x14020bd6d
test r12, r12
jne 0x14020bb2f
mov r14, qword [rbx + 0x518]
test rdi, rdi
jne 0x14020bb3b
jmp 0x14020bb4c
lea r14, [0x1402b7ca0]
test rdi, rdi
je 0x14020bb43
mov rcx, rdi
call sym.free
test rbp, rbp
je 0x14020bbf1
xor edx, edx
mov r8d, 2
mov rcx, rbp
call sym.fseek
test eax, eax
jne 0x14020bb97
mov rcx, rbp
xor edi, edi
call sym.ftell
test eax, eax
js 0x14020bb9c
xor r8d, r8d
xor edx, edx
mov rcx, rbp
movsxd r15, eax
call sym.fseek
test eax, eax
jne 0x14020bb9c
mov rax, qword [0x1402c1ab0]
lea rcx, [r15 + 1]
mov dil, 1
call qword [rax]
mov r13, rax
jmp 0x14020bb9c
xor edi, edi
xor r15d, r15d
test r13, r13
jne 0x14020bba5
xor edi, edi
jmp 0x14020bbbd
mov r9, rbp
mov r8d, 1
mov rdx, r15
mov rcx, r13
call sym.fread
dec eax
jne 0x14020bba1
mov rcx, rbp
call sym.fclose
test dil, dil
jne 0x14020bbf1
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 [0x1402c1aa0]
mov rcx, r13
call qword [rax]
jmp 0x14020be74
mov rcx, qword [rbx + 0x5a8]
mov qword [rsp + 0x158], r13
xor ebp, ebp
mov dword [rsp + 0x150], r15d
test rcx, rcx
je 0x14020bc17
call sym.strlen
mov rbp, rax
mov rax, qword [0x1402c1ab0]
lea rcx, [rbp + 1]
add rcx, rcx
call qword [rax]
mov rdi, rax
test rax, rax
je 0x14020bccb
xor eax, eax
test rbp, rbp
je 0x14020bc68
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 0x14020bc72
cmp ebp, eax
jl 0x14020bc72
cdqe
mov word [rdi + rax*2], 0
jmp 0x14020bc77
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 0x14020bcb0
xor r8d, r8d
mov rdx, rdi
call rax
mov rcx, rdi
mov rbp, rax
mov rax, qword [0x1402c1aa0]
call qword [rax]
test r12, r12
jne 0x14020bcde
jmp 0x14020bcd2
test r12, r12
jne 0x14020bce3
xor ebp, ebp
mov rax, qword [0x1402c1aa0]
mov rcx, r13
call qword [rax]
test rbp, rbp
jne 0x14020bd1c
call qword [sym.imp.kernel32.dll_GetLastError]
mov r8, r14
mov r9d, eax
cmp eax, 0x56
jne 0x14020bd08
lea rdx, str.schannel:_Failed_to_import_cert_file__s__password_is_bad
mov rcx, rbx
call sym.Curl_failf
jmp 0x14020be74
lea rdx, str.schannel:_Failed_to_import_cert_file__s__last_error_is_0x_lx
mov rcx, rbx
call sym.Curl_failf
jmp 0x14020be74
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 0x14020be6f
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 0x14020be62
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, [0x1402b7cae]
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 0x14020bdbd
mov rcx, rsi
call sym.free
mov rcx, rdi
call sym.free
jmp 0x14020be74
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 0x14020be27
mov rcx, rdi
call sym.free
jmp 0x14020be62
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 0x14020be6f
xor edx, edx
mov rcx, rbp
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x14020be74
mov r12, rbp
jmp 0x14020be7f
mov r15d, 0x3a
jmp 0x14020c897
mov rax, qword [0x1402c1a90]
mov edx, 0x30
mov ecx, 1
call qword [rax]
mov rdi, qword [rsp + 0x80]
mov qword [rdi], rax
test rax, rax
jne 0x14020bedd
mov rcx, rbx
lea rdx, str.schannel:_unable_to_allocate_memory
call sym.Curl_failf
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x14020bec4
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
test r12, r12
je 0x14020c79f
xor edx, edx
mov rcx, r12
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
jmp 0x14020c79f
mov qword [rax + 0x20], r12
mov dword [rax + 0x28], 1
mov rax, qword [rsp + 0x68]
cmp qword [rax + 0x20], 0
jne 0x14020c2f3
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 0x14020c2f3
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 0x14020c0db
cmp byte [rax], 0
mov r13d, r14d
mov ebp, r14d
mov r15d, r14d
mov r12d, r14d
je 0x14020c0eb
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 0x14020bfca
mov rcx, qword [rsp + 0x68]
sub rax, rcx
jmp 0x14020bfd4
mov rcx, qword [rsp + 0x68]
call sym.strlen
mov qword [rsp + 0x70], rax
test r14b, r14b
je 0x14020bffc
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 0x14020c09a
test r12b, r12b
je 0x14020c01f
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 0x14020c09f
test r15b, r15b
je 0x14020c03e
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
lea rcx, str.TLS_CHACHA20_POLY1305_SHA256
call sym.algo
test al, al
jne 0x14020c0a4
test bpl, bpl
je 0x14020c05d
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 0x14020c0a9
test r13b, r13b
je 0x14020c07c
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 0x14020c0ad
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 0x14020c53f
xor r14d, r14d
jmp 0x14020c0b0
xor r12d, r12d
jmp 0x14020c0b0
xor r15d, r15d
jmp 0x14020c0b0
xor ebp, ebp
jmp 0x14020c0b0
xor r13d, r13d
test rdi, rdi
je 0x14020c0eb
inc dword [rsp + 0x98]
lea rax, [rdi + 1]
cmp byte [rdi + 1], 0
mov qword [rsp + 0x68], rax
je 0x14020c0eb
cmp dword [rsp + 0x98], 5
jne 0x14020bfa9
jmp 0x14020c0eb
xor r13d, r13d
xor ebp, ebp
xor r15d, r15d
xor r12d, r12d
xor r14d, r14d
jmp 0x14020c115
test r14b, r14b
je 0x14020c110
test r12b, r12b
je 0x14020c110
test r15b, r15b
je 0x14020c110
test bpl, bpl
je 0x14020c115
lea rdx, str.schannel:_All_available_TLS_1.3_ciphers_were_disabled
test r13b, r13b
je 0x14020c120
jmp 0x14020c492
test bpl, bpl
jne 0x14020c120
xor eax, eax
test r13b, r13b
je 0x14020c1a3
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, [0x1402b7cd4]
mov dword [rsp + 0x150], 2
mov dword [rsp + 0x168], 1
mov dword [rsp + 0x158], 0x80008
mov qword [rsp + 0x160], rax
cmp bpl, r13b
je 0x14020c18f
test bpl, bpl
je 0x14020c196
mov dword [rsp + 0x178], pe_nt_image_headers64
mov eax, 1
jmp 0x14020c1a3
mov dword [rsp + 0x17c], 0x40
jmp 0x14020c18f
test r14b, r14b
jne 0x14020c1b1
test r12b, r12b
je 0x14020c237
mov r8d, 2
lea rcx, [0x1402b7cd4]
cmp r14b, r12b
je 0x14020c1de
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 0x14020c26a
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 0x14020c4d5
lea rax, [rsp + 0xa8]
mov dword [rsp + 0x108], 1
mov qword [rsp + 0x110], rax
jmp 0x14020c4d5
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 0x14020c49f
bt eax, 0xd
jae 0x14020c355
test byte [rbx + 0xa0e], 0x20
je 0x14020c355
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 0x14020c492
xor r13d, r13d
cmp byte [rbp], 0
je 0x14020c471
cmp r13d, 0x2f
je 0x14020c471
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call sym.strtol
mov edi, eax
test eax, eax
jne 0x14020c40a
mov edx, 0x3a
mov rcx, rbp
call sym.strchr
mov r12, rax
test rax, rax
je 0x14020c3b0
sub r12, rbp
jmp 0x14020c3bb
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 0x14020c419
mov qword [rsp + 0x68], rcx
call sym.strlen
mov rcx, qword [rsp + 0x68]
cmp rax, r12
jne 0x14020c402
mov r8, r12
mov rdx, rbp
call sym.strncmp
test eax, eax
jne 0x14020c402
movsxd rdi, edi
shl rdi, 4
mov edi, dword [r15 + rdi + 8]
test edi, edi
jne 0x14020c40a
jmp 0x14020c419
inc edi
add r14, 0x10
jmp 0x14020c3c5
movsxd rax, r13d
inc r13d
mov dword [rsp + rax*4 + 0x150], edi
jmp 0x14020c456
mov r8d, 0x11
lea rdx, str.USE_STRONG_CRYPTO
mov rcx, rbp
call sym.strncmp
test eax, eax
je 0x14020c44b
mov r8d, 0x15
lea rdx, str.SCH_USE_STRONG_CRYPTO
mov rcx, rbp
call sym.strncmp
test eax, eax
jne 0x14020c48b
or dword [rsp + 0x148], 0x400000
mov edx, 0x3a
mov rcx, rbp
call sym.strchr
test rax, rax
je 0x14020c471
lea rbp, [rax + 1]
jmp 0x14020c36f
lea rax, [rsp + 0x150]
mov dword [rsp + 0x128], r13d
mov qword [rsp + 0x130], rax
jmp 0x14020c4af
lea rdx, str.schannel:_Failed_setting_algorithm_cipher_list
mov rcx, rbx
call sym.Curl_failf
jmp 0x14020c53f
mov eax, dword [rsp + 0x78]
or eax, 0x400000
mov dword [rsp + 0x148], eax
cmp qword [rsp + 0xa8], 0
je 0x14020c4d5
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 [0x1402c1e10]
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 0x14020c54a
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
jmp 0x14020c54a
mov r15d, 0x3b
jmp 0x14020c897
test edi, edi
je 0x14020c5b1
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 [0x1402c1aa0]
call qword [rax]
mov rax, qword [rsp + 0x80]
cmp edi, 0x80090300
setne r15b
mov qword [rax], r14
lea r15d, [r15*8 + 0x1b]
jmp 0x14020c897
mov rax, qword [rsp + 0x88]
xor r13d, r13d
mov dword [rsp + 0xa8], r13d
mov rcx, qword [rax + 0x18]
test rcx, rcx
jne 0x14020c5d1
mov rcx, qword [rax + 8]
mov rdi, qword [rsi]
call sym.strdup
mov qword [rdi + 0x18], rax
test rax, rax
jne 0x14020b643
jmp 0x14020c79f
test byte [rbx + 0xa0e], 0x20
je 0x14020c603
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 [0x1402c1a90]
call qword [rax]
mov qword [rsi + 8], rax
test rax, rax
jne 0x14020c6ae
lea rdx, str.schannel:_unable_to_allocate_memory
mov rcx, rbx
call sym.Curl_failf
jmp 0x14020c79f
mov rbp, qword [0x1402c1e10]
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 0x14020c6d5
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 0x14020c7d4
mov rax, qword [0x1402c1aa0]
mov rcx, qword [rsi + 8]
call qword [rax]
xor edx, edx
cmp edi, 0x80090300
mov qword [rsi + 8], rdx
lea rdx, [rsp + 0x150]
je 0x14020c77d
cmp edi, 0x80090322
jne 0x14020c7aa
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 0x14020c897
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 0x14020c897
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 0x14020c897
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 0x14020c83a
mov eax, dword [rsp + 0xb0]
cmp rax, r8
je 0x14020c856
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 0x14020c7c9
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 0x14020c897
xor r14d, r14d
jmp 0x14020ba2b
mov r15d, 0x1b
jmp 0x14020ba31
xor r10d, r10d
xor ebp, ebp
jmp 0x14020ba53
mov eax, r15d
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret