Function at 0x1400946f0
Capabilities:
Get file size
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
mov r13, qword [rcx + 0x10]
mov rbx, rcx
mov rsi, rdx
call sym.Curl_ssl_cf_get_primary_config
mov rdx, rsi
mov rcx, rbx
mov rdi, rax
call sym.Curl_ssl_cf_get_config
lea r8, [rsp + 0x68]
mov edx, 0x53
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], 0
mov rbp, rax
mov rax, qword [r13 + 0x30]
mov qword [rsp + 0x78], 0
mov rcx, qword [rax + 8]
mov rax, qword [0x1401878d0]
mov rax, qword [rax]
call qword [rax + 0x58]
test eax, eax
jne 0x140094898
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x140094898
cmp qword [rdi + 8], 0
je 0x140094938
mov rax, qword [r13 + 0x30]
xor r12d, r12d
lea r14, [rsp + 0x80]
cmp byte [rax + 0x6c], 0
jne 0x1400948e0
pxor xmm0, xmm0
lea rax, [rsp + 0x70]
xor r8d, r8d
mov dword [rsp + 0x80], 0x20
movups xmmword [rsp + 0x84], xmm0
mov rcx, qword [rsp + 0x78]
movups xmmword [rsp + 0x90], xmm0
mov r9, qword [rdx + 0x20]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0
movzx eax, byte [rbp + 0xb0]
mov qword [rsp + 0x20], r14
shr al, 3
xor eax, 1
and eax, 1
shl eax, 0x1d
mov dword [rsp + 0x28], eax
call qword [sym.imp.CRYPT32.dll_CertGetCertificateChain]
test eax, eax
je 0x1400949c0
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x10]
mov rax, qword [rax]
mov r14d, dword [rax + 4]
mov eax, r14d
and r14d, 0xfeffffbd
and eax, 0xfffffffd
test byte [rsi + 0x5c8], 0x20
cmove r14d, eax
test r14d, r14d
jne 0x140094970
test byte [rdi + 0x6c], 2
jne 0x140094958
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14009484a
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
test r12, r12
je 0x14009485a
xor edx, edx
mov rcx, r12
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14009486a
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChain]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14009487a
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov eax, r14d
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_sspi_strerror
mov rcx, rsi
lea rdx, str.schannel:_Failed_to_read_remote_certificate_context:__s
mov r8, rax
call sym.Curl_failf
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400948cf
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
mov r14d, 0x3c
jmp 0x14009485a
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov r9d, 2
mov edx, 1
mov ecx, 6
call sym.curlx_verify_windows_version
test al, al
je 0x140094a08
mov rcx, rsi
lea rdx, str.schannel:_this_version_of_Windows_is_too_old_to_support_certificate_verification_via_CA_bundle_file.
call sym.Curl_failf
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140094927
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
mov r14d, 0x4d
jmp 0x14009485a
mov r12, qword [rdi + 0x48]
lea r14, [rsp + 0x80]
test r12, r12
jne 0x14009477e
jmp 0x140094797
mov rdx, rsi
mov rcx, rbx
call sym.Curl_verify_host
mov r14d, eax
jmp 0x14009483a
test r14b, 4
jne 0x140094ad8
test r14d, 0x10000
jne 0x140094af0
test r14b, 0x20
jne 0x140094ac0
test r14b, 1
jne 0x140094ba0
test r14b, 0x40
je 0x140094b80
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_REVOCATION_STATUS_UNKNOWN
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
lea rdx, str.schannel:_CertGetCertificateChain_failed:__s
mov rcx, rsi
mov r8, rax
call sym.Curl_failf
mov qword [rsp + 0x70], 0
mov r14d, 0x3c
jmp 0x14009483a
mov rdx, rsi
mov rcx, rbx
call sym.Curl_schannel_get_cached_cert_store
test rax, rax
je 0x140094b08
pxor xmm0, xmm0
lea rdx, [rsp + 0x78]
lea r14, [rsp + 0x80]
mov dword [rsp + 0x80], 0x50
movups xmmword [rsp + 0xb4], xmm0
mov rcx, r14
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0x84], xmm0
mov qword [rsp + 0xc0], rax
movups xmmword [rsp + 0x94], xmm0
movups xmmword [rsp + 0xa4], xmm0
call qword [sym.imp.CRYPT32.dll_CertCreateCertificateChainEngine]
mov rdx, qword [rsp + 0x68]
test eax, eax
jne 0x140094797
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov r14d, 0x4d
mov ecx, eax
call sym.Curl_winapi_strerror
lea rdx, str.schannel:_failed_to_create_certificate_chain_engine:__s
mov rcx, rsi
mov r8, rax
call sym.Curl_failf
jmp 0x14009483a
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_UNTRUSTED_ROOT
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_REVOKED
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_PARTIAL_CHAIN
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
mov r9d, 0x2000
xor r8d, r8d
xor edx, edx
mov ecx, 2
mov qword [rsp + 0x20], 0
call qword [sym.imp.CRYPT32.dll_CertOpenStore]
mov r12, rax
test rax, rax
je 0x140094cff
mov r13, qword [rdi + 0x48]
test r13, r13
je 0x140094bd5
mov r8, qword [r13 + 8]
mov rdx, qword [r13]
mov qword [rsp + 0x20], rsi
mov rcx, rax
lea r9, str._memory_blob_
call sym.add_certs_data_to_store
mov r14d, eax
test r14d, r14d
je 0x140094bb4
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14009484f
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
jmp 0x14009484f
mov r8d, r14d
lea rdx, str.schannel:_CertGetCertificateChain_error_mask:_0x_08lx
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_NOT_TIME_VALID
mov rcx, rsi
call sym.Curl_failf
jmp 0x1400949f6
mov r8, r12
mov rdx, rsi
mov rcx, rbx
call sym.Curl_schannel_set_cached_cert_store
test al, al
mov rax, r12
je 0x140094a1c
xor r12d, r12d
jmp 0x140094a1c
mov rax, qword [rdi + 8]
mov rcx, rax
mov qword [rsp + 0x50], rax
call sym.strdup
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140094e9b
mov dword [rsp + 0x28], pe_nt_image_headers64
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], 0
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x140094ded
mov rcx, qword [rsp + 0x48]
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140094e59
mov r14, qword [rsp + 0x80]
cmp r14, 0x100000
jg 0x140094e3f
mov rax, qword [0x140186a50]
lea rcx, [r14 + 1]
mov r15, r14
call qword [rax]
mov r13, rax
test rax, rax
je 0x140094e90
test r14, r14
je 0x140094dca
xor r10d, r10d
lea rax, [rsp + 0x64]
mov qword [rsp + 0x58], rdi
xor r14d, r14d
mov qword [rsp + 0x220], rbx
mov edi, r10d
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x228], rsi
mov rsi, r15
mov r15, rax
jmp 0x140094cc6
add edi, eax
mov r14d, edi
cmp r14, rsi
jae 0x140094db2
mov r8d, esi
lea rdx, [r13 + r14]
mov r9, r15
mov rcx, rbx
sub r8d, edi
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140094d3f
mov eax, dword [rsp + 0x64]
test eax, eax
jne 0x140094cb8
mov rsi, r14
jmp 0x140094cba
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
mov rcx, rsi
lea rdx, str.schannel:_failed_to_create_certificate_store:__s
mov r8, rax
call sym.Curl_failf
mov rcx, qword [rsp + 0x78]
test rcx, rcx
jne 0x140094921
jmp 0x140094927
mov rsi, qword [rsp + 0x228]
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
mov r8, qword [rsp + 0x50]
lea rdx, str.schannel:_failed_to_read_from_CA_file__s:__s
mov rcx, rsi
mov r9, rax
call sym.Curl_failf
mov r14d, 0x4d
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x140186a40]
mov rcx, r13
call qword [rax]
mov rcx, qword [rsp + 0x40]
call sym.free
jmp 0x140094b5f
mov r15, rsi
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x220]
mov rsi, qword [rsp + 0x228]
mov byte [r13 + r15], 0
mov r8, r15
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x20], rsi
mov r9, qword [rsp + 0x50]
call sym.add_certs_data_to_store
mov r14d, eax
jmp 0x140094d8c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
mov r8, qword [rsp + 0x50]
lea rdx, str.schannel:_failed_to_open_CA_file__s:__s
mov rcx, rsi
mov r9, rax
call sym.Curl_failf
mov rax, qword [0x140186a40]
xor ecx, ecx
call qword [rax]
mov rcx, qword [rsp + 0x40]
call sym.free
mov r14d, 0x4d
jmp 0x140094b64
mov r8d, 0x100000
lea rdx, str.schannel:_CA_file_exceeds_max_size_of__u_bytes
mov rcx, rsi
call sym.Curl_failf
jmp 0x140094d86
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
mov r8, qword [rsp + 0x50]
lea rdx, str.schannel:_failed_to_determine_size_of_CA_file__s:__s
mov rcx, rsi
mov r9, rax
call sym.Curl_failf
jmp 0x140094d86
mov r14d, 0x1b
jmp 0x140094d8c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_winapi_strerror
mov r8, qword [rsp + 0x50]
mov rcx, rsi
lea rdx, str.schannel:_invalid_path_name_for_CA_file__s:__s
mov r9, rax
call sym.Curl_failf
mov rax, qword [0x140186a40]
xor ecx, ecx
call qword [rax]
jmp 0x140094e34