Function at 0x408939
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 0x40897e
push esi
push str.advapi32
call fcn.0040bdb0
pop ecx
pop ecx
jmp 0x408b95
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptAcquireContextA
push edi
call esi
push str.CryptDestroyKey
push edi
mov dword [0x422108], eax
call esi
push str.CryptGetKeyParam
push edi
mov dword [0x4220fc], eax
call esi
push str.CryptSetKeyParam
push edi
mov dword [0x4221d8], eax
call esi
push str.CryptExportKey
push edi
mov dword [0x4221e8], eax
call esi
push str.CryptGetUserKey
push edi
mov dword [0x4220e8], eax
call esi
push str.CryptEncrypt
push edi
mov dword [0x4220ec], eax
call esi
push str.CryptGenKey
push edi
mov dword [0x4221dc], eax
call esi
push str.CryptGenRandom
push edi
mov dword [0x4220e4], eax
call esi
push str.CryptImportKey
push edi
mov dword [0x4221ec], eax
call esi
push str.CryptDecrypt
push edi
mov dword [0x4220f0], eax
call esi
push str.CryptCreateHash
push edi
mov dword [0x4221e4], eax
call esi
push str.CryptHashData
push edi
mov dword [0x4221e0], eax
call esi
push str.CryptSignHashA
push edi
mov dword [0x422104], eax
call esi
push str.CryptVerifySignatureA
push edi
mov dword [0x4220f8], eax
call esi
push str.CryptReleaseContext
push edi
mov dword [0x4220f4], eax
call esi
push str.crypt32.dll
mov dword [0x422100], eax
call ebp
mov edi, eax
xor ebp, ebp
cmp edi, ebp
je 0x408a7d
push str.CryptProtectData
push edi
call esi
push str.CryptUnprotectData
push edi
mov dword [0x4221d4], eax
call esi
mov dword [0x4221f0], eax
cmp dword [0x4221d4], ebp
push 3
pop edi
jne 0x408a9a
mov eax, dword [ebx + 0x98]
add eax, 0x2c8
cmp dword [eax], 2
jne 0x408a9a
mov dword [eax], edi
cmp dword [0x422108], ebp
push ebp
jne 0x408aad
push str.CryptAcquireContext
jmp 0x408972
mov ecx, ebx
call fcn.00408ba1
xor esi, esi
mov eax, dword [ebx + 0x98]
mov ecx, dword [eax + 0x2ac]
cmp ecx, ebp
je 0x408ace
cmp dword [eax + 0x2b0], ebp
je 0x408ade
cmp dword [eax + 0x294], ebp
je 0x408b42
cmp dword [eax + 0x298], ebp
jne 0x408b42
inc esi
cmp esi, edi
jg 0x408b5c
cmp ecx, ebp
je 0x408afb
push ebp
push ecx
call dword [0x422100]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x2ac], ebp
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0x294]
cmp eax, ebp
je 0x408b1f
push ebp
push eax
call dword [0x422100]
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x294], ebp
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, edi
jne 0x408b33
push 2
pop eax
jmp 0x408b35
xor eax, eax
push eax
mov ecx, ebx
call fcn.00408ba1
jmp 0x408ab6
cmp esi, edi
jg 0x408b5c
mov eax, dword [ebx + 0x98]
cmp dword [eax + 0x2b0], ebp
jne 0x408b7f
cmp dword [eax + 0x298], ebp
jne 0x408b7f
mov eax, dword [ebx]
push 1
push 0x420860
push str.RSA__
mov ecx, ebx
call dword [eax + 0x90]
cmp eax, 1
jne 0x408b7f
push edi
mov ecx, ebx
call fcn.00408ba1
mov ebx, dword [ebx + 0x98]
cmp dword [ebx + 0x2b0], ebp
jne 0x408b99
cmp dword [ebx + 0x298], ebp
jne 0x408b99
xor eax, eax
jmp 0x408b9c
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
ret