Function at 0x558d0c
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff50
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404ad8
xor eax, eax
push ebp
push 0x558f45
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x10], eax
xor edx, edx
push ebp
push 0x558ee5
push dword fs:[edx]
mov dword fs:[edx], esp
push 0x40
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x41addc]
call fcn.0041ff84
mov dword [ebp - 0x10], eax
push 0
push 0
mov eax, dword [ebp - 0x10]
call fcn.0041fa88
mov dl, 1
mov eax, dword [0x41aecc]
call fcn.004037c0
mov esi, eax
mov dword [ebp - 0x1c], 0x10
mov eax, dword [ebp + 8]
call fcn.0040461c
xor ebx, ebx
push 0xf0000020
push 1
push 0
push 0
lea eax, [ebp - 0x14]
push eax
call sub.advapi32.dll_CryptAcquireContextA
test eax, eax
je 0x558eb6
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0x8003
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CryptCreateHash
test eax, eax
je 0x558eab
mov eax, dword [ebp - 8]
cdq
push edx
push eax
mov eax, esi
call fcn.0041faec
push 0
push 0
mov eax, esi
call fcn.0041fa88
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edi, dword [eax]
call dword [edi + 8]
mov edi, eax
test edi, edi
je 0x558e34
mov ebx, dword [esi + 4]
cmp dword [ebp - 0xc], 0
je 0x558e1b
mov eax, dword [ebp - 0x10]
call fcn.0041fa9c
push eax
mov eax, dword [ebp - 0x10]
call fcn.0041fa68
pop edx
call dword [ebp - 0xc]
push 0
push edi
push ebx
mov eax, dword [ebp - 0x18]
push eax
call sub.advapi32.dll_CryptHashData
test eax, eax
jne 0x558e30
xor ebx, ebx
jmp 0x558e34
mov bl, 1
jmp 0x558dd1
test bl, bl
je 0x558ea2
push 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xa0]
push eax
push 2
mov eax, dword [ebp - 0x18]
push eax
call sub.advapi32.dll_CryptGetHashParam
test eax, eax
je 0x558ea2
mov edi, dword [ebp - 0x1c]
dec edi
test edi, edi
jl 0x558ea2
inc edi
lea ebx, [ebp - 0xa0]
lea eax, [ebp - 0xa4]
push eax
xor eax, eax
mov al, byte [ebx]
mov dword [ebp - 0xac], eax
mov byte [ebp - 0xa8], 0
lea edx, [ebp - 0xac]
xor ecx, ecx
mov eax, 0x558f60
call fcn.0040a608
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp + 8]
call fcn.004048f8
mov eax, dword [ebp + 8]
inc ebx
dec edi
jne 0x558e63
mov eax, dword [ebp - 0x18]
push eax
call sub.advapi32.dll_CryptDestroyHash
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CryptReleaseContext
lea edx, [ebp - 0xb0]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
call fcn.00409064
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp + 8]
call fcn.00404670
mov eax, esi
call fcn.004037f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x558f03
cmp dword [ebp - 0x10], 0
je 0x558f11
mov eax, dword [ebp - 0x10]
call fcn.004037f0
mov eax, dword [ebp - 0x20]
call fcn.00513280
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x558f4c
lea eax, [ebp - 0xb0]
call fcn.0040461c
lea eax, [ebp - 0xa4]
call fcn.0040461c
lea eax, [ebp - 4]
call fcn.0040461c
ret