Function at 0x14000e050
Capabilities:
Create new key via cryptacquirecontext
Encode data using xor
Get disk information
Get system information on windows
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x9e0]
sub rsp, 0xae0
mov rax, qword [0x14002b010]
xor rax, rsp
mov qword [rbp + 0x9d0], rax
mov qword [rbp - 8], rcx
mov qword [rbp], rcx
xor ebx, ebx
mov dword [rbp - 0x10], ebx
xor edx, edx
mov r8d, 0xf8
lea rcx, [rbp + 0x160]
call sub.VCRUNTIME140.dll_memset
lea rcx, [rbp + 0x160]
call fcn.140019ce0
nop
lea rcx, [rbp + 8]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
xor edx, edx
mov cl, 0x50
call fcn.140001870
movzx r12d, al
mov byte [rsp + 0x6f], al
mov byte [rsp + 0x40], al
lea edx, [rbx + 1]
mov cl, 0x72
call fcn.140001870
mov byte [rsp + 0x63], al
mov byte [rsp + 0x41], al
lea edx, [rbx + 2]
mov cl, 0x6f
call fcn.140001870
movzx r13d, al
mov byte [rsp + 0x70], al
mov byte [rsp + 0x42], al
lea edx, [rbx + 3]
mov cl, 0x63
call fcn.140001870
mov byte [rsp + 0x65], al
mov byte [rsp + 0x43], al
lea edx, [rbx + 4]
mov cl, 0x65
call fcn.140001870
mov byte [rsp + 0x61], al
mov byte [rsp + 0x44], al
lea edx, [rbx + 5]
mov cl, 0x73
call fcn.140001870
movzx edi, al
mov byte [rbp - 0x80], al
mov byte [rsp + 0x45], al
lea edx, [rbx + 6]
call fcn.140001870
mov byte [rsp + 0x66], al
mov byte [rsp + 0x46], al
lea edx, [rbx + 7]
mov cl, 0x6f
call fcn.140001870
movzx r15d, al
mov byte [rbp - 0x48], al
mov byte [rsp + 0x47], al
lea edx, [rbx + 8]
mov cl, 0x72
call fcn.140001870
mov byte [rsp + 0x64], al
mov byte [rsp + 0x48], al
lea edx, [rbx + 9]
mov cl, 0x20
call fcn.140001870
mov byte [rsp + 0x62], al
mov byte [rsp + 0x49], al
lea edx, [rbx + 0xa]
mov cl, 0x41
call fcn.140001870
mov byte [rsp + 0x4a], al
lea edx, [rbx + 0xb]
mov cl, 0x72
call fcn.140001870
mov byte [rsp + 0x7e], al
mov byte [rsp + 0x4b], al
lea edx, [rbx + 0xc]
mov cl, 0x63
call fcn.140001870
mov byte [rsp + 0x75], al
mov byte [rsp + 0x4c], al
lea edx, [rbx + 0xd]
mov cl, 0x68
call fcn.140001870
mov byte [rbp - 0x34], al
mov byte [rsp + 0x4d], al
lea edx, [rbx + 0xe]
mov cl, 0x69
call fcn.140001870
mov byte [rsp + 0x4e], al
lea edx, [rbx + 0xf]
mov cl, 0x74
call fcn.140001870
mov byte [rsp + 0x6c], al
mov byte [rsp + 0x4f], al
lea edx, [rbx + 0x10]
mov cl, 0x65
call fcn.140001870
mov byte [rsp + 0x73], al
mov byte [rsp + 0x50], al
lea edx, [rbx + 0x11]
mov cl, 0x63
call fcn.140001870
mov byte [rsp + 0x51], al
lea edx, [rbx + 0x12]
mov cl, 0x74
call fcn.140001870
mov byte [rbp - 0x3a], al
mov byte [rsp + 0x52], al
lea edx, [rbx + 0x13]
mov cl, 0x75
call fcn.140001870
mov byte [rsp + 0x74], al
mov byte [rsp + 0x53], al
lea edx, [rbx + 0x14]
mov cl, 0x72
call fcn.140001870
mov byte [rsp + 0x54], al
lea edx, [rbx + 0x15]
mov cl, 0x65
call fcn.140001870
mov byte [rsp + 0x55], al
lea edx, [rbx + 0x16]
mov cl, 0x3a
call fcn.140001870
movzx esi, al
mov byte [rsp + 0x56], al
lea edx, [rbx + 0x17]
mov cl, 0x20
call fcn.140001870
movzx r14d, al
mov byte [rsp + 0x57], al
xor eax, eax
mov byte [rsp + 0x58], al
mov edx, ebx
nop dword [rax + rax]
movsxd rax, edx
lea rcx, [rsp + 0x40]
add rcx, rax
lea eax, [rdx - 0x16]
xor byte [rcx], al
inc edx
cmp edx, 0x18
jb 0x14000e270
mov byte [rsp + 0x58], 0
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x170]
call fcn.14001e650
mov edx, dword [rbp + 0x2c]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x140024a68]
call fcn.14001e650
mov byte [rbp - 0x60], r12b
movzx eax, byte [rsp + 0x63]
mov byte [rbp - 0x5f], al
mov byte [rbp - 0x5e], r13b
movzx eax, byte [rsp + 0x65]
mov byte [rbp - 0x5d], al
movzx eax, byte [rsp + 0x61]
mov byte [rbp - 0x5c], al
mov byte [rbp - 0x5b], dil
movzx eax, byte [rsp + 0x66]
mov byte [rbp - 0x5a], al
mov byte [rbp - 0x59], r15b
movzx eax, byte [rsp + 0x64]
mov byte [rbp - 0x58], al
movzx eax, byte [rsp + 0x62]
mov byte [rbp - 0x57], al
mov edx, 0xa
mov cl, 0x4c
call fcn.140001870
mov byte [rbp - 0x56], al
mov edx, 0xb
mov cl, 0x65
call fcn.140001870
mov byte [rsp + 0x68], al
mov byte [rbp - 0x55], al
mov edx, 0xc
mov cl, 0x76
call fcn.140001870
movzx edi, al
mov byte [rbp - 0x54], al
mov edx, 0xd
mov cl, 0x65
call fcn.140001870
mov byte [rsp + 0x71], al
mov byte [rbp - 0x53], al
mov edx, 0xe
mov cl, 0x6c
call fcn.140001870
mov byte [rbp - 0x52], al
mov edx, 0xf
mov cl, 0x3a
call fcn.140001870
mov byte [rbp - 0x51], al
mov edx, 0x10
mov cl, 0x20
call fcn.140001870
mov byte [rbp - 0x37], al
mov byte [rbp - 0x50], al
xor eax, eax
mov byte [rbp - 0x4f], al
mov edx, ebx
nop word [rax + rax]
movsxd rax, edx
lea rcx, [rbp - 0x60]
add rcx, rax
lea eax, [rdx - 0x16]
xor byte [rcx], al
inc edx
cmp edx, 0x11
jb 0x14000e380
mov byte [rbp - 0x4f], 0
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0x170]
call fcn.14001e650
movzx edx, word [rbp + 0x34]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_short_int____ptr64]
mov rcx, rax
lea rdx, [0x140024a68]
call fcn.14001e650
mov byte [rsp + 0x40], r12b
movzx eax, byte [rsp + 0x63]
mov byte [rsp + 0x41], al
mov byte [rsp + 0x42], r13b
movzx eax, byte [rsp + 0x65]
mov byte [rsp + 0x43], al
movzx r13d, byte [rsp + 0x61]
mov byte [rsp + 0x44], r13b
movzx eax, byte [rbp - 0x80]
mov byte [rsp + 0x45], al
movzx eax, byte [rsp + 0x66]
mov byte [rsp + 0x46], al
mov byte [rsp + 0x47], r15b
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x62]
mov byte [rsp + 0x49], al
mov edx, 0xa
mov cl, 0x52
call fcn.140001870
mov byte [rsp + 0x4a], al
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0x4b], al
invalid
invalid
jl 0x14000e456