Function at 0x40f6f0
Capabilities:
Get file size
Hash data using murmur3
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57ecf1
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x5e6000]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov ebx, ecx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x48], ebx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x44], 1
call fcn.0041f881
mov ecx, eax
test ecx, ecx
je 0x40fa63
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov dword [ebp - 4], 0
mov ebx, 1
mov dword [ebp - 0x44], ebx
test edi, edi
je 0x40f81b
call fcn.0041f881
mov ecx, eax
test ecx, ecx
je 0x40fa6d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], ebx
test esi, esi
je 0x40f7b2
test esi, 0xffff0000
jne 0x40f79c
movzx eax, si
lea ecx, [ebp - 0x4c]
push eax
call fcn.00407a20
jmp 0x40f7be
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40f7a1
sub ecx, edx
sar ecx, 1
jmp 0x40f7b4
xor ecx, ecx
push ecx
push esi
lea ecx, [ebp - 0x4c]
call fcn.00402c30
lea eax, [ebp - 0x4c]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x44], 3
push 0x5c6d68
push eax
call fcn.00407120
push str._...
push eax
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 3
push eax
mov dword [ebp - 0x44], 7
call fcn.004072b0
mov dword [ebp - 4], 4
mov ebx, 0xf
push dword [eax]
mov eax, dword [edi]
mov dword [ebp - 0x44], ebx
call eax
add esp, 0x1c
mov byte [ebp - 0x3d], 1
test eax, eax
je 0x40f81f
mov byte [ebp - 0x3d], 0
or edi, 0xffffffff
mov dword [ebp - 4], 3
test bl, 8
je 0x40f84e
mov edx, dword [ebp - 0x58]
and ebx, 0xfffffff7
mov dword [ebp - 0x44], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40f84e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 2
test bl, 4
je 0x40f87a
mov edx, dword [ebp - 0x5c]
and ebx, 0xfffffffb
mov dword [ebp - 0x44], ebx
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40f87a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0
test bl, 2
je 0x40f8a4
mov edx, dword [ebp - 0x4c]
and ebx, 0xfffffffd
mov dword [ebp - 0x44], ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40f8a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x3d], 0
jne 0x40f8d5
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40f8f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [0x5ef70c], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0055cc1b
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x54], 0
je 0x40f8d5
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
test ebx, ebx
je 0x40f8d5
push 0x10000
xor esi, esi
mov dword [ebp - 0x38], 0
push esi
push 0x5f5230
mov dword [ebp - 0x34], 0x24234428
mov dword [ebp - 0x30], 0x85ebca77
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0x61c8864f
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x48], 0
call fcn.00560490
add esp, 0xc
push 0
lea eax, [ebp - 0x48]
push eax
push 0x10000
push 0x5f5230
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40f992
push 1
push dword [ebp - 0x48]
lea ecx, [ebp - 0x3c]
call fcn.004134e0
mov eax, dword [ebp - 0x54]
add esi, dword [ebp - 0x48]
push ebx
push esi
mov eax, dword [eax + 4]
call eax
add esp, 0x10
test eax, eax
je 0x40f99b
cmp dword [ebp - 0x48], 0x10000
je 0x40f956
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x3c]
lea edx, [ebp - 0x20]
mov esi, edx
add esi, dword [ebp - 0x24]
cmp edi, 0x10
jb 0x40f9d1
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
rol eax, 0xc
rol ecx, 0x12
add ecx, eax
mov eax, dword [ebp - 0x30]
rol eax, 7
add ecx, eax
mov eax, dword [ebp - 0x34]
rol eax, 1
add ecx, eax
jmp 0x40f9da
mov ecx, dword [ebp - 0x38]
add ecx, 0x165667b1
add ecx, edi
lea eax, [ebp - 0x20]
lea edi, [esi - 4]
cmp eax, edi
ja 0x40fa08
nop word [eax + eax]
imul eax, dword [edx], 0x3d4d51c3
add edx, 4
sub ecx, eax
rol ecx, 0x11
imul ecx, ecx, 0x27d4eb2f
cmp edx, edi
jbe 0x40f9f0
cmp edx, esi
jae 0x40fa29
nop dword [eax]
movzx eax, byte [edx]
inc edx
imul eax, eax, 0x165667b1
add eax, ecx
rol eax, 0xb
imul ecx, eax, 0x9e3779b1
cmp edx, esi
jb 0x40fa10
mov eax, ecx
mov esi, dword [ebp - 0x50]
shr eax, 0xf
xor eax, ecx
imul ecx, eax, 0x85ebca77
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae3d
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
push ecx
push str._02X
push esi
call fcn.004077d0
add esp, 0xc
mov eax, esi
jmp 0x40f8d8
push 0x80004005
call fcn.00402be0
push 0x80004005
call fcn.00402be0
int3