Function at 0x180003bb0
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov dword [rax + 0x20], r9d
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, 0x50
xor edi, edi
mov r12d, r8d
mov r14d, edi
call fcn.18000e774
mov rbx, rax
mov qword [rbp - 0x10], rax
test rax, rax
je 0x180003e4c
mov r13, qword [rbp + 0x68]
lea r9d, [rdi + 0x18]
xor r8d, r8d
mov rdx, rax
mov rcx, r13
mov dword [rsp + 0x20], 8
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x180003e43
mov rcx, qword [r13]
lea r9, [rbp - 0x18]
lea edx, [rdi + 1]
mov r8d, 0x4000001
mov qword [rbp - 0x18], rdi
call qword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
je 0x180003e26
mov rcx, qword [rbp - 0x18]
lea rax, [rbp - 0x20]
lea esi, [rdi + 7]
mov qword [rsp + 0x28], rax
mov r8d, esi
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
je 0x180003e26
mov edx, dword [rbp - 0x20]
lea ecx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r15, rax
test rax, rax
je 0x180003e26
mov rcx, qword [rbp - 0x18]
lea rax, [rbp - 0x20]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8d, esi
xor edx, edx
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_CryptExportKey]
test eax, eax
je 0x180003e1d
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov qword [rbp - 0x18], rdi
mov ebx, dword [r15 + 0xc]
shr ebx, 3
mov dword [r15 + 0x10], 1
xor edx, edx
lea eax, [rbx + rbx]
lea rsi, [rax + r15 + 0x14]
mov eax, ebx
shr eax, 1
lea rcx, [rsi + 1]
mov byte [rsi], 1
dec eax
mov r8d, eax
mov edi, eax
call fcn.180079090
mov eax, ebx
mov r8d, edi
shr rax, 1
xor edx, edx
add rsi, rax
lea rcx, [rsi + 1]
mov byte [rsi], 1
call fcn.180079090
lea rcx, [rsi + rbx + 1]
mov r8d, edi
xor edx, edx
mov byte [rsi + rbx], 1
call fcn.180079090
mov r8d, dword [rbp - 0x20]
mov rcx, qword [r13]
lea r11, [rbp - 0x18]
xor edi, edi
xor r9d, r9d
mov qword [rsp + 0x28], r11
mov rdx, r15
mov dword [rsp + 0x20], edi
call qword [sym.imp.ADVAPI32.dll_CryptImportKey]
test eax, eax
je 0x180003e19
mov edx, reloc.WLDAP32.dll_Ordinal_140
lea ecx, [rdi + 0x40]
mov dword [rbp - 0x20], edx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x180003e19
mov dword [rax], 0x201
mov eax, dword [rbp + 0x40]
lea rdx, [rbx + 8]
mov dword [rbx + 4], eax
mov dword [rdx], 0xa400
add rdx, 4
movsxd rax, r12d
test r12d, r12d
je 0x180003d99
mov r8, qword [rbp + 0x48]
mov rcx, rdx
mov r9d, r12d
lea r8, [rax + r8 - 1]
mov al, byte [r8]
dec r8
mov byte [rcx], al
inc rcx
dec r9
jne 0x180003d89
mov r8d, dword [rbp - 0x20]
lea ecx, [r12 + 1]
mov r9d, edi
mov eax, r8d
add rdx, rcx
sub rax, r12
cmp rax, 0xf
je 0x180003de0
movzx eax, byte [rdx]
cmp byte [rdx], dil
mov ecx, Ordinal_69
cmove eax, ecx
inc r9d
mov byte [rdx], al
mov r8d, dword [rbp - 0x20]
mov eax, r9d
mov ecx, r8d
inc rdx
sub rcx, r12
sub rcx, 0xf
cmp rax, rcx
jb 0x180003db4
lea eax, [r8 - 2]
mov rdx, rbx
mov byte [rax + rbx], 2
mov rax, qword [rbp + 0x60]
mov r9, qword [rbp - 0x18]
mov r8d, dword [rbp - 0x20]
mov rcx, qword [r13]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x58]
mov dword [rsp + 0x20], eax
call qword [sym.imp.ADVAPI32.dll_CryptImportKey]
mov rcx, rbx
mov r14d, eax
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbx, qword [rbp - 0x10]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x180003e35
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
test r14d, r14d
jne 0x180003e43
mov rcx, qword [r13]
call fcn.180003214
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, r14d
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret