Function at 0x180044108
Capabilities:
Create new key via cryptacquirecontext
Encode data using xor
Initialize hashing via wincrypt

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
mov dword [rax + 0x18], r8d
mov qword [rax + 0x10], rdx
mov dword [rax + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rdi, r9
mov ebx, ecx
xor r14d, r14d
lea rcx, [rbp - 0x18]
lea r9d, [r14 + 0x18]
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0xf0000000
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x180044339
mov rcx, qword [rbp - 0x18]
lea rax, [rbp - 0x20]
xor r9d, r9d
xor r8d, r8d
mov edx, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x18004432d
mov rcx, qword [rbp - 0x20]
and dword [rsp + 0x20], r14d
lea r9, [rbp - 0x30]
lea edx, [r14 + 2]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x180044323
mov ebx, dword [rbp + 0x60]
lea esi, [r14 + 0x40]
lea rdx, [rbx + 4]
mov ecx, esi
mov qword [rbp - 0x10], rbx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r12, rax
mov qword [rbp - 8], rax
test rax, rax
je 0x180044323
mov edx, dword [rbp - 0x30]
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r15, rax
test rax, rax
je 0x18004431a
mov edx, dword [rbp - 0x30]
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x180044311
mov r8d, ebx
mov rdx, rdi
mov rcx, r12
mov r14d, 1
call fcn.1800ca790
mov r13d, dword [rbp + 0x78]
mov eax, r14d
mov dword [rbp - 0x2c], eax
test r13d, r13d
je 0x180044308
lea edx, [rbx + 4]
mov dword [rbp - 0x28], edx
bswap eax
mov rcx, qword [rbp - 0x10]
mov r8d, dword [rbp + 0x50]
mov dword [rcx + r12], eax
mov eax, dword [rbp - 0x30]
mov ecx, dword [rbp + 0x40]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], edx
mov rdx, qword [rbp + 0x48]
mov r9, r12
call fcn.180043f74
mov r8d, dword [rbp - 0x30]
mov rdx, rsi
mov rcx, r15
call fcn.1800ca790
mov eax, dword [rbp + 0x68]
mov edi, dword [rbp - 0x30]
cmp eax, r14d
jbe 0x1800442d0
mov r12d, dword [rbp + 0x40]
mov r13d, dword [rbp + 0x50]
lea ebx, [rax - 1]
mov rdx, qword [rbp + 0x48]
mov dword [rsp + 0x30], edi
mov r9, rsi
mov r8d, r13d
mov ecx, r12d
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], edi
call fcn.180043f74
mov edi, dword [rbp - 0x30]
xor edx, edx
test edi, edi
je 0x1800442a9
mov al, byte [rdx + rsi]
xor byte [rdx + r15], al
mov edi, dword [rbp - 0x30]
add edx, r14d
cmp edx, edi
jb 0x180044298
cmp dword [rbp + 0x80], 0
je 0x1800442c3
mov r8d, edi
mov rdx, r15
mov rcx, rsi
call fcn.1800ca790
mov edi, dword [rbp - 0x30]
sub rbx, r14
jne 0x180044270
mov r12, qword [rbp - 8]
mov r13d, dword [rbp + 0x78]
mov rcx, qword [rbp + 0x70]
cmp r13d, edi
mov rdx, r15
cmovb edi, r13d
mov r8d, edi
mov ebx, edi
call fcn.1800ca790
mov eax, dword [rbp - 0x2c]
add qword [rbp + 0x70], rbx
mov edx, dword [rbp - 0x28]
sub r13d, edi
add eax, r14d
mov dword [rbp - 0x2c], eax
mov dword [rbp + 0x78], r13d
test r13d, r13d
jne 0x18004421e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rbp - 0x18]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, r14d
mov rbx, qword [rsp + 0xc8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret