Function at 0x45a740
Capabilities:
Check if file exists
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x487621
mov eax, dword fs:[0]
push eax
sub esp, 0x358
mov eax, dword [0x4c33d0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x29c], ax
lea eax, [ebp - 0x29a]
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45a806
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x45a806
push eax
push 0x80
push 3
push eax
push 1
push SysReAllocStringLen
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x45a819
lea eax, [ebp - 0x2a4]
push eax
push 0
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push dword [ebp - 0x2a0]
lea eax, [ebp - 0x29c]
push dword [ebp - 0x2a4]
push edi
push str._s__d__d
push 0x208
push eax
call fcn.00405020
add esp, 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x45a819
push ecx
push edi
push ecx
mov edx, 0x104
lea ecx, [ebp - 0x29c]
call fcn.0043b7c0
xor eax, eax
xorps xmm0, xmm0
movq qword [ebp - 0x354], xmm0
mov dword [ebp - 0x2b8], 7
mov dword [ebp - 0x2bc], 0
mov word [ebp - 0x2cc], ax
cmp word [ebp - 0x29c], ax
jne 0x45a84e
xor ecx, ecx
jmp 0x45a866
lea ecx, [ebp - 0x29c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a857
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x29c]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00401d60
lea edx, [ebp - 0x2cc]
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 4], 0
call fcn.0045e4f0
mov byte [ebp - 4], 2
cmp dword [ebp - 0x2b8], 8
jb 0x45a8ad
push dword [ebp - 0x2cc]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
push dword [ebp - 0x2ec]
xor eax, eax
cmp dword [ebp - 0x2e8], 0x10
mov word [ebp - 0x2cc], ax
lea eax, [ebp - 0x2fc]
cmovae eax, dword [ebp - 0x2fc]
xorps xmm0, xmm0
push eax
lea ecx, [ebp - 0x364]
mov dword [ebp - 0x2b8], 7
mov dword [ebp - 0x2bc], 0
movq qword [ebp - 0x354], xmm0
mov dword [ebp - 0x364], 0x67452301
mov dword [ebp - 0x360], 0xefcdab89
mov dword [ebp - 0x35c], 0x98badcfe
mov dword [ebp - 0x358], 0x10325476
call fcn.00461450
lea ecx, [ebp - 0x364]
call fcn.00461500
movq xmm0, qword [ebp - 0x30c]
push 0x7f
movq qword [ebp - 0x2ac], xmm0
movq xmm0, qword [ebp - 0x304]
lea eax, [ebp - 0x93]
push 0
push eax
movq qword [ebp - 0x2a4], xmm0
mov byte [ebp - 0x94], 0
call sub.MSVCR110.dll_memset
add esp, 0xc
xor ebx, ebx
xor edi, edi
lea esp, [esp]
movzx eax, byte [ebp + ebx - 0x2ac]
push eax
mov eax, 0x80
sub eax, edi
push str._02x
push eax
lea eax, [ebp - 0x94]
add eax, edi
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
add edi, 2
add esp, 0x10
lea ebx, [ebx + 1]
cmp edi, 0x20
jl 0x45a970
cmp byte [ebp - 0x94], 0
mov dword [ebp - 0x2a0], 0xf
mov dword [ebp - 0x2a4], 0
mov byte [ebp - 0x2b4], 0
jne 0x45a9cb
xor ecx, ecx
jmp 0x45a9dd
lea ecx, [ebp - 0x94]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45a9d4
sub ecx, edx
push ecx
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.0040c1b0
lea edx, [ebp - 0x2b4]
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 4], 3
call fcn.0045e1e0
cmp dword [ebp - 0x2a0], 0x10
mov edi, dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
jb 0x45aa1f
push dword [ebp - 0x2b4]
call edi
add esp, 4
cmp dword [ebp - 0x2d0], 8
mov ebx, dword [ebp - 0x2e4]
lea edx, [ebp - 0x2e4]
cmovae edx, ebx
mov ecx, 0x3c
sub edx, esi
lea esp, [esp]
lea eax, [ecx + 0x7fffffc2]
test eax, eax
je 0x45aa5e
movzx eax, word [esi + edx]
test ax, ax
je 0x45aa5e
mov word [esi], ax
add esi, 2
dec ecx
jne 0x45aa40
jmp 0x45aa62
test ecx, ecx
jne 0x45aa65
sub esi, 2
xor eax, eax
cmp dword [ebp - 0x2d0], 8
mov word [esi], ax
jb 0x45aa79
push ebx
call edi
add esp, 4
xor eax, eax
cmp dword [ebp - 0x2e8], 0x10
mov dword [ebp - 0x2d0], 7
mov dword [ebp - 0x2d4], 0
mov word [ebp - 0x2e4], ax
jb 0x45aaaa
push dword [ebp - 0x2fc]
call edi
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047cd06
mov esp, ebp
pop ebp
ret 4