Function at 0x4fcc80
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 + 0x74]
push esi
push edi
xor edi, edi
mov dword [eax + 0x52c0], edi
mov ecx, dword [ebx + 0x74]
push str.advapi32.dll
mov dword [ecx + 0x52d8], edi
call ebp
mov esi, eax
cmp esi, edi
jne 0x4fccc2
push edi
push str.advapi32
call fcn.00438b50
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 [0x5ee060], eax
call edi
push str.CryptGetKeyParam
push esi
mov dword [0x5ee05c], eax
call edi
push str.CryptSetKeyParam
push esi
mov dword [0x5ee058], eax
call edi
push str.CryptExportKey
push esi
mov dword [0x5ee054], eax
call edi
push str.CryptGetUserKey
push esi
mov dword [0x5ee050], eax
call edi
push str.CryptEncrypt
push esi
mov dword [0x5ee04c], eax
call edi
push str.CryptGenKey
push esi
mov dword [0x5ee048], eax
call edi
push str.CryptGenRandom
push esi
mov dword [0x5ee044], eax
call edi
push str.CryptImportKey
push esi
mov dword [0x5ee040], eax
call edi
push str.CryptDecrypt
push esi
mov dword [0x5ee03c], eax
call edi
push str.CryptCreateHash
push esi
mov dword [0x5ee038], eax
call edi
push str.CryptHashData
push esi
mov dword [0x5ee030], eax
call edi
push str.CryptSignHashA
push esi
mov dword [0x5ee02c], eax
call edi
push str.CryptVerifySignatureA
push esi
mov dword [0x5ee028], eax
call edi
push str.CryptReleaseContext
push esi
mov dword [0x5ee024], eax
call edi
push str.crypt32.dll
mov dword [0x5ee034], eax
call ebp
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x4fcdc1
push str.CryptProtectData
push esi
call edi
push str.CryptUnprotectData
push esi
mov dword [0x5ee020], eax
call edi
mov dword [0x5ee01c], eax
cmp dword [0x5ee020], ebp
jne 0x4fcddf
mov eax, dword [ebx + 0x74]
cmp dword [eax + 0x52f4], 2
jne 0x4fcddf
mov dword [eax + 0x52f4], 3
mov eax, dword [0x5ee060]
push ebp
cmp eax, ebp
jne 0x4fcdfd
push str.CryptAcquireContext
call fcn.00438b50
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, ebx
call fcn.004fc800
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + 0x52d8]
cmp ecx, ebp
je 0x4fce21
cmp dword [eax + 0x52dc], ebp
je 0x4fce31
cmp dword [eax + 0x52c0], ebp
je 0x4fce87
cmp dword [eax + 0x52c4], ebp
jne 0x4fce87
inc esi
cmp esi, 3
jg 0x4fce9f
cmp ecx, ebp
je 0x4fce4c
push ebp
push ecx
call dword [0x5ee034]
mov edx, dword [ebx + 0x74]
mov dword [edx + 0x52d8], ebp
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x52c0]
cmp eax, ebp
je 0x4fce6a
push ebp
push eax
call dword [0x5ee034]
mov ecx, dword [ebx + 0x74]
mov dword [ecx + 0x52c0], 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.004fc800
jmp 0x4fce0c
cmp esi, 3
jg 0x4fce9f
mov eax, dword [ebx + 0x74]
cmp dword [eax + 0x52dc], ebp
jne 0x4fcec0
cmp dword [eax + 0x52c4], ebp
jne 0x4fcec0
push 1
push 0x5d6590
push str.RSA
mov ecx, ebx
call fcn.0055b864
cmp eax, 1
jne 0x4fcec0
push 3
mov ecx, ebx
call fcn.004fc800
mov ebx, dword [ebx + 0x74]
cmp dword [ebx + 0x52dc], ebp
jne 0x4fceda
cmp dword [ebx + 0x52c4], ebp
jne 0x4fceda
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret