Function at 0x14012f400
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x40
mov rsi, rdx
xor r14d, r14d
lea rdx, [0x14014e9c8]
mov dword [rsp + 0x68], r14d
mov rcx, qword [rsi + 0x10]
call fcn.1400a053c
mov rbp, rax
test rax, rax
jne 0x14012f450
mov r9, qword [rsi + 0x10]
lea r8, str.Couldnt_open_file__s
lea rdx, str.stream_secure_channel
xor ecx, ecx
call fcn.1400cfb60
xor al, al
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret
xor edx, edx
mov qword [rsp + 0x60], rbx
mov rcx, rbp
lea r8d, [rdx + 2]
call fcn.1400979b8
mov rcx, rbp
call fcn.14009807c
xor r8d, r8d
movsxd rbx, eax
xor edx, edx
mov rcx, rbp
call fcn.1400979b8
cmp ebx, 1
jge 0x14012f4ac
mov r9, qword [rsi + 0x10]
lea r8, str.Couldnt_determine_file_size_of__s
lea rdx, str.stream_secure_channel
mov ecx, 2
call fcn.1400cfb60
mov rbx, qword [rsp + 0x60]
xor al, al
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret
mov rcx, rbx
mov qword [rsp + 0x70], rdi
call fcn.1400c64f0
mov r9, rbp
mov r8, rbx
mov edx, 1
mov rcx, rax
mov rdi, rax
call fcn.140096864
mov rcx, rbp
call fcn.140096ef4
lea rdx, str._____BEGIN_CERTIFICATE_____
mov rcx, rdi
call fcn.14008a940
mov rdi, rax
test rax, rax
jne 0x14012f50d
mov r9, qword [rsi + 0x10]
lea r8, str.Couldnt_find_certificate_in__s
lea rdx, str.stream_secure_channel
lea ecx, [rax + 2]
call fcn.1400cfb60
jmp 0x14012f653
mov qword [rsp + 0x30], r14
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], r14
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, rdi
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x14012f559
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, str.Failed_to_convert_BASE64_public_key._Error_0x_.8X
xor ecx, ecx
mov r9d, eax
lea rdx, str.stream_secure_channel
call fcn.1400cfb60
jmp 0x14012f653
mov edx, dword [rsp + 0x68]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x30], r14
xor r8d, r8d
mov rbx, rax
mov qword [rsp + 0x28], r14
lea rax, [rsp + 0x68]
mov r9, rbx
xor edx, edx
mov qword [rsp + 0x20], rax
mov rcx, rdi
call qword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
je 0x14012f536
mov r8d, dword [rsp + 0x68]
mov rdx, rbx
mov ecx, 1
call qword [sym.imp.CRYPT32.dll_CertCreateCertificateContext]
mov rdi, rax
test rax, rax
jne 0x14012f5c7
lea r8, str.Could_not_convert_certificate
lea rdx, str.stream_secure_channel
lea ecx, [rax + 2]
call fcn.1400cfb60
jmp 0x14012f653
xor r8d, r8d
lea rax, str.Root
mov r9d, 0x20000
mov qword [rsp + 0x20], rax
mov edx, 0x10001
lea ecx, [r8 + 0xa]
call qword [sym.imp.CRYPT32.dll_CertOpenStore]
mov rbx, rax
test rax, rax
jne 0x14012f60a
lea r8, str.Error_opening_certificate_store
xor ecx, ecx
lea rdx, str.stream_secure_channel
call fcn.1400cfb60
jmp 0x14012f653
xor r9d, r9d
mov rdx, rdi
mov rcx, rbx
lea r8d, [r9 + 2]
call qword [sym.imp.CRYPT32.dll_CertAddCertificateContextToStore]
test eax, eax
je 0x14012f630
xor edx, edx
mov rcx, rbx
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
mov al, 1
jmp 0x14012f655
lea r8, str.Failed_adding_the_cert
mov ecx, 2
lea rdx, str.stream_secure_channel
call fcn.1400cfb60
xor edx, edx
mov rcx, rbx
call qword [sym.imp.CRYPT32.dll_CertCloseStore]
xor al, al
mov rdi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop r14
pop rsi
pop rbp
ret