Function at 0x140001d20
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Generate random numbers via winapi

Disassembly:
mov r11, rsp
push rbp
lea rbp, [r11 - 0x5f]
sub rsp, 0xf0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x47], rax
mov qword [r11 + 8], rbx
lea rcx, [rbp - 0x59]
mov ebx, 0x2c
mov qword [r11 + 0x18], rdi
mov r9d, 0x18
mov dword [rbp - 0x51], ebx
xor r8d, r8d
mov dword [rsp + 0x20], 0xf0000000
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
mov edi, 0x10
test eax, eax
je 0x140001e06
mov rcx, qword [rbp - 0x59]
lea r9, [rbp - 0x61]
mov edx, 0x6610
mov r8d, 1
call qword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
je 0x140001dfa
mov rcx, qword [rbp - 0x61]
lea rax, [rbp - 0x51]
mov qword [rsp + 0x28], rax
xor r9d, r9d
lea rax, [rbp - 0x39]
xor edx, edx
mov r8d, 8
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
je 0x140001df0
movups xmm0, xmmword [rbp - 0x2d]
lea rax, [rbp - 0x39]
movups xmm1, xmmword [rbp - 0x1d]
movups xmmword [rbp - 9], xmm0
movups xmmword [rbp + 7], xmm1
mov byte [rax], 0
lea rax, [rax + 1]
sub rbx, 1
jne 0x140001dd3
mov rcx, qword [rbp - 0x59]
lea r8, [rbp - 0x49]
mov edx, edi
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
mov rcx, qword [rbp - 0x61]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov rcx, qword [rbp - 0x59]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [0x1400036e0]
lea rdx, [0x1400036e8]
movups xmm0, xmmword [str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov dword [rbp - 0x19], eax
xor r9d, r9d
movups xmm1, xmmword [0x1400036d0]
movzx eax, byte [0x1400036e4]
lea rcx, [rbp - 0x61]
xor r8d, r8d
mov byte [rbp - 0x15], al
movups xmmword [rbp - 0x39], xmm0
movups xmmword [rbp - 0x29], xmm1
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
test eax, eax
js 0x140001eff
mov qword [rsp + 0x108], rsi
xor esi, esi
mov qword [rsp + 0x118], r14
mov ebx, esi
movabs r14, 0xe38e38e38e38e38f
nop dword [rax]
mov rcx, qword [rbp - 0x61]
lea rdx, [rbp - 0x69]
xor r9d, r9d
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptGenRandom]
test eax, eax
js 0x140001ee3
movzx eax, byte [rbp - 0x69]
cmp al, 0xfc
jae 0x140001e70
mov ecx, eax
mov rax, r14
mul rcx
shr rdx, 5
lea rax, [rdx + rdx*8]
shl rax, 2
sub rcx, rax
movzx eax, byte [rbp + rcx - 0x39]
mov byte [rbp + rbx + 0x17], al
inc rbx
inc esi
mov eax, esi
and eax, 0x80000003
jge 0x140001ec8
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jne 0x140001eda
cmp rbx, 0x27
jge 0x140001eda
mov byte [rbp + rbx + 0x17], 0x2d
inc rbx
cmp esi, 0x21
jl 0x140001e70
mov byte [rbp + 0x3e], 0
mov rcx, qword [rbp - 0x61]
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
mov rsi, qword [rsp + 0x108]
mov r14, qword [rsp + 0x118]
lea r8, [rbp + 0x17]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 9]
call fcn.1400010c0
lea r8, [rbp + 0x17]
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 9]
call fcn.1400019d0
lea r9, [rbp + 0x17]
mov dword [rbp - 0x4d], 0x5c3a43
lea r8, [rbp - 0x49]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x4d]
call fcn.140001780
mov rbx, qword [rsp + 0x100]
lea rcx, [rbp - 9]
mov eax, 0x20
nop
mov byte [rcx], 0
lea rcx, [rcx + 1]
sub rax, 1
jne 0x140001f50
lea rax, [rbp - 0x49]
mov byte [rax], 0
lea rax, [rax + 1]
sub rdi, 1
jne 0x140001f61
mov rdi, qword [rsp + 0x110]
xor eax, eax
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140001fa0
add rsp, 0xf0
pop rbp
ret