Function at 0x50a5f0
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 + 0x52dc], edi
mov ecx, dword [ebx + 0x74]
push str.advapi32.dll
mov dword [ecx + 0x52f4], edi
call ebp
mov esi, eax
cmp esi, edi
jne 0x50a632
push edi
push str.advapi32
call fcn.0043aa00
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 [0x5ff210], eax
call edi
push str.CryptGetKeyParam
push esi
mov dword [0x5ff20c], eax
call edi
push str.CryptSetKeyParam
push esi
mov dword [0x5ff208], eax
call edi
push str.CryptExportKey
push esi
mov dword [0x5ff204], eax
call edi
push str.CryptGetUserKey
push esi
mov dword [0x5ff200], eax
call edi
push str.CryptEncrypt
push esi
mov dword [0x5ff1fc], eax
call edi
push str.CryptGenKey
push esi
mov dword [0x5ff1f8], eax
call edi
push str.CryptGenRandom
push esi
mov dword [0x5ff1f4], eax
call edi
push str.CryptImportKey
push esi
mov dword [0x5ff1f0], eax
call edi
push str.CryptDecrypt
push esi
mov dword [0x5ff1ec], eax
call edi
push str.CryptCreateHash
push esi
mov dword [0x5ff1e8], eax
call edi
push str.CryptHashData
push esi
mov dword [0x5ff1e0], eax
call edi
push str.CryptSignHashA
push esi
mov dword [0x5ff1dc], eax
call edi
push str.CryptVerifySignatureA
push esi
mov dword [0x5ff1d8], eax
call edi
push str.CryptReleaseContext
push esi
mov dword [0x5ff1d4], eax
call edi
push str.crypt32.dll
mov dword [0x5ff1e4], eax
call ebp
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x50a731
push str.CryptProtectData
push esi
call edi
push str.CryptUnprotectData
push esi
mov dword [0x5ff1d0], eax
call edi
mov dword [0x5ff1cc], eax
cmp dword [0x5ff1d0], ebp
jne 0x50a74f
mov eax, dword [ebx + 0x74]
cmp dword [eax + 0x5310], 2
jne 0x50a74f
mov dword [eax + 0x5310], 3
mov eax, dword [0x5ff210]
push ebp
cmp eax, ebp
jne 0x50a76d
push str.CryptAcquireContext
call fcn.0043aa00
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, ebx
call fcn.0050a170
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
mov eax, dword [ebx + 0x74]
mov ecx, dword [eax + 0x52f4]
cmp ecx, ebp
je 0x50a791
cmp dword [eax + 0x52f8], ebp
je 0x50a7a1
cmp dword [eax + 0x52dc], ebp
je 0x50a7f7
cmp dword [eax + 0x52e0], ebp
jne 0x50a7f7
inc esi
cmp esi, 3
jg 0x50a80f
cmp ecx, ebp
je 0x50a7bc
push ebp
push ecx
call dword [0x5ff1e4]
mov edx, dword [ebx + 0x74]
mov dword [edx + 0x52f4], ebp
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x52dc]
cmp eax, ebp
je 0x50a7da
push ebp
push eax
call dword [0x5ff1e4]
mov ecx, dword [ebx + 0x74]
mov dword [ecx + 0x52dc], 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.0050a170
jmp 0x50a77c
cmp esi, 3
jg 0x50a80f
mov eax, dword [ebx + 0x74]
cmp dword [eax + 0x52f8], ebp
jne 0x50a830
cmp dword [eax + 0x52e0], ebp
jne 0x50a830
push 1
push 0x5e7590
push str.RSA
mov ecx, ebx
call fcn.0056a944
cmp eax, 1
jne 0x50a830
push 3
mov ecx, ebx
call fcn.0050a170
mov ebx, dword [ebx + 0x74]
cmp dword [ebx + 0x52f8], ebp
jne 0x50a84a
cmp dword [ebx + 0x52e0], ebp
jne 0x50a84a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret