Function at 0x436330
Capabilities:
Hash data with md5
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x467060]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
push 0x4506cc
push eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x120], 0
call dword [sym.imp.MSVCR110.dll__wfopen_s]
add esp, 0xc
test eax, eax
jne 0x4363c2
mov eax, dword [ebp - 0x120]
test eax, eax
je 0x4363c2
mov esi, dword [sym.imp.MSVCR110.dll_fseek]
push 2
push 0
push eax
call esi
push dword [ebp - 0x120]
call dword [sym.imp.MSVCR110.dll_ftell]
mov ebx, eax
push ebx
call fcn.00441240
push ebx
mov edi, eax
push 0
push edi
call sub.MSVCR110.dll_memset
add esp, 0x20
test edi, edi
jne 0x4363dd
push dword [ebp - 0x120]
call dword [sym.imp.MSVCR110.dll_fclose]
add esp, 4
xor al, al
lea esp, [ebp - 0x134]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004413e6
mov esp, ebp
pop ebp
ret 0xc
push 0
push 0
push dword [ebp - 0x120]
call esi
push dword [ebp - 0x120]
push ebx
push 1
push edi
call dword [sym.imp.MSVCR110.dll_fread]
add esp, 0x1c
push dword [ebp - 0x120]
cmp eax, ebx
je 0x436418
call dword [sym.imp.MSVCR110.dll_fclose]
push edi
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 8
jmp 0x4363c2
mov esi, dword [sym.imp.MSVCR110.dll_fclose]
call esi
add esp, 4
lea eax, [ebp - 0x18]
push eax
xorps xmm0, xmm0
push ebx
push edi
lea ecx, [ebp - 0x11c]
movq qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x11c], 0x67452301
mov dword [ebp - 0x118], 0xefcdab89
mov dword [ebp - 0x114], 0x98badcfe
mov dword [ebp - 0x110], 0x10325476
mov byte [ebp - 0x18], 0
movq qword [ebp - 0x17], xmm0
mov dword [ebp - 0xf], 0
mov word [ebp - 0xb], 0
mov byte [ebp - 9], 0
call fcn.0043b640
push edi
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete___void__]
push dword [ebp - 0x120]
call esi
push 0x7f
lea eax, [ebp - 0x9b]
push 0
push eax
mov byte [ebp - 0x9c], 0
call sub.MSVCR110.dll_memset
mov ebx, dword [sym.imp.MSVCR110.dll_sprintf_s]
add esp, 0x14
xor edi, edi
xor esi, esi
movzx eax, byte [ebp + edi - 0x18]
push eax
mov eax, 0x80
sub eax, esi
push str._02x
push eax
lea eax, [ebp - 0x9c]
add eax, esi
push eax
call ebx
add esi, 2
add esp, 0x10
lea edi, [edi + 1]
cmp esi, 0x20
jl 0x4364b4
lea ecx, [ebp - 0x9c]
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4364f0
sub ecx, edx
lea edi, [ecx + 1]
cmp edi, 0x3fffffff
jg 0x436534
lea eax, [edi + edi]
call fcn.00441b10
mov esi, esp
test esi, esi
je 0x436534
push edi
push esi
xor eax, eax
push 0xffffffffffffffff
mov word [esi], ax
lea eax, [ebp - 0x9c]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb eax, eax
and eax, esi
jmp 0x436536
xor eax, eax
push eax
lea ecx, [ebp - 0xb4]
call fcn.00405670
cmp dword [ebp - 0xa0], 8
push ecx
lea eax, [ebp - 0xb4]
cmovae eax, dword [ebp - 0xb4]
push eax
push ecx
mov ecx, dword [ebp - 0x124]
mov edx, 0x82
call fcn.00405d10
cmp dword [ebp - 0xa0], 8
jb 0x436581
push dword [ebp - 0xb4]
call dword [sym.imp.MSVCR110.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov al, 1
jmp 0x4363c4