Function at 0x1000d6ac
Capabilities:
Create new key via cryptacquirecontext
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push 0x38
mov eax, 0x1002ec7d
call fcn.1001b74a
lea esi, [ebp + 8]
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, ecx
movsd dword es:[edi], dword [esi]
mov edi, 0x1003f360
lea ecx, [ebx + 0x10]
push edi
mov dword [ebp - 0x3c], ebx
call fcn.100029c6
xor esi, esi
push edi
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], esi
call fcn.100029c6
push 0x10
push esi
push ebx
mov byte [ebp - 4], 1
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
call fcn.1001ade0
add esp, 0xc
push esi
lea ecx, [ebp - 0x2c]
call fcn.100021a7
mov eax, dword [ebp - 0x2c]
cmp eax, esi
mov byte [ebp - 4], 2
jne 0x1000d712
mov eax, 0x1003170c
push eax
lea ecx, [ebp - 0x30]
call fcn.10001b3a
push dword [ebp - 0x30]
mov byte [ebp - 4], 3
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov edi, eax
add edi, edi
lea eax, [edi + 0x10]
push eax
mov dword [ebp - 0x44], eax
call fcn.10018c21
mov ebx, eax
push 0x10
lea eax, [ebp - 0x20]
push eax
push ebx
call fcn.1001c3b0
push edi
push dword [ebp - 0x30]
lea eax, [ebx + 0x10]
push eax
call fcn.1001c3b0
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
add esp, 0x1c
push 0xf0000000
push 1
push esi
push esi
lea eax, [ebp - 0x28]
push eax
call edi
test eax, eax
jne 0x1000d785
push 8
push 1
push esi
push esi
lea eax, [ebp - 0x28]
push eax
call edi
test eax, eax
jne 0x1000d785
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x24]
push eax
push esi
push esi
push 0x8003
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x1000d7a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
push dword [ebp - 0x44]
push ebx
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
push ebx
call fcn.1001b056
mov edi, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
pop ecx
push esi
lea eax, [ebp - 0x34]
push eax
push esi
push 2
push dword [ebp - 0x24]
call edi
push dword [ebp - 0x34]
call fcn.1001b9fd
pop ecx
push esi
mov ebx, eax
lea eax, [ebp - 0x34]
push eax
push ebx
push 2
push dword [ebp - 0x24]
call edi
mov edi, dword [ebp - 0x3c]
push 0x10
push ebx
push edi
call fcn.1001c3b0
push ebx
call fcn.1001ad08
add esp, 0x10
lea eax, [ebp - 0x38]
push eax
push edi
call dword [sym.imp.ole32.dll_StringFromCLSID]
push dword [ebp - 0x38]
lea ecx, [edi + 0x10]
call fcn.100056df
push dword [ebp - 0x38]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp dword [ebp - 0x24], esi
je 0x1000d828
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0x28], esi
je 0x1000d83a
push esi
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov dword [ebp - 0x28], esi
push dword [ebp - 0x30]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x2c], esi
je 0x1000d854
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.10001299
mov eax, edi
call fcn.1001b7cd
ret 0x10