Function at 0x408f7c
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
mov ebx, ecx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, dword [ebx + 0x98]
push esi
xor esi, esi
push edi
mov dword [eax + 0x39c], esi
mov eax, dword [ebx + 0x98]
push str.advapi32.dll
mov dword [eax + 0x3b4], esi
call ebp
mov edi, eax
cmp edi, esi
jne 0x408fc1
push esi
push str.advapi32
call fcn.0040c4c4
pop ecx
pop ecx
jmp 0x4091d8
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptAcquireContextA
push edi
call esi
push str.CryptDestroyKey
push edi
mov dword [0x426578], eax
call esi
push str.CryptGetKeyParam
push edi
mov dword [0x42656c], eax
call esi
push str.CryptSetKeyParam
push edi
mov dword [0x426648], eax
call esi
push str.CryptExportKey
push edi
mov dword [0x426658], eax
call esi
push str.CryptGetUserKey
push edi
mov dword [0x426558], eax
call esi
push str.CryptEncrypt
push edi
mov dword [0x42655c], eax
call esi
push str.CryptGenKey
push edi
mov dword [0x42664c], eax
call esi
push str.CryptGenRandom
push edi
mov dword [0x426554], eax
call esi
push str.CryptImportKey
push edi
mov dword [0x42665c], eax
call esi
push str.CryptDecrypt
push edi
mov dword [0x426560], eax
call esi
push str.CryptCreateHash
push edi
mov dword [0x426654], eax
call esi
push str.CryptHashData
push edi
mov dword [0x426650], eax
call esi
push str.CryptSignHashA
push edi
mov dword [0x426574], eax
call esi
push str.CryptVerifySignatureA
push edi
mov dword [0x426568], eax
call esi
push str.CryptReleaseContext
push edi
mov dword [0x426564], eax
call esi
push str.crypt32.dll
mov dword [0x426570], eax
call ebp
mov edi, eax
xor ebp, ebp
cmp edi, ebp
je 0x4090c0
push str.CryptProtectData
push edi
call esi
push str.CryptUnprotectData
push edi
mov dword [0x426644], eax
call esi
mov dword [0x426660], eax
cmp dword [0x426644], ebp
push 3
pop edi
jne 0x4090dd
mov eax, dword [ebx + 0x98]
add eax, 0x3d0
cmp dword [eax], 2
jne 0x4090dd
mov dword [eax], edi
cmp dword [0x426578], ebp
push ebp
jne 0x4090f0
push str.CryptAcquireContext
jmp 0x408fb5
mov ecx, ebx
call fcn.004091e4
xor esi, esi
mov eax, dword [ebx + 0x98]
mov ecx, dword [eax + 0x3b4]
cmp ecx, ebp
je 0x409111
cmp dword [eax + 0x3b8], ebp
je 0x409121
cmp dword [eax + 0x39c], ebp
je 0x409185
cmp dword [eax + 0x3a0], ebp
jne 0x409185
inc esi
cmp esi, edi
jg 0x40919f
cmp ecx, ebp
je 0x40913e
push ebp
push ecx
call dword [0x426570]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x3b4], ebp
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0x39c]
cmp eax, ebp
je 0x409162
push ebp
push eax
call dword [0x426570]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x39c], ebp
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, edi
jne 0x409176
push 2
pop eax
jmp 0x409178
xor eax, eax
push eax
mov ecx, ebx
call fcn.004091e4
jmp 0x4090f9
cmp esi, edi
jg 0x40919f
mov eax, dword [ebx + 0x98]
cmp dword [eax + 0x3b8], ebp
jne 0x4091c2
cmp dword [eax + 0x3a0], ebp
jne 0x4091c2
mov eax, dword [ebx]
push 1
push 0x422908
push str.RSA_failed._Create_New_RSA_key_
mov ecx, ebx
call dword [eax + 0x90]
cmp eax, 1
jne 0x4091c2
push edi
mov ecx, ebx
call fcn.004091e4
mov ebx, dword [ebx + 0x98]
cmp dword [ebx + 0x3b8], ebp
jne 0x4091dc
cmp dword [ebx + 0x3a0], ebp
jne 0x4091dc
xor eax, eax
jmp 0x4091df
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
ret