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

Disassembly:
push rbx
push r12
push r13
push r14
push r15
sub rsp, 0x70
xor ebx, ebx
mov dword [rsp + 0x20], 0xf0000000
mov r14, r9
mov dword [rsp + 0x44], ebx
mov r12d, r8d
mov r13, rdx
mov r15d, ecx
xor r8d, r8d
lea r9d, [rbx + 0x18]
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140003a9d
mov rcx, qword [rsp + 0x60]
lea rax, [rsp + 0x58]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, r15d
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140003a90
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x40]
xor r8d, r8d
mov dword [rsp + 0x20], ebx
lea edx, [rbx + 2]
call qword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x140003a85
mov qword [rsp + 0xb0], rdi
lea ecx, [rbx + 0x40]
mov edi, dword [rsp + 0xc0]
lea rdx, [rdi + 4]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140003a7d
mov edx, dword [rsp + 0x40]
lea ecx, [rbx + 0x40]
mov qword [rsp + 0xa0], rbp
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbp, rax
test rax, rax
je 0x140003a61
mov edx, dword [rsp + 0x40]
lea ecx, [rbx + 0x40]
mov qword [rsp + 0xa8], rsi
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x140003a49
mov rdx, r14
mov dword [rsp + 0x44], 1
mov r14, qword [rsp + 0x50]
mov r8d, edi
mov rcx, r14
call fcn.14011b4a0
mov eax, 1
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0xd8], ebx
jbe 0x140003a3e
mov ebx, dword [rsp + 0xd8]
lea r8d, [rdi + 4]
mov rcx, r14
mov dword [rsp + 0x4c], r8d
mov r14d, dword [rsp + 0xe0]
lea rdx, [rdi + rcx]
mov qword [rsp + 0x68], rdx
nop dword [rax]
bswap eax
mov dword [rdx], eax
mov r9, rcx
mov eax, dword [rsp + 0x40]
mov rdx, r13
mov dword [rsp + 0x30], eax
mov ecx, r15d
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r8d
mov r8d, r12d
call fcn.1400035d0
mov r8d, dword [rsp + 0x40]
mov rdx, rsi
mov rcx, rbp
call fcn.14011b4a0
mov eax, dword [rsp + 0xc8]
mov edi, dword [rsp + 0x40]
cmp eax, 1
jbe 0x1400039e8
lea ebx, [rax - 1]
nop word [rax + rax]
mov dword [rsp + 0x30], edi
mov r9, rsi
mov qword [rsp + 0x28], rsi
mov r8d, r12d
mov rdx, r13
mov dword [rsp + 0x20], edi
mov ecx, r15d
call fcn.1400035d0
mov edi, dword [rsp + 0x40]
xor eax, eax
test edi, edi
je 0x1400039c4
nop dword [rax + rax]
movzx ecx, byte [rax + rsi]
lea rdx, [rax + rbp]
xor byte [rdx], cl
inc eax
mov edi, dword [rsp + 0x40]
cmp eax, edi
jb 0x1400039b0
test r14d, r14d
je 0x1400039db
mov r8d, edi
mov rdx, rbp
mov rcx, rsi
call fcn.14011b4a0
mov edi, dword [rsp + 0x40]
sub rbx, 1
jne 0x140003980
mov ebx, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
cmp ebx, edi
mov rdx, rbp
cmovb edi, ebx
mov r8d, edi
mov ebx, edi
call fcn.14011b4a0
add qword [rsp + 0xd0], rbx
mov ebx, dword [rsp + 0xd8]
mov eax, dword [rsp + 0x48]
sub ebx, edi
mov rcx, qword [rsp + 0x50]
inc eax
mov rdx, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x4c]
mov dword [rsp + 0xd8], ebx
mov dword [rsp + 0x48], eax
test ebx, ebx
jne 0x140003930
mov r14, rcx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x140003a4e
mov r14, qword [rsp + 0x50]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rsi, qword [rsp + 0xa8]
jmp 0x140003a66
mov r14, qword [rsp + 0x50]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ebx, dword [rsp + 0x44]
mov rbp, qword [rsp + 0xa0]
jmp 0x140003a7d
mov rdi, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x60]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, ebx
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rbx
ret