Function at 0x140079870
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 [0x14012a340]
mov rax, qword [rax]
call qword [rax + 0x58]
test eax, eax
jne 0x140079a18
mov rdx, qword [rsp + 0x68]
test rdx, rdx
je 0x140079a18
cmp qword [rdi + 8], 0
je 0x140079ab8
mov rax, qword [r13 + 0x30]
xor r12d, r12d
lea r14, [rsp + 0x80]
cmp byte [rax + 0x6c], 0
jne 0x140079a60
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 0x140079b40
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 + 0x5d0], 0x20
cmove r14d, eax
test r14d, r14d
jne 0x140079af0
test byte [rdi + 0x6c], 2
jne 0x140079ad8
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400799ca
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
test r12, r12
je 0x1400799da
xor edx, edx
mov rcx, r12
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400799ea
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChain]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400799fa
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 0x140079a4f
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
mov r14d, 0x3c
jmp 0x1400799da
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 0x140079b88
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 0x140079aa7
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
mov r14d, 0x4d
jmp 0x1400799da
mov r12, qword [rdi + 0x48]
lea r14, [rsp + 0x80]
test r12, r12
jne 0x1400798fe
jmp 0x140079917
mov rdx, rsi
mov rcx, rbx
call sym.Curl_verify_host
mov r14d, eax
jmp 0x1400799ba
test r14b, 4
jne 0x140079c88
test r14d, 0x10000
jne 0x140079ca0
test r14b, 0x20
jne 0x140079c70
test r14b, 1
jne 0x140079d50
test r14b, 0x40
je 0x140079d30
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_REVOCATION_STATUS_UNKNOWN
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
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 0x1400799ba
mov rdx, rsi
mov rcx, rbx
call sym.Curl_schannel_get_cached_cert_store
mov r13, rax
test rax, rax
je 0x140079cb8
test rsi, rsi
je 0x140079bcf
test byte [rsi + 0xa37], 0x10
je 0x140079bcf
mov rax, qword [rsi + 0x11e8]
test rax, rax
je 0x140079bc0
mov eax, dword [rax + 8]
test eax, eax
jle 0x140079bcf
lea rdx, str.schannel:_reusing_certificate_store_from_cache
mov rcx, rsi
call sym.Curl_infof
xor r12d, r12d
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], r13
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 0x140079917
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 0x1400799ba
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_UNTRUSTED_ROOT
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_REVOKED
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_PARTIAL_CHAIN
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
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 0x140079ea8
mov r13, qword [rdi + 0x48]
test r13, r13
je 0x140079d85
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 0x140079d64
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1400799cf
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateChainEngine]
jmp 0x1400799cf
mov r8d, r14d
lea rdx, str.schannel:_CertGetCertificateChain_error_mask:_0x_08lx
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
lea rdx, str.schannel:_CertGetCertificateChain_trust_error_CERT_TRUST_IS_NOT_TIME_VALID
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079b76
mov r8, r12
mov rdx, rsi
mov rcx, rbx
mov r13, r12
call sym.Curl_schannel_set_cached_cert_store
test al, al
mov eax, 0
cmovne r12, rax
jmp 0x140079bd2
mov rax, qword [rdi + 8]
mov rcx, rax
mov qword [rsp + 0x50], rax
call sym.curlx_convert_UTF8_to_wchar
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14007a033
mov qword [rsp + 0x30], 0
mov rcx, rax
xor r9d, r9d
mov r8d, 1
mov dword [rsp + 0x28], pe_nt_image_headers64
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x140079fe1
mov rcx, rax
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x140079fad
mov r14, qword [rsp + 0x80]
cmp r14, 0x100000
jg 0x140079f96
mov rax, qword [0x140129dc0]
lea rcx, [r14 + 1]
mov r15, r14
call qword [rax]
mov r13, rax
test rax, rax
je 0x14007a072
test r14, r14
je 0x140079f00
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 0x140079e6b
add edi, eax
mov r14d, edi
cmp r14, rsi
jae 0x140079ee8
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 0x140079f47
mov eax, dword [rsp + 0x64]
test eax, eax
jne 0x140079e61
mov rsi, r14
jmp 0x140079e63
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 0x140079aa1
jmp 0x140079aa7
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
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x140129da0]
mov rcx, r13
call qword [rax]
mov rcx, qword [rsp + 0x40]
call sym.free
jmp 0x140079d0f
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
jmp 0x140079f21
mov r8d, 0x100000
lea rdx, str.schannel:_CA_file_exceeds_max_size_of__u_bytes
mov rcx, rsi
call sym.Curl_failf
jmp 0x140079f8e
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 0x140079f8e
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 [0x140129da0]
xor ecx, ecx
call qword [rax]
mov rcx, qword [rsp + 0x40]
call sym.free
mov r14d, 0x4d
jmp 0x140079d14
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 [0x140129da0]
xor ecx, ecx
call qword [rax]
jmp 0x14007a028
mov r14d, 0x1b
jmp 0x140079f21