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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push edi
push 0x40
push 0x100073f8
push dword [ebp + 8]
call dword [sym.imp.MSVCR90.dll__fsopen]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x100023b9
xor al, al
jmp 0x100025c5
push ebx
push 2
push 0
push edi
call dword [sym.imp.MSVCR90.dll_fseek]
push edi
call dword [sym.imp.MSVCR90.dll_ftell]
add esp, 0x10
mov ebx, eax
push edi
cmp ebx, 0xffffffff
jne 0x100023e5
call dword [sym.imp.MSVCR90.dll_fclose]
pop ecx
xor al, al
jmp 0x100025c4
call dword [sym.imp.MSVCR90.dll_rewind]
cmp dword [ebp + 0xc], 1
pop ecx
jne 0x10002402
mov dword [ebp - 0x10], 0x67450123
mov dword [ebp - 4], 0x32105476
jmp 0x1000242d
cmp dword [ebp + 0xc], 2
jne 0x1000241f
mov dword [ebp - 0x10], 0x67450123
mov dword [ebp - 0xc], 0xefcd89ab
mov dword [ebp - 4], 0x32105476
jmp 0x10002434
mov dword [ebp - 0x10], 0x67452301
mov dword [ebp - 4], 0x10325476
mov dword [ebp - 0xc], 0xefcdab89
mov eax, ebx
shr eax, 0x1d
mov dword [ebp - 0x18], eax
mov eax, ebx
and eax, 0x1fffffff
push esi
shl eax, 3
push 0x40
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x5c]
push 0
push eax
mov dword [ebp - 8], 0x98badcfe
call sub.MSVCR90.dll_memset
mov esi, dword [sym.imp.MSVCR90.dll_fread]
push edi
push 0x10
lea eax, [ebp - 0x5c]
push 4
push eax
call esi
mov eax, ebx
shr eax, 6
add esp, 0x1c
test eax, eax
jbe 0x100024b6
mov dword [ebp - 0x14], eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x5c]
call fcn.100019a3
push 0x40
lea eax, [ebp - 0x5c]
push 0
push eax
call sub.MSVCR90.dll_memset
push edi
push 0x10
lea eax, [ebp - 0x5c]
push 4
push eax
call esi
add esp, 0x2c
dec dword [ebp - 0x14]
jne 0x1000247e
and ebx, 0x3f
mov byte [ebp + ebx - 0x5c], 0x80
cmp ebx, 0x37
jbe 0x100024eb
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x5c]
call fcn.100019a3
push 0x40
lea eax, [ebp - 0x5c]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0x1c
push 8
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x24]
push eax
call sub.MSVCR90.dll_memcpy
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x5c]
call fcn.100019a3
push edi
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 0x20
cmp dword [ebp + 0x10], 0
je 0x100025c1
mov edx, dword [ebp - 4]
mov esi, edx
mov eax, edx
mov ecx, 0xff0000
and esi, ecx
mov edi, edx
shr eax, 0x10
or esi, eax
shr esi, 8
shl edx, 0x10
mov eax, 0xff00
and edi, eax
or edi, edx
mov edx, dword [ebp - 8]
shl edi, 8
or esi, edi
push esi
mov esi, edx
and esi, ecx
mov edi, edx
shr edi, 0x10
or esi, edi
mov edi, edx
and edi, eax
shr esi, 8
shl edx, 0x10
or edi, edx
mov edx, dword [ebp - 0xc]
shl edi, 8
or esi, edi
push esi
mov esi, edx
and esi, ecx
mov edi, edx
shr edi, 0x10
or esi, edi
mov edi, edx
shl edx, 0x10
and edi, eax
shr esi, 8
or edi, edx
mov edx, dword [ebp - 0x10]
shl edi, 8
or esi, edi
push esi
mov esi, edx
and esi, ecx
mov ecx, edx
shr ecx, 0x10
or esi, ecx
mov ecx, edx
and ecx, eax
shl edx, 0x10
or ecx, edx
shl ecx, 8
shr esi, 8
or esi, ecx
push esi
push str._08X_08X_08X_08X
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
mov al, 1
pop esi
pop ebx
pop edi
leave
ret