Function at 0x521b30
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 + 0x78]
push esi
push edi
xor edi, edi
mov dword [eax + 0x55fc], edi
mov ecx, dword [ebx + 0x78]
push str.advapi32.dll
mov dword [ecx + 0x5614], edi
call ebp
mov esi, eax
cmp esi, edi
jne 0x521b72
push edi
push str.advapi32
call fcn.0043c440
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptAcquireContextA
push esi
call edi
push str.CryptDestroyKey
push esi
mov dword [0x5f43f0], eax
call edi
push str.CryptGetKeyParam
push esi
mov dword [0x5f43ec], eax
call edi
push str.CryptSetKeyParam
push esi
mov dword [0x5f43e8], eax
call edi
push str.CryptExportKey
push esi
mov dword [0x5f43e4], eax
call edi
push str.CryptGetUserKey
push esi
mov dword [0x5f43e0], eax
call edi
push str.CryptEncrypt
push esi
mov dword [0x5f43dc], eax
call edi
push str.CryptGenKey
push esi
mov dword [0x5f43d8], eax
call edi
push str.CryptGenRandom
push esi
mov dword [0x5f43d4], eax
call edi
push str.CryptImportKey
push esi
mov dword [0x5f43d0], eax
call edi
push str.CryptDecrypt
push esi
mov dword [0x5f43cc], eax
call edi
push str.CryptCreateHash
push esi
mov dword [0x5f43c8], eax
call edi
push str.CryptHashData
push esi
mov dword [0x5f43c0], eax
call edi
push str.CryptSignHashA
push esi
mov dword [0x5f43bc], eax
call edi
push str.CryptVerifySignatureA
push esi
mov dword [0x5f43b8], eax
call edi
push str.CryptReleaseContext
push esi
mov dword [0x5f43b4], eax
call edi
push str.crypt32.dll
mov dword [0x5f43c4], eax
call ebp
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x521c71
push str.CryptProtectData
push esi
call edi
push str.CryptUnprotectData
push esi
mov dword [0x5f43b0], eax
call edi
mov dword [0x5f43ac], eax
cmp dword [0x5f43b0], ebp
jne 0x521c8f
mov eax, dword [ebx + 0x78]
cmp dword [eax + 0x5630], 2
jne 0x521c8f
mov dword [eax + 0x5630], 3
mov eax, dword [0x5f43f0]
push ebp
cmp eax, ebp
jne 0x521cad
push str.CryptAcquireContext
call fcn.0043c440
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, ebx
call fcn.005216b0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax + 0x5614]
cmp ecx, ebp
je 0x521cd1
cmp dword [eax + 0x5618], ebp
je 0x521ce1
cmp dword [eax + 0x55fc], ebp
je 0x521d37
cmp dword [eax + 0x5600], ebp
jne 0x521d37
inc esi
cmp esi, 3
jg 0x521d4f
cmp ecx, ebp
je 0x521cfc
push ebp
push ecx
call dword [0x5f43c4]
mov edx, dword [ebx + 0x78]
mov dword [edx + 0x5614], ebp
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + 0x55fc]
cmp eax, ebp
je 0x521d1a
push ebp
push eax
call dword [0x5f43c4]
mov ecx, dword [ebx + 0x78]
mov dword [ecx + 0x55fc], ebp
push 0x3e8
call edi
xor edx, edx
cmp esi, 3
setne dl
dec edx
mov ecx, ebx
and edx, 2
push edx
call fcn.005216b0
jmp 0x521cbc
cmp esi, 3
jg 0x521d4f
mov eax, dword [ebx + 0x78]
cmp dword [eax + 0x5618], ebp
jne 0x521d70
cmp dword [eax + 0x5600], ebp
jne 0x521d70
push 1
push 0x5e0340
push str.RSA
mov ecx, ebx
call sub.MFC42.DLL_CWnd::MessageBoxA
cmp eax, 1
jne 0x521d70
push 3
mov ecx, ebx
call fcn.005216b0
mov ebx, dword [ebx + 0x78]
cmp dword [ebx + 0x5618], ebp
jne 0x521d8a
cmp dword [ebx + 0x5600], ebp
jne 0x521d8a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret