Function at 0x18000bb80
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

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov edi, r9d
mov r14, r8
mov r13d, edx
mov rsi, rcx
mov dword [rsp + 0x20], 0x1cb
lea r15, str.......DLLsDLApiCryptHelpers.cpp
mov r9, r15
xor r8d, r8d
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008d80
mov r9d, 0xff
lea r8, [0x180040730]
lea rdx, str.DlDecryptMemory
lea rcx, [rbp - 0x28]
call fcn.18000a9b0
nop
mov dword [rsp + 0x20], 0
mov r9d, 1
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x18000bd4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, 1
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rbp - 0x48]
cmp eax, 0x80090016
jne 0x18000bcfc
mov dword [rsp + 0x20], 8
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x18000bd4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.180003830
mov rcx, rax
mov dword [rsp + 0x28], 0x1dd
mov qword [rsp + 0x20], r15
mov r9d, ebx
lea r8, str.CryptAcquireContext_NEWKEYSET__failed
lea rdx, str.DlDecryptMemory
call fcn.180009160
mov dword [rsp + 0x20], 0xf0000000
mov r9d, 1
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x18000bd4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov dword [rsp + 0x28], 0x1e1
mov qword [rsp + 0x20], r15
lea r9, str.CryptAcquireContext_VERIFYCONTEXT__failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
mov dword [rsp + 0x20], 0xf0000000
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
jne 0x18000bd4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov dword [rsp + 0x28], 0x1ea
mov qword [rsp + 0x20], r15
lea r9, str.CryptAcquireContext_VERIFYCONTEXT__failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x18000bdb2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov dword [rsp + 0x28], 0x1f4
mov qword [rsp + 0x20], r15
lea r9, str.CryptCreateHash_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
xor r9d, r9d
mov r8d, dword [rbp + 0x58]
mov rdx, qword [rbp + 0x50]
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x18000be0c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov dword [rsp + 0x28], 0x1fb
mov qword [rsp + 0x20], r15
lea r9, str.CryptHashData_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
lea rax, [rbp - 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 0x380000
mov r8, qword [rbp - 0x40]
mov edx, 0x6801
mov rcx, qword [rbp - 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x18000be73
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov dword [rsp + 0x28], 0x202
mov qword [rsp + 0x20], r15
lea r9, str.CryptDeriveKey_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x18000beb3
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
test eax, eax
jne 0x18000beab
mov dword [rsp + 0x20], 0x20b
mov r9, r15
lea r8, str.CryptDestroyHash_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180009070
mov qword [rbp - 0x40], 0
mov ecx, 0x3e8
call fcn.1800144c8
mov r12, rax
test rax, rax
jne 0x18000bf00
mov dword [rsp + 0x28], 0x219
mov qword [rsp + 0x20], r15
lea r9, str.Out_of_memory
xor r8d, r8d
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
xor ebx, ebx
test r13d, r13d
je 0x18000bfd3
sub r14, rsi
nop
mov eax, r13d
sub eax, ebx
mov ecx, 0x3e8
cmp eax, ecx
cmovb ecx, eax
mov dword [rbp - 0x50], ecx
mov r8d, ecx
mov rdx, rsi
mov rcx, r12
call fcn.180016bf0
xor r8d, r8d
cmp dword [rbp - 0x50], 0x3e8
setb r8b
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor edx, edx
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x18000bf98
test edi, edi
je 0x18000bf7a
mov eax, dword [rbp - 0x50]
cmp eax, edi
cmova eax, edi
mov r8d, eax
lea rcx, [r14 + rsi]
mov rdx, r12
call fcn.180016bf0
add ebx, 0x3e8
add rsi, 0x3e8
add edi, 0xfffffc18
cmp ebx, r13d
jb 0x18000bf10
jmp 0x18000bfd3
mov dword [rsp + 0x28], 0x22a
mov qword [rsp + 0x20], r15
lea r9, str.CryptDecrypt_failed
xor r8d, r8d
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
xor eax, eax
jmp 0x18000c083
mov rcx, r12
call fcn.180016bd8
mov rcx, qword [rbp - 0x38]
test rcx, rcx
je 0x18000c013
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
test eax, eax
jne 0x18000c013
mov dword [rsp + 0x20], 0x23a
mov r9, r15
lea r8, str.CryptDestroyKey_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180009070
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x18000c04d
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
test eax, eax
jne 0x18000c04d
mov dword [rsp + 0x20], 0x241
mov r9, r15
lea r8, str.CryptReleaseContext_failed
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180009070
mov dword [rsp + 0x28], 0x284
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8d, [r9 + 1]
lea rdx, str.DlDecryptMemory
lea rcx, [0x180040730]
call fcn.180008f00
nop
lea rcx, [rbp - 0x28]
call fcn.180009670
mov eax, 1
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret