Function at 0x10007828
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
mov eax, 0x100143a3
call fcn.10012fe0
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x30], ebx
call sub.MFC42.DLL_CString::CString_3
push 1
lea ecx, [ebp - 0x2c]
pop esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], esi
call sub.MFC42.DLL_CString::CString_3
cmp byte [edi + 0x98], 1
mov byte [ebp - 4], 2
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], ebx
je 0x100079e1
mov eax, dword [edi + 0x88]
cmp dword [eax - 8], ebx
jle 0x100079f2
lea eax, [ebp - 0x24]
push eax
push 0x10015cc8
call dword [sym.imp.RPCRT4.dll_UuidToStringA]
test eax, eax
jne 0x100079f2
push dword [ebp - 0x24]
call dword [sym.imp.MSVCRT.dll__strupr]
pop ecx
push eax
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::operator_2
push ebx
push esi
mov esi, str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
lea eax, [ebp - 0x10]
push esi
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push eax
call ebx
cmp eax, 1
je 0x100078db
push 8
push 1
push esi
lea eax, [ebp - 0x10]
push 0
push eax
call ebx
cmp eax, 1
jne 0x100079f2
push 0x400
call sub.MFC42.DLL_operatornew
mov ebx, eax
pop ecx
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx eax, word [ebp - 0x42]
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push eax
movzx eax, word [ebp - 0x46]
push eax
movzx eax, word [ebp - 0x48]
push eax
push str._04d_02d_02d__s
push ebx
call esi
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
push 0
push 0
push 0x8003
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp eax, 1
jne 0x100079e7
push 0
push ebx
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push ebx
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp eax, 1
jne 0x100079e7
lea eax, [ebp - 0x20]
push eax
push 1
push dword [ebp - 0x14]
push 0x6801
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
cmp eax, 1
jne 0x100079e7
push dword [edi + 0x88]
push 0x1001b3c8
push ebx
call esi
mov eax, dword [edi + 0x88]
add esp, 0xc
mov eax, dword [eax - 8]
push 0x400
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
push ebx
push 0
push 1
push 0
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptEncrypt]
cmp eax, 1
jne 0x100079e7
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x28], 0
jle 0x100079e7
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax + ebx]
push eax
lea eax, [ebp - 0x38]
push str._02X
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x18]
push eax
call sub.MFC42.DLL_CString::operator_1
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x28]
jl 0x100079b2
jmp 0x100079e7
mov dword [edi], 0x5dc
test ebx, ebx
je 0x100079f2
push ebx
call sub.MFC42.DLL_operatordelete
pop ecx
mov eax, dword [ebp - 0x18]
xor esi, esi
cmp dword [eax - 8], esi
jne 0x10007a0b
add edi, 0x88
lea ecx, [ebp - 0x18]
push edi
call fcn.10012a9a
cmp dword [ebp - 0x20], esi
je 0x10007a19
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
cmp dword [ebp - 0x14], esi
je 0x10007a27
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
cmp dword [ebp - 0x10], esi
je 0x10007a36
push esi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
cmp dword [ebp - 0x24], esi
je 0x10007a45
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.RPCRT4.dll_RpcStringFreeA]
push 0xffffffffffffffff
push dword [ebp - 0x18]
call fcn.100077c6
mov esi, dword [ebp + 8]
pop ecx
pop ecx
mov dword [ebp - 0x30], 1
mov dword [esi], eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4