Function at 0x4041b0
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x164
fldz
push ebx
fst qword [esp + 0x18]
push esi
mov esi, dword [ebp + 0xc]
fst qword [esp + 0x34]
fst qword [esp + 0xc]
push edi
fst qword [esp + 0x28]
xor edi, edi
fstp qword [esp + 0x18]
add esi, 2
fld1
or ebx, 0xffffffff
fld qword [0x41e600]
fld qword [0x41e5f8]
fld qword [0x41e5f0]
fld qword [0x41e5e8]
fld qword [0x423028]
mov eax, dword [0x4221ac]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fsubp st(1)
fld qword [esp + 0x18]
fld qword [esp + 0x10]
faddp st(2)
fcompp
fnstsw ax
fld qword [esp + 0x18]
fsub st(5)
fstp qword [esp + 0x18]
test ah, 0x41
jp 0x40423a
fld qword [esp + 0x10]
fadd qword [0x41e5e0]
fstp qword [esp + 0x10]
movzx ecx, byte [esi - 2]
fld qword [esp + 0x38]
movzx edx, byte [esi - 1]
fsub st(4)
movzx eax, byte [esi]
fcomp st(3)
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 1]
shl ecx, 8
or ecx, eax
shl ecx, 8
fnstsw ax
or ecx, edx
mov dword [esp + edi*4 + 0x70], ecx
test ah, 5
jp 0x4042e3
fld qword [esp + 0x20]
fadd qword [0x41e5d8]
fsub qword [0x41e5d0]
fld qword [0x4230a0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4042e3
add word [0x4222a8], bx
mov eax, dword [0x423094]
mov cx, word [0x4231d4]
mov dx, word [0x4222a8]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
movsx eax, cx
movsx ecx, dx
sub ecx, eax
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fadd qword [0x423078]
fsubp st(1)
call fcn.0040abc0
mov dword [0x423094], eax
fld qword [0x423078]
fadd st(5)
fstp qword [0x423078]
add word [0x4231d4], bx
fld qword [0x423d48]
fsub qword [0x41e5c8]
fcomp qword [0x41e5c0]
fnstsw ax
test ah, 0x44
jnp 0x404337
fld qword [esp + 0x10]
fsub st(2)
fcomp st(1)
fnstsw ax
fld qword [esp + 0x10]
fadd st(5)
fstp qword [esp + 0x10]
test ah, 0x41
jp 0x404337
mov edx, dword [0x42222c]
mov ecx, dword [0x424b64]
mov eax, 0x9072d52b
sub eax, edx
imul ecx, eax
mov dword [0x424b64], ecx
add dword [0x42222c], ebx
inc edi
add esi, 4
cmp edi, 0x10
jne 0x4041fa
mov esi, dword [ebp + 8]
fstp st(4)
fstp st(0)
add esi, 8
fstp st(2)
push 0x100
fstp st(0)
mov ecx, 9
lea edi, [esp + 0x4c]
fstp st(0)
mov dword [esp + 0x48], esi
push 0x423d90
rep movsd dword es:[edi], dword [esi]
call fcn.00402850
mov ecx, dword [esp + 0x50]
fld qword [0x41e5b8]
mov dword [esp + 0x14], eax
fld qword [0x41e5b0]
lea eax, [esp + 0x50]
fld qword [0x41e5a8]
xor ebx, ebx
fld qword [0x41e5a0]
sub eax, 4
fld1
lea esi, [esp + 0x78]
add esp, 8
mov dword [esp + 0x34], ebx
mov dword [esp + 0x6c], eax
sub esi, 8
cmp ebx, 0xf
jle 0x404494
fld dword [0x422ff0]
fsub st(1)
fstp dword [0x422ff0]
fld dword [0x422ff0]
fsub st(5)
fadd qword [0x422f88]
fadd qword [esp + 0x10]
mov edi, dword [esi]
fstp qword [esp + 0x10]
fld qword [esp + 0x28]
fadd st(1)
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fsub st(4)
call fcn.0040abc0
mov word [0x42314c], ax
fld qword [esp + 0x28]
mov eax, dword [esi - 0x34]
fsub st(1)
mov edx, eax
mov ecx, eax
rol edx, 0xe
shr eax, 3
ror ecx, 7
xor edx, ecx
xor edx, eax
mov eax, edi
rol eax, 0xf
mov ecx, edi
rol ecx, 0xd
xor eax, ecx
shr edi, 0xa
xor eax, edi
add edx, eax
mov eax, dword [esi - 0x14]
lea ecx, [edx + eax]
mov dword [esi + 8], ecx
fstp qword [esp + 0x28]
fld qword [esp + 0x10]
fsub qword [esp + 0x28]
fucomp st(3)
fnstsw ax
fld qword [esp + 0x10]
fadd st(1)
fstp qword [esp + 0x10]
test ah, 0x44
jnp 0x404488
mov edx, dword [0x422170]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fadd dword [0x4230c8]
fadd qword [esp + 0x18]
fstp qword [esp + 0x20]
fld qword [esp + 0x18]
fadd st(1)
fstp qword [esp + 0x18]
inc dword [0x422170]
fld dword [0x4230c8]
fadd st(1)
fstp dword [0x4230c8]
mov eax, dword [esi - 0x38]
add eax, ecx
mov ecx, dword [esp + 0x48]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x58]
fld qword [esp + 0x18]
mov eax, edx
fadd st(2)
ror eax, 0xb
mov edi, edx
rol edi, 7
xor eax, edi
mov edi, edx
ror edi, 6
xor eax, edi
mov edi, dword [esp + 0x5c]
xor edi, dword [esp + 0x60]
and edi, edx
xor edi, dword [esp + 0x60]
mov edx, dword [esp + 0xc]
add eax, edi
add eax, dword [edx + ebx*4]
mov edi, ecx
add eax, dword [esi + 8]
mov edx, ecx
add eax, dword [esp + 0x64]
add dword [esp + 0x54], eax
ror edi, 0xd
rol edx, 0xa
xor edi, edx
mov edx, ecx
ror edx, 2
xor edi, edx
mov edx, dword [esp + 0x4c]
add edi, eax
mov ax, word [0x424b80]
mov ebx, edx
or ebx, ecx
and ebx, dword [esp + 0x50]
and edx, ecx
movsx ecx, ax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
or ebx, edx
fild dword [esp + 0x20]
add ebx, edi
mov dword [esp + 0x64], ebx
mov eax, 8
faddp st(1)
fmul qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x18]
fadd st(1)
fstp qword [esp + 0x18]
sub eax, 1
mov edx, dword [ecx + eax*4 + 4]
mov dword [esp + eax*4 + 0x4c], edx
jne 0x40452c
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
inc ebx
add esi, 4
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], ebx
cmp ebx, 0x40
jne 0x4043af
mov eax, dword [esp + 0xc]
fstp st(0)
fstp st(3)
push eax
fstp st(1)
push 0x100
fstp st(0)
fstp st(0)
call fcn.004017a0
mov ecx, dword [esp + 0x4c]
fld1
add esp, 8
xor eax, eax
mov edx, dword [esp + eax*4 + 0x48]
fld qword [esp + 0x38]
add dword [ecx], edx
fsub dword [0x42315c]
inc eax
add ecx, 4
fstp qword [esp + 0x18]
fld qword [esp + 0x38]
fsub st(1)
fstp qword [esp + 0x38]
cmp eax, 8
jne 0x40457a
pop edi
fstp st(0)
pop esi
pop ebx
mov esp, ebp
pop ebp
ret