Function at 0x1800034e8
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 esi, esi
lea rcx, [rbp - 0x18]
lea r9d, [rsi + 0x18]
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0xf0000000
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x180003721
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 0x180003715
mov rcx, qword [rbp - 0x20]
and dword [rsp + 0x20], esi
lea r9, [rbp - 0x30]
lea edx, [rsi + 2]
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x18000370b
mov ebx, dword [rbp + 0x60]
lea r13d, [rsi + 0x40]
lea rdx, [rbx + 4]
mov ecx, r13d
mov r15d, ebx
mov qword [rbp - 8], rbx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r14, rax
mov qword [rbp - 0x10], rax
test rax, rax
je 0x18000370b
mov edx, dword [rbp - 0x30]
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r12, rax
test rax, rax
je 0x180003702
mov edx, dword [rbp - 0x30]
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r13, rax
test rax, rax
je 0x1800036f9
mov r8d, ebx
mov rdx, rdi
mov rcx, r14
mov esi, 1
call fcn.180076230
cmp dword [rbp + 0x78], 0
mov eax, esi
mov dword [rbp - 0x2c], eax
jbe 0x1800036f0
lea ecx, [rbx + 4]
mov ebx, dword [rbp + 0x78]
mov dword [rbp - 0x28], ecx
mov r8d, dword [rbp + 0x50]
mov rdx, qword [rbp + 0x48]
bswap eax
mov dword [r15 + r14], eax
mov eax, dword [rbp - 0x30]
mov r9, r14
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], ecx
mov ecx, dword [rbp + 0x40]
call fcn.18000335c
mov r8d, dword [rbp - 0x30]
mov rdx, r13
mov rcx, r12
call fcn.180076230
mov eax, dword [rbp + 0x68]
mov edi, dword [rbp - 0x30]
cmp eax, esi
jbe 0x1800036bb
mov r14d, dword [rbp + 0x40]
mov r15d, dword [rbp + 0x50]
lea ebx, [rax - 1]
mov rdx, qword [rbp + 0x48]
mov dword [rsp + 0x30], edi
mov r9, r13
mov r8d, r15d
mov ecx, r14d
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], edi
call fcn.18000335c
mov edi, dword [rbp - 0x30]
xor r11d, r11d
test edi, edi
je 0x180003691
mov rdx, r13
mov rcx, r12
sub rdx, r12
mov al, byte [rdx + rcx]
add r11d, esi
xor byte [rcx], al
mov edi, dword [rbp - 0x30]
add rcx, rsi
cmp r11d, edi
jb 0x18000367e
cmp dword [rbp + 0x80], 0
je 0x1800036ab
mov r8d, edi
mov rdx, r12
mov rcx, r13
call fcn.180076230
mov edi, dword [rbp - 0x30]
sub rbx, rsi
jne 0x18000364c
mov r14, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
mov ebx, dword [rbp + 0x78]
mov rcx, qword [rbp + 0x70]
cmp ebx, edi
mov rdx, r12
cmovb edi, ebx
mov r8d, edi
mov ebx, edi
call fcn.180076230
add qword [rbp + 0x70], rbx
mov ebx, dword [rbp + 0x78]
mov eax, dword [rbp - 0x2c]
mov ecx, dword [rbp - 0x28]
sub ebx, edi
add eax, esi
mov dword [rbp + 0x78], ebx
mov dword [rbp - 0x2c], eax
test ebx, ebx
jne 0x1800035ff
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, r14
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, esi
mov rbx, qword [rsp + 0xc8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret