Function at 0x1400012d0
Capabilities:
Encrypt or decrypt via wincrypt
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt
Reference public rsa key
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x14007e018]
xor rax, rsp
mov qword [rbp - 0x18], rax
cmp qword [0x1400819d0], 0
jne 0x140001333
lea r8, [0x140073e40]
lea rdx, [0x1400869e0]
lea rcx, [0x1400819d0]
call fcn.14003b6fc
cmp qword [0x1400819d0], 0
jne 0x140001333
lea rcx, str.Failed_to_open_output_file._n
call fcn.140001080
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.140034cb0
add rsp, 0x70
pop rbp
ret
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r15
xor r15d, r15d
mov edi, r15d
lea ecx, [r15 + 0x20]
call fcn.14003f38c
mov ebx, dword [0x1400819dc]
lea r9d, [r15 + 1]
xor r8d, r8d
mov dword [rbp - 0x30], r15d
xor edx, edx
mov dword [rsp + 0x20], r15d
lea rcx, [rbp - 0x28]
mov rsi, rax
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x14000144e
mov rcx, qword [rbp - 0x28]
lea rax, [rbp - 0x20]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8004
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140001442
mov rcx, qword [rbp - 0x20]
lea rdx, [0x1400819e0]
xor r9d, r9d
mov r8d, ebx
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
mov rcx, qword [rbp - 0x20]
test eax, eax
je 0x14000143c
lea r9, [rbp - 0x30]
mov dword [rsp + 0x20], r15d
xor r8d, r8d
lea edx, [r15 + 2]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140001438
mov ecx, dword [rbp - 0x30]
call fcn.14003f38c
mov rbx, rax
test rax, rax
je 0x14000144e
mov rcx, qword [rbp - 0x20]
lea r9, [rbp - 0x30]
mov r8, rax
mov dword [rsp + 0x20], r15d
lea edx, [r15 + 2]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140001430
mov edi, dword [rbp - 0x30]
mov rdx, rbx
mov rcx, rsi
lea r8d, [rdi + 1]
call fcn.140036bb0
mov rcx, rbx
call fcn.14003f378
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rbp - 0x28]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, 0x200
call fcn.14003f38c
mov ebx, dword [0x1400819d8]
lea ecx, [rdi + 1]
mov dword [rbp - 0x30], ecx
mov r9d, 1
lea rcx, [rbp - 0x28]
mov dword [rsp + 0x20], r15d
xor r8d, r8d
xor edx, edx
mov r14, rax
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
mov rdi, qword [rsp + 0x90]
test eax, eax
je 0x140001551
mov rcx, qword [rbp - 0x28]
lea rax, [rbp - 0x20]
mov qword [rsp + 0x28], rax
lea rdx, [0x14007ec30]
xor r9d, r9d
mov dword [rsp + 0x20], r15d
mov r8d, ebx
call qword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
je 0x140001545
mov ecx, 0x400
call fcn.14003f38c
mov rbx, rax
test rax, rax
je 0x14000153b
mov r8d, dword [rbp - 0x30]
mov rdx, rsi
mov rcx, rax
call fcn.140036bb0
mov rcx, qword [rbp - 0x20]
lea rax, [rbp - 0x30]
xor r9d, r9d
mov dword [rsp + 0x30], 0x400
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rbx
lea r8d, [r9 + 1]
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x14000153b
mov r8d, dword [rbp - 0x30]
mov rdx, rbx
mov rcx, r14
call fcn.140036bb0
mov rcx, rbx
call fcn.14003f378
mov rcx, qword [rbp - 0x28]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
jmp 0x140001551
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rbp - 0x28]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, 0x5000
call fcn.14003f38c
mov edx, dword [0x1400819dc]
lea r9, [rbp - 0x28]
mov qword [rbp - 0x28], rax
lea rcx, [0x1400819e0]
lea rax, [rbp - 0x30]
mov dword [rbp - 0x30], r15d
mov qword [rsp + 0x20], rax
call fcn.1400010e0
movsxd r8, dword [0x1400819dc]
lea rcx, [0x1400819e0]
mov r9, qword [0x1400819d0]
mov edx, 1
call fcn.14003f2f4
movsxd r8, dword [0x1400819dc]
mov edx, 1
mov r9, qword [0x1400819d0]
mov rcx, rsi
call fcn.14003f2f4
movsxd r8, dword [0x1400819dc]
mov edx, 1
mov r9, qword [0x1400819d0]
mov rcx, r14
call fcn.14003f2f4
movsxd r8, dword [0x1400819dc]
mov edx, 1
mov r9, qword [0x1400819d0]
mov rcx, qword [rbp - 0x28]
call fcn.14003f2f4
mov rcx, qword [0x1400819d0]
call fcn.14003b50c
mov rcx, rsi
mov dword [0x1400819dc], r15d
call fcn.14003f378
mov rcx, r14
call fcn.14003f378
mov rcx, qword [rbp - 0x28]
call fcn.14003f378
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.140034cb0
add rsp, 0x70
pop rbp
ret