Function at 0x4249a0
Capabilities:
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov eax, dword [0x483b60]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x438], ecx
cmp dword [ebp + 8], 0
je 0x4249c5
cmp dword [ebp + 0xc], 0
jne 0x4249cc
xor eax, eax
jmp 0x424bd9
push 0xf0000000
push 1
push 0
push 0
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4249f6
cmp dword [ebp - 0x418], 0
jne 0x4249fd
xor eax, eax
jmp 0x424bd9
lea ecx, [ebp - 8]
push ecx
push 0
push 0
push 0x8003
mov edx, dword [ebp - 0x418]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x424a26
cmp dword [ebp - 8], 0
jne 0x424a3c
push 0
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x424bd9
push 0
push 0x8000000
push 3
push 0
push 1
push SysReAllocString
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x420], eax
cmp dword [ebp - 0x420], 0xffffffff
jne 0x424a87
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x424bd9
push 0
lea ecx, [ebp - 0x434]
push ecx
push 0x400
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0x41c], eax
cmp dword [ebp - 0x41c], 0
jne 0x424ae5
mov ecx, dword [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x424bd9
cmp dword [ebp - 0x434], 0
jne 0x424afd
mov ecx, dword [ebp - 0x420]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x424b5a
push 0
mov edx, dword [ebp - 0x434]
push edx
lea eax, [ebp - 0x410]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x424b4d
mov edx, dword [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
mov ecx, dword [ebp - 0x418]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x424bd9
cmp dword [ebp - 0x41c], 1
je 0x424a87
mov dword [ebp - 0x414], 0x10
push 0
lea edx, [ebp - 0x414]
push edx
lea eax, [ebp - 0x430]
push eax
push 2
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x424ba6
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
xor eax, eax
jmp 0x424bd9
push 0x10
lea ecx, [ebp - 0x430]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00449ff0
add esp, 0xc
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push 0
mov ecx, dword [ebp - 0x418]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, 1
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0044a355
mov esp, ebp
pop ebp
ret 8