Function at 0x4bad0835
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push 0x4ba827f6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x70
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x4ba80b20
xor edi, edi
push edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x6c], edi
call sub.MSVBVM60.DLL_VarPtr
mov esi, 0x4ba85728
mov ebx, eax
push esi
call sub.MSVBVM60.DLL_VarPtr
push edi
push 0x18
push eax
lea eax, [ebp - 0x18]
push ebx
push eax
call sub.ADVAPI32.DLL_CryptAcquireContextW
neg eax
sbb eax, eax
inc eax
neg eax
test ax, ax
je 0x4bad0ad5
push edi
call sub.MSVBVM60.DLL_VarPtr
push esi
mov ebx, eax
call sub.MSVBVM60.DLL_VarPtr
push 8
push 0x18
push eax
lea eax, [ebp - 0x18]
push ebx
push eax
call sub.ADVAPI32.DLL_CryptAcquireContextW
neg eax
sbb eax, eax
inc eax
neg eax
test ax, ax
je 0x4bad0ad5
push edi
push 4
push 1
lea eax, [ebp - 0x1c]
push edi
push eax
push 0x10
push 0x880
call sub.MSVBVM60.DLL___vbaRedim
add esp, 0x1c
lea eax, [ebp - 0x18]
push eax
call sub.MSVBVM60.DLL_VarPtr
push 3
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
pop esi
mov dword [ebp - 0x2c], esi
lea edx, [ebp - 0x2c]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov ebx, ecx
mov ecx, dword [eax + 0xc]
sub ecx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push edi
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], esi
lea edx, [ebp - 0x3c]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov ebx, ecx
mov ecx, dword [eax + 0xc]
sub ecx, ebx
add ecx, 0x10
call sub.MSVBVM60.DLL___vbaVarMove
mov ebx, 0x4ba857b4
push ebx
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
push 2
mov dword [ebp - 0x4c], esi
pop ecx
lea edx, [ebp - 0x4c]
sub ecx, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x54], 0x18
mov dword [ebp - 0x5c], esi
sub ecx, dword [eax + 0x14]
lea edx, [ebp - 0x5c]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
mov eax, dword [ebp - 0x1c]
push 4
pop ecx
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x6c], 2
sub ecx, dword [eax + 0x14]
lea edx, [ebp - 0x6c]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x4bad21f8]
push 0x13
pop ecx
sub ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
push dword [eax + ecx*4]
call fcn.4ba824a8
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x1c]
push eax
push edi
call sub.MSVBVM60.DLL___vbaErase
cmp dword [ebp - 0x70], edi
jne 0x4bad0ad5
push edi
push 4
push 1
lea eax, [ebp - 0x1c]
push edi
push eax
push 0x10
push 0x880
call sub.MSVBVM60.DLL___vbaRedim
add esp, 0x1c
lea eax, [ebp - 0x18]
push eax
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], esi
lea edx, [ebp - 0x2c]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov dword [ebp - 0x7c], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x7c]
sub ecx, eax
call sub.MSVBVM60.DLL___vbaVarMove
push edi
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], esi
lea edx, [ebp - 0x3c]
mov ecx, dword [eax + 0x14]
shl ecx, 4
mov dword [ebp - 0x80], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x80]
sub ecx, eax
add ecx, 0x10
call sub.MSVBVM60.DLL___vbaVarMove
push ebx
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
push 2
mov dword [ebp - 0x4c], esi
pop ecx
lea edx, [ebp - 0x4c]
sub ecx, dword [eax + 0x14]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
mov eax, dword [ebp - 0x1c]
mov ecx, esi
mov dword [ebp - 0x54], 0x18
mov dword [ebp - 0x5c], esi
sub ecx, dword [eax + 0x14]
lea edx, [ebp - 0x5c]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
mov eax, dword [ebp - 0x1c]
push 4
pop ecx
mov dword [ebp - 0x64], 8
mov dword [ebp - 0x6c], esi
sub ecx, dword [eax + 0x14]
lea edx, [ebp - 0x6c]
shl ecx, 4
add ecx, dword [eax + 0xc]
call sub.MSVBVM60.DLL___vbaVarMove
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x4bad21f8]
push 0x13
pop ecx
sub ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
push dword [eax + ecx*4]
call fcn.4ba824a8
mov esi, eax
lea eax, [ebp - 0x1c]
push eax
push edi
call sub.MSVBVM60.DLL___vbaErase
cmp esi, edi
je 0x4bad0adb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
push 0x4bad0aef
jmp 0x4bad0aee
ret