Function at 0x52cf80
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x403006
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x84
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x4012f8
mov esi, dword [sym.imp.MSVBVM60.DLL_VarPtr]
xor edi, edi
push edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x80], edi
call esi
mov ebx, dword [ebp - 0x2c]
sub esp, 0x10
mov edx, esp
mov ecx, 8
mov dword [ebp - 0x84], eax
mov eax, 0x405fc8
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.004e9fe0
mov edx, eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
push eax
call esi
mov ecx, dword [ebp - 0x84]
push edi
push 0x18
push eax
lea edx, [ebp - 0x18]
push ecx
push edx
call dword [sym.imp.ADVAPI32.DLL_CryptAcquireContextW]
mov edi, eax
lea ecx, [ebp - 0x1c]
neg edi
sbb edi, edi
inc edi
neg edi
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
test di, di
je 0x52d258
push 0
call esi
sub esp, 0x10
mov ecx, 8
mov edx, esp
mov edi, eax
mov eax, 0x4060b4
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.004e9fe0
mov edx, eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
push eax
call esi
push 8
push 0x18
push eax
lea ecx, [ebp - 0x18]
push edi
push ecx
call dword [sym.imp.ADVAPI32.DLL_CryptAcquireContextW]
mov edi, eax
lea ecx, [ebp - 0x1c]
neg edi
sbb edi, edi
inc edi
neg edi
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
test di, di
je 0x52d258
push 0
call esi
sub esp, 0x10
mov ecx, 8
mov edx, esp
mov edi, eax
mov eax, 0x406190
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.004e9fe0
mov edx, eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
push eax
call esi
push 0
push 0x18
push eax
lea ecx, [ebp - 0x18]
push edi
push ecx
call dword [sym.imp.ADVAPI32.DLL_CryptAcquireContextW]
mov edi, eax
lea ecx, [ebp - 0x1c]
neg edi
sbb edi, edi
inc edi
neg edi
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
test di, di
je 0x52d258
push 0
push 4
push 1
lea edx, [ebp - 0x20]
push 0
push edx
push 0x10
push 0x880
call dword [sym.imp.MSVBVM60.DLL___vbaRedim]
add esp, 0x1c
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.MSVBVM60.DLL_VarPtr]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x40], 3
lea edx, [ebp - 0x40]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov edi, ecx
mov ecx, dword [eax + 0xc]
sub ecx, edi
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaVarMove]
call edi
push 0
call esi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x50], 3
lea edx, [ebp - 0x50]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov dword [ebp - 0x94], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x94]
sub ecx, eax
add ecx, 0x10
call edi
sub esp, 0x10
mov ecx, 8
mov edx, esp
mov eax, 0x40629c
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.004e9fe0
mov edx, eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
push eax
call esi
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x20]
mov esi, 3
mov ecx, 2
mov dword [ebp - 0x60], esi
mov ebx, dword [eax + 0x14]
sub ecx, ebx
mov ebx, dword [eax + 0xc]
shl ecx, 4
lea edx, [ebp - 0x60]
add ecx, ebx
call edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x68], 0x18
mov dword [ebp - 0x70], esi
mov ecx, esi
mov ebx, dword [eax + 0x14]
lea edx, [ebp - 0x70]
sub ecx, ebx
mov ebx, dword [eax + 0xc]
shl ecx, 4
add ecx, ebx
call edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x78], 8
mov dword [ebp - 0x80], esi
lea edx, [ebp - 0x80]
mov ecx, 4
mov esi, dword [eax + 0x14]
sub ecx, esi
mov esi, dword [eax + 0xc]
shl ecx, 4
add ecx, esi
call edi
mov eax, dword [0x52f1f8]
lea ecx, [ebp - 0x20]
push ecx
mov edx, 0x13
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
sub edx, ecx
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402cb7
lea edx, [ebp - 0x20]
mov esi, eax
push edx
push 0
call dword [sym.imp.MSVBVM60.DLL___vbaErase]
xor eax, eax
lea ecx, [ebp - 0x1c]
test esi, esi
sete al
neg eax
mov esi, eax
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
test si, si
jne 0x52d25e
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
push 0x52d27c
jmp 0x52d27b
ret