Function at 0x4f6cc0
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 8]
test edi, edi
jne 0x4f6ce0
push 0x54202c
push str.....UTILwinCryptowinCrypto.cpp
call fcn.0041afb0
add esp, 8
pop edi
pop ebp
ret
push esi
mov esi, dword [edi + 0x418]
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4f6cf0
push ebx
push 0xf0000000
push 0x18
push str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
push 0
lea ebx, [edi + 0x408]
sub esi, ecx
push ebx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x4f6d70
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [edi + 0x404], 0
mov dword [edi + 0x414], eax
je 0x4f6d4f
cmp dword [edi], 0
je 0x4f6d4f
push eax
lea esi, [edi + 4]
push str.CryptAcquireContext_failed:__x_n
push esi
call fcn.00401870
mov ecx, dword [edi]
add esp, 0xc
mov eax, dword [ecx]
push esi
push 1
call dword [eax + 0x14]
push 0
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push 0x543274
push str.....UTILwinCryptowinCrypto.cpp
call fcn.0041afb0
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edi + 0x40c]
push eax
push 0
push 0
push 0x800c
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x4f6de3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [edi + 0x404], 0
mov dword [edi + 0x414], eax
je 0x4f6dc2
cmp dword [edi], 0
je 0x4f6dc2
push eax
lea esi, [edi + 4]
push str.CryptCreateHash_failed:__x_n
push esi
call fcn.00401870
mov ecx, dword [edi]
add esp, 0xc
mov eax, dword [ecx]
push esi
push 1
call dword [eax + 0x14]
push 0
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push 0x53b434
push str.....UTILwinCryptowinCrypto.cpp
call fcn.0041afb0
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
push 0
push esi
push dword [edi + 0x418]
push dword [edi + 0x40c]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
jne 0x4f6e49
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [edi + 0x404], 0
mov dword [edi + 0x414], eax
je 0x4f6e32
cmp dword [edi], 0
je 0x4f6e32
push eax
lea esi, [edi + 4]
push str.CryptHashData_Failed_:__x_n
push esi
call fcn.00401870
mov ecx, dword [edi]
add esp, 0xc
mov eax, dword [ecx]
push esi
push 1
call dword [eax + 0x14]
push 0x53b454
push str.....UTILwinCryptowinCrypto.cpp
call fcn.0041afb0
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [edi + 0x410]
push eax
push 0
push dword [edi + 0x40c]
push 0x660e
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
jne 0x4f6ec0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [edi + 0x404], 0
mov dword [edi + 0x414], eax
je 0x4f6e9f
cmp dword [edi], 0
je 0x4f6e9f
push eax
lea esi, [edi + 4]
push str.CryptDeriveKey_Failed_:__x_n
push esi
call fcn.00401870
mov ecx, dword [edi]
add esp, 0xc
mov eax, dword [ecx]
push esi
push 1
call dword [eax + 0x14]
push 0
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push 0x53c8a0
push str.....UTILwinCryptowinCrypto.cpp
call fcn.0041afb0
add esp, 8
pop ebx
pop esi
pop edi
pop ebp
ret
pop ebx
pop esi
xor eax, eax
pop edi
pop ebp
ret