Function at 0x4038c0
Capabilities:
Hash data using murmur3

Disassembly:
sub esp, 0x14c
push ebx
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
xor eax, eax
mov dword [esp + 0x10], ebx
push ebp
mov dword [esp + 8], ebx
mov word [esp + 0x10], ax
mov eax, dword [esp + 0x15c]
push esi
xor ecx, ecx
push edi
add eax, 2
nop
movzx edx, byte [eax - 2]
movzx esi, byte [eax - 1]
shl edx, 8
or edx, esi
movzx esi, byte [eax]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
or edx, esi
mov dword [esp + ecx*4 + 0x5c], edx
inc ecx
add eax, 4
cmp ecx, 0x10
jne 0x4038f0
mov eax, dword [0x424588]
mov esi, dword [esp + 0x160]
mov ecx, 0x867b69fc
sub ecx, eax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
add esi, 8
push 0x100
mov ecx, 9
fstp dword [0x4236a4]
inc dword [0x424588]
lea edi, [esp + 0x3c]
mov dword [esp + 0x38], esi
push 0x423930
rep movsd dword es:[edi], dword [esi]
call fcn.00402070
mov dword [esp + 0x28], eax
fld qword [0x41f540]
lea eax, [esp + 0x40]
fld dword [0x41f53c]
sub eax, 4
fld1
lea edi, [esp + 0x64]
fld dword [0x41f538]
add esp, 8
mov dword [esp + 0x2c], eax
sub edi, 8
cmp ebx, 0xf
jle 0x4039c7
mov ecx, dword [edi - 0x34]
mov eax, dword [edi]
mov edx, ecx
rol edx, 0xe
mov esi, ecx
ror esi, 7
xor edx, esi
shr ecx, 3
xor edx, ecx
mov ecx, eax
rol ecx, 0xf
mov esi, eax
rol esi, 0xd
xor ecx, esi
shr eax, 0xa
xor ecx, eax
add edx, ecx
add edx, dword [edi - 0x38]
add edx, dword [edi - 0x14]
mov dword [edi + 8], edx
add dword [esp + 0x10], 0x49197c9d
mov edx, dword [esp + 0x10]
add edx, 0x2f1cfd85
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fstp dword [0x424b4c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld qword [0x4238f0]
fsub st(5)
fsubp st(1)
call fcn.0040b510
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, ecx
ror eax, 0xb
mov edx, ecx
rol edx, 7
xor eax, edx
mov edx, ecx
ror edx, 6
xor eax, edx
mov edx, dword [esp + 0x50]
xor esi, edx
and esi, ecx
mov ecx, dword [esp + 0x20]
xor esi, edx
mov edx, dword [esp + 0x38]
add eax, esi
add eax, dword [ecx + ebx*4]
mov ecx, edx
add eax, dword [edi + 8]
mov esi, edx
add eax, dword [esp + 0x54]
ror ecx, 0xd
add dword [esp + 0x44], eax
rol esi, 0xa
xor ecx, esi
mov esi, edx
ror esi, 2
xor ecx, esi
mov esi, dword [esp + 0x3c]
mov ebp, esi
or ebp, edx
and ebp, dword [esp + 0x40]
and esi, edx
or ebp, esi
add ecx, ebp
mov esi, 1
add dword [esp + 0x1c], esi
mov edx, dword [0x423728]
mov ebp, dword [esp + 0x1c]
add ecx, eax
sub edx, ebp
mov dword [0x423728], edx
movzx eax, word [esp + 0x18]
mov dword [esp + 0x54], ecx
sub eax, 0x2f282a78
mov word [esp + 0x18], ax
movzx ecx, word [esp + 0x18]
mov edx, dword [esp + 0x10]
lea eax, [ecx + edx + 0x4a36a14e]
mov ecx, dword [esp + 0x2c]
mov word [0x425e8c], ax
or ebp, 0xffffffff
add dword [esp + 0x18], ebp
add dword [esp + 0x10], esi
lea eax, [esi + 7]
jmp 0x403ac4
fxch st(2)
add dword [esp + 0x10], ebp
add dword [0x4238d4], esi
fld dword [0x4237c0]
mov edx, dword [0x4238d4]
add edx, dword [esp + 0x10]
mov dword [esp + 0x14], edx
fisub dword [esp + 0x14]
mov edx, dword [ecx + eax*4]
mov dword [esp + eax*4 + 0x38], edx
sub eax, esi
fstp dword [0x4237c0]
fxch st(2)
fst dword [0x425ed4]
jne 0x403ac2
mov eax, dword [0x425fc4]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld dword [0x42381c]
fadd qword [0x4259f0]
fsub qword [0x4236e0]
fsubp st(1)
call fcn.0040b510
mov dword [0x425fc4], eax
fld qword [0x4236e0]
mov ecx, dword [esp + 0x58]
fsub st(2)
add ebx, esi
add edi, 4
fstp qword [0x4236e0]
mov dword [esp + 0x38], ecx
fxch st(2)
fst dword [str.3ZN6]
cmp ebx, 0x40
jne 0x403990
mov edi, dword [esp + 0x20]
fstp st(1)
fstp st(0)
push 0x100
fstp st(0)
push 0
fstp st(0)
push edi
fldz
fstp qword [esp + 0x38]
fldz
fstp dword [esp + 0x38]
call fcn.0040bae0
push edi
call fcn.0040b5bb
movzx edx, word [0x423134]
mov ecx, dword [esp + 0x44]
add edx, 0x218d55f
add esp, 0x10
mov word [0x423134], dx
xor eax, eax
mov edi, edi
mov edx, dword [esp + eax*4 + 0x38]
add dword [ecx], edx
add eax, esi
add ecx, 4
cmp eax, 8
jne 0x403ba0
add dword [esp + 0x28], ebp
mov eax, dword [esp + 0x28]
add eax, 0x38976976
cmp eax, 0x9260debc
jge 0x403bdb
fld dword [0x4245d0]
mov ecx, dword [esp + 0x24]
pop edi
fstp st(0)
pop esi
pop ebp
pop ebx
add esp, 0x14c
ret
add dword [esp + 0x24], esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
imul edx, eax
pop edi
pop esi
pop ebp
mov dword [esp + 0x10], edx
pop ebx
add esp, 0x14c
ret