Function at 0x402710
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14c
fldz
mov dword [esp], 0
xor eax, eax
mov word [esp + 8], ax
fst qword [esp + 0xc]
mov eax, dword [ebp + 0xc]
fstp qword [esp + 0xc]
push ebx
xor ecx, ecx
push esi
push edi
mov word [esp + 0x10], cx
add eax, 2
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 + 0x58], edx
mov edx, dword [0x425f80]
mov esi, dword [esp + 0xc]
imul edx, esi
inc ecx
add eax, 4
mov dword [0x425f80], edx
cmp ecx, 0x10
jne 0x402744
fld qword [0x4238f0]
fadd qword [0x41f350]
fstp qword [0x4238f0]
fld qword [0x423a20]
fsub qword [0x41f4a8]
fld qword [esp + 0x18]
fld qword [0x4238f0]
fsubp st(2)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4027c3
fld qword [esp + 0x18]
fmul qword [0x41f4a0]
fstp qword [esp + 0x18]
mov esi, dword [ebp + 8]
add esi, 8
push 0x100
mov ecx, 9
lea edi, [esp + 0x38]
mov dword [esp + 0x34], esi
push 0x423b58
rep movsd dword es:[edi], dword [esi]
call fcn.00401520
mov dword [esp + 0x2c], eax
fld qword [0x41f498]
lea eax, [esp + 0x3c]
fld qword [0x41f490]
xor esi, esi
fld qword [0x41f488]
sub eax, 4
fld qword [0x41f480]
lea edi, [esp + 0x60]
fld1
add esp, 8
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], eax
sub edi, 8
fld dword [0x425f4c]
fsub st(5)
fcomp st(4)
fnstsw ax
test ah, 0x41
jp 0x40283f
mov eax, dword [esp + 0xc]
imul eax, eax, 0x3b61a11a
mov dword [esp + 0xc], eax
cmp esi, 0xf
jle 0x40288d
mov cx, word [esp + 0x10]
mov eax, dword [esp + 0xc]
movsx edx, cx
lea ecx, [edx + eax - 0x19bbf6df]
mov eax, dword [edi]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi - 0x34]
mov edx, ecx
rol edx, 0xe
mov ebx, ecx
ror ebx, 7
xor edx, ebx
shr ecx, 3
xor edx, ecx
mov ecx, eax
rol ecx, 0xf
mov ebx, eax
rol ebx, 0xd
xor ecx, ebx
shr eax, 0xa
xor ecx, eax
add edx, ecx
add edx, dword [edi - 0x38]
add edx, dword [edi - 0x14]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x44]
fld qword [esp + 0x18]
mov ebx, dword [esp + 0x48]
fadd st(1)
mov ecx, eax
ror ecx, 0xb
mov edx, eax
rol edx, 7
xor ecx, edx
mov edx, eax
ror edx, 6
xor ecx, edx
mov edx, dword [esp + 0x4c]
xor ebx, edx
and ebx, eax
mov eax, dword [esp + 0x24]
xor ebx, edx
add ecx, ebx
add ecx, dword [eax + esi*4]
add ecx, dword [edi + 8]
add ecx, dword [esp + 0x50]
fstp qword [esp + 0x18]
fld dword [0x423a38]
fadd qword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov edx, eax
ror edx, 0xd
mov esi, eax
fadd st(3)
rol esi, 0xa
xor edx, esi
mov esi, eax
fstp qword [esp + 0x18]
ror esi, 2
xor edx, esi
mov esi, dword [esp + 0x38]
mov ebx, esi
or ebx, eax
and ebx, dword [esp + 0x3c]
inc dword [esp + 0xc]
and esi, eax
mov ax, word [0x423cac]
or ebx, esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc]
fild dword [esp + 0x10]
cwde
sub esi, eax
mov dword [esp + 0x10], esi
add edx, ebx
fild dword [esp + 0x10]
fsub dword [0x424f70]
fcompp
fnstsw ax
fld dword [0x424f70]
fadd st(1)
fstp dword [0x424f70]
dec dword [esp + 0xc]
test ah, 0x41
jne 0x40295b
fld qword [0x423a50]
fsubr st(2)
fmul qword [esp + 0x18]
fstp qword [esp + 0x18]
add dword [esp + 0x40], ecx
add edx, ecx
mov cx, word [esp + 0x14]
mov dword [esp + 0x50], edx
movsx edx, cx
mov eax, 0xe4f07773
sub eax, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, 8
mov ecx, 0xffffe897
mov word [esp + 0x10], cx
mov ecx, dword [edx + eax*4]
mov dword [esp + eax*4 + 0x34], ecx
mov cx, word [0x423cb4]
mov esi, dword [0x42395c]
movsx ecx, cx
add esi, ecx
sub eax, 1
mov dword [esp + 0x28], esi
fild dword [esp + 0x28]
fstp qword [0x424308]
jne 0x402981
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x54]
inc esi
add edi, 4
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], esi
cmp esi, 0x40
jne 0x402820
mov esi, dword [esp + 0x24]
fstp st(0)
fstp st(1)
push 0x100
fstp st(2)
push eax
fstp st(0)
push esi
fstp st(0)
fldz
fstp dword [esp + 0x34]
mov word [esp + 0x20], ax
call fcn.0040b530
push esi
call fcn.0040b00e
mov ecx, dword [esp + 0x40]
add esp, 0x10
xor eax, eax
mov edx, dword [esp + eax*4 + 0x34]
add dword [ecx], edx
inc eax
add ecx, 4
cmp eax, 8
jne 0x402a08
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret