Function at 0x140001000
Capabilities:
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:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push r14
push r15
sub rsp, 0x58
xor r14d, r14d
lea rcx, [0x140004130]
mov qword [rax - 0x48], r14
mov r15d, 1
mov rbx, r8
mov dword [rax - 0x50], 0x80
xor r9d, r9d
mov dword [rax - 0x58], 3
mov r8d, r15d
mov qword [rax + 8], r14
mov edx, r15d
mov qword [rax - 0x38], r14
mov qword [rax + 0x20], r14
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x14000106c
mov eax, r15d
add rsp, 0x58
pop r15
pop r14
pop rbp
pop rbx
ret
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
lea rcx, [0x140004350]
mov r8d, r15d
mov qword [rsp + 0x90], rsi
mov dword [rsp + 0x20], 4
lea edx, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400010b1
lea eax, [rsi + 3]
jmp 0x1400012f5
mov r9d, r15d
mov dword [rsp + 0x20], r14d
lea r8, str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rsp + 0x80]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x1400010de
mov eax, 3
jmp 0x1400012f5
test rbx, rbx
je 0x14000118b
cmp byte [rbx], r14b
je 0x14000118b
mov rcx, qword [rsp + 0x80]
lea rax, [rsp + 0x98]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x8003
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x140001124
mov eax, 0xd
jmp 0x1400012f5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [rsp + 0x98]
xor r9d, r9d
mov r8d, eax
mov rdx, rbx
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x140001152
mov eax, 0xe
jmp 0x1400012f5
mov r8, qword [rsp + 0x98]
lea rax, [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
mov r9d, 0x800000
mov edx, 0x6801
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x1400011b4
mov eax, 0xf
jmp 0x1400012f5
mov rcx, qword [rsp + 0x80]
lea r9, [rsp + 0x40]
mov r8d, r15d
mov edx, 0x6801
call qword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
jne 0x1400011b4
mov eax, 4
jmp 0x1400012f5
xor ecx, ecx
mov qword [rsp + 0x50], rdi
mov edx, 0x3f0
mov r8d, 0x3000
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
jne 0x1400011e0
lea eax, [rdi + 0x10]
jmp 0x1400012f0
xor bl, bl
lea r9, [rsp + 0x88]
mov qword [rsp + 0x20], r14
mov r8d, 0x3f0
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400012eb
cmp dword [rsp + 0x88], 0x3f0
lea rax, [rsp + 0x88]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x30], 0x3f0
mov qword [rsp + 0x28], rax
movzx ebx, bl
cmovb ebx, r15d
mov qword [rsp + 0x20], rdi
movzx r8d, bl
xor r9d, r9d
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptEncrypt]
test eax, eax
je 0x1400012e4
mov r8d, dword [rsp + 0x88]
lea r9, [rsp + 0x88]
mov rdx, rdi
mov qword [rsp + 0x20], r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400012dd
test bl, bl
je 0x1400011e2
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, qword [rsp + 0x98]
test rcx, rcx
je 0x1400012b4
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1400012c4
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400012d9
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x1400012f0
mov eax, 0x13
jmp 0x1400012f0
mov eax, 0x12
jmp 0x1400012f0
mov eax, 0x11
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x90]
add rsp, 0x58
pop r15
pop r14
pop rbp
pop rbx
ret