Function at 0x40894e
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 + 0x294], esi
mov eax, dword [ebx + 0x98]
push str.advapi32.dll
mov dword [eax + 0x2ac], esi
call ebp
mov edi, eax
cmp edi, esi
jne 0x408993
push esi
push str.advapi32
call fcn.0040bda6
pop ecx
pop ecx
jmp 0x408baa
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptAcquireContextA
push edi
call esi
push str.CryptDestroyKey
push edi
mov dword [0x422118], eax
call esi
push str.CryptGetKeyParam
push edi
mov dword [0x42210c], eax
call esi
push str.CryptSetKeyParam
push edi
mov dword [0x4221e8], eax
call esi
push str.CryptExportKey
push edi
mov dword [0x4221f8], eax
call esi
push str.CryptGetUserKey
push edi
mov dword [0x4220f8], eax
call esi
push str.CryptEncrypt
push edi
mov dword [0x4220fc], eax
call esi
push str.CryptGenKey
push edi
mov dword [0x4221ec], eax
call esi
push str.CryptGenRandom
push edi
mov dword [0x4220f4], eax
call esi
push str.CryptImportKey
push edi
mov dword [0x4221fc], eax
call esi
push str.CryptDecrypt
push edi
mov dword [0x422100], eax
call esi
push str.CryptCreateHash
push edi
mov dword [0x4221f4], eax
call esi
push str.CryptHashData
push edi
mov dword [0x4221f0], eax
call esi
push str.CryptSignHashA
push edi
mov dword [0x422114], eax
call esi
push str.CryptVerifySignatureA
push edi
mov dword [0x422108], eax
call esi
push str.CryptReleaseContext
push edi
mov dword [0x422104], eax
call esi
push str.crypt32.dll
mov dword [0x422110], eax
call ebp
mov edi, eax
xor ebp, ebp
cmp edi, ebp
je 0x408a92
push str.CryptProtectData
push edi
call esi
push str.CryptUnprotectData
push edi
mov dword [0x4221e4], eax
call esi
mov dword [0x422200], eax
cmp dword [0x4221e4], ebp
push 3
pop edi
jne 0x408aaf
mov eax, dword [ebx + 0x98]
add eax, 0x2c8
cmp dword [eax], 2
jne 0x408aaf
mov dword [eax], edi
cmp dword [0x422118], ebp
push ebp
jne 0x408ac2
push str.CryptAcquireContext
jmp 0x408987
mov ecx, ebx
call fcn.00408bb6
xor esi, esi
mov eax, dword [ebx + 0x98]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebp
je 0x408ae3
cmp dword [eax + 0x2b0], ebp
je 0x408af3
cmp dword [eax + 0x294], ebp
je 0x408b57
cmp dword [eax + 0x298], ebp
jne 0x408b57
inc esi
cmp esi, edi
jg 0x408b71
cmp ecx, ebp
je 0x408b10
push ebp
push ecx
call dword [0x422110]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x2ac], ebp
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0x294]
cmp eax, ebp
je 0x408b34
push ebp
push eax
call dword [0x422110]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x294], ebp
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, edi
jne 0x408b48
push 2
pop eax
jmp 0x408b4a
xor eax, eax
push eax
mov ecx, ebx
call fcn.00408bb6
jmp 0x408acb
cmp esi, edi
jg 0x408b71
mov eax, dword [ebx + 0x98]
cmp dword [eax + 0x2b0], ebp
jne 0x408b94
cmp dword [eax + 0x298], ebp
jne 0x408b94
mov eax, dword [ebx]
push 1
push 0x420860
push str.RSA__
mov ecx, ebx
call dword [eax + 0x90]
cmp eax, 1
jne 0x408b94
push edi
mov ecx, ebx
call fcn.00408bb6
mov ebx, dword [ebx + 0x98]
cmp dword [ebx + 0x2b0], ebp
jne 0x408bae
cmp dword [ebx + 0x298], ebp
jne 0x408bae
xor eax, eax
jmp 0x408bb1
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
ret