Function at 0x1400175f0
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Read file on windows
Write file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x140073080]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rdi, r9
mov r14, r8
mov r15, rdx
mov r12, qword [rsp + 0xd0]
mov r8, r9
lea rdx, str.DecryptTheFile_lpszSource___S
lea rcx, [0x140077e88]
call fcn.1400042c0
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov esi, ebx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x48], ebx
mov r13d, ebx
lea rdx, [0x140064588]
mov rcx, rdi
call fcn.1400308d4
mov rdi, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14001781b
lea rdx, [0x140064584]
mov rcx, r12
call fcn.1400308d4
mov rsi, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14001781b
mov dword [rsp + 0x20], ebx
lea r9d, [rbx + 1]
xor r8d, r8d
mov rdx, r15
lea rcx, [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x1400176e6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x1400176e6
mov dword [rsp + 0x20], 8
lea r9d, [rbx + 1]
xor r8d, r8d
mov rdx, r15
lea rcx, [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x14001781b
mov r8, 0xffffffffffffffff
inc r8
cmp byte [r14 + r8], 0
jne 0x140017715
xor r9d, r9d
mov rdx, r14
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x14001781b
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x800000
mov r8, qword [rsp + 0x50]
mov edx, 0x6801
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
je 0x14001781b
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov qword [rsp + 0x50], rbx
mov ecx, 0x3e8
call fcn.140024144
mov rbx, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x14001781b
mov r9, rdi
mov edx, 1
mov r8d, 0x3e8
mov rcx, rbx
call fcn.140030f2c
mov dword [rsp + 0x48], eax
mov rcx, rdi
call fcn.1400307ec
test eax, eax
jne 0x14001781b
mov rcx, rdi
call fcn.1400307c0
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov r8d, eax
xor edx, edx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x14001781b
mov r8d, dword [rsp + 0x48]
mov r9, rsi
mov edx, 1
mov rcx, rbx
call fcn.140030c18
mov rcx, rsi
call fcn.1400307ec
test eax, eax
jne 0x14001781b
mov rcx, rdi
call fcn.1400307c0
test eax, eax
je 0x140017790
mov r13d, 1
test rdi, rdi
je 0x140017828
mov rcx, rdi
call fcn.140030964
test rsi, rsi
je 0x140017835
mov rcx, rsi
call fcn.140030964
test rbx, rbx
je 0x140017842
mov rcx, rbx
call fcn.140023e64
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140017852
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140017862
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140017874
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, r13d
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140023e40
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret