Function at 0x4039e0
Capabilities:
Hash data using murmur3

Disassembly:
sub esp, 0x144
fldz
push ebx
fst qword [esp + 8]
push ebp
fst qword [esp + 0x14]
push esi
mov esi, dword [esp + 0x158]
fstp qword [esp + 0x18]
fld1
xor ebp, ebp
fld qword [0x41f5c8]
push edi
fld qword [0x41f5c0]
mov dword [esp + 0x10], ebp
fld qword [0x41f5b8]
xor edi, edi
fld qword [0x41f5b0]
mov dword [esp + 0x28], ebp
add esi, 2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x1c]
fmul qword [esp + 0x14]
fstp qword [esp + 0x14]
dec dword [esp + 0x10]
fld qword [esp + 0x1c]
fadd st(5)
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fsub qword [esp + 0x14]
fsub st(4)
fcomp st(3)
fnstsw ax
test ah, 0x41
jp 0x403a6b
fld qword [esp + 0x14]
fsub st(2)
fstp qword [esp + 0x14]
movzx ecx, byte [esi - 2]
fld dword [0x424394]
movzx edx, byte [esi - 1]
fsub st(1)
movzx eax, byte [esi]
shl ecx, 8
or ecx, edx
movzx edx, byte [esi + 1]
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, edx
mov dword [esp + edi*4 + 0x54], ecx
call fcn.0040b420
inc edi
add esi, 4
mov dword [0x423d10], eax
cmp edi, 0x10
jne 0x403a28
mov esi, dword [esp + 0x158]
fstp st(4)
fstp st(2)
add esi, 8
fstp st(0)
push 0x100
fstp st(0)
mov ecx, 9
lea edi, [esp + 0x34]
fstp st(0)
mov dword [esp + 0x18], esi
push 0x4243b0
rep movsd dword es:[edi], dword [esi]
call fcn.004026c0
mov dword [esp + 0x2c], eax
fld qword [0x41f5a8]
lea eax, [esp + 0x38]
fld1
sub eax, 4
lea ebx, [esp + 0x5c]
add esp, 8
mov dword [esp + 0x2c], eax
sub ebx, 8
cmp ebp, 0xf
jle 0x403b4a
add dword [0x4244ec], 0x94adff9d
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx]
imul ecx, ecx, 0xae2d70c7
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx - 0x34]
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 [ebx - 0x38]
add edx, dword [ebx - 0x14]
mov dword [ebx + 8], edx
fld qword [0x4230c8]
mov eax, dword [esp + 0x40]
mov esi, eax
fsub st(2)
ror esi, 0xb
mov edx, eax
rol edx, 7
fstp qword [0x4230c8]
xor esi, edx
fld dword [0x424228]
mov edx, dword [esp + 0x44]
fadd st(1)
mov ecx, eax
ror ecx, 6
xor esi, ecx
mov ecx, dword [esp + 0x48]
xor edx, ecx
and edx, eax
mov eax, dword [esp + 0x24]
xor edx, ecx
add esi, edx
add esi, dword [eax + ebp*4]
mov eax, dword [esp + 0x30]
add esi, dword [ebx + 8]
mov edi, eax
add esi, dword [esp + 0x4c]
ror edi, 0xd
mov ecx, eax
rol ecx, 0xa
xor edi, ecx
mov ecx, dword [esp + 0x34]
mov edx, eax
ror edx, 2
xor edi, edx
mov edx, ecx
or edx, eax
and edx, dword [esp + 0x38]
fstp dword [0x424228]
fld dword [0x424228]
and ecx, eax
or edx, ecx
add edi, edx
call fcn.0040b420
add dword [esp + 0x3c], esi
mov dword [esp + 0x28], eax
movzx eax, word [str.Mt6xYX6z___r]
add edi, esi
imul eax, eax, 0x94cbeff5
mov dword [esp + 0x4c], edi
mov word [str.Mt6xYX6z___r], ax
mov eax, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + eax*4]
mov ecx, dword [0x425fec]
add ecx, 0x46053d1b
sub eax, 1
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x34], edx
fstp qword [0x424208]
jne 0x403bf5
mov edx, dword [esp + 0x50]
inc ebp
add ebx, 4
mov dword [esp + 0x30], edx
cmp ebp, 0x40
jne 0x403afb
mov esi, dword [esp + 0x24]
fstp st(1)
fstp st(0)
xor ecx, ecx
fld dword [0x4242cc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fisub dword [esp + 0x1c]
push 0x100
push ecx
push esi
fstp dword [0x4242cc]
dec dword [esp + 0x1c]
fldz
fstp qword [esp + 0x28]
mov word [esp + 0x1c], cx
call fcn.0040af10
push esi
call fcn.0040ae7f
mov edi, dword [esp + 0x24]
add esp, 0x10
xor esi, esi
fld dword [0x424f18]
mov edx, dword [esp + 0x28]
mov ax, word [0x4241b4]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
movsx ecx, ax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
faddp st(2)
fsubrp st(1)
call fcn.0040b420
mov edx, dword [esp + esi*4 + 0x30]
add dword [edi], edx
inc esi
add edi, 4
mov dword [esp + 0x28], eax
cmp esi, 8
jne 0x403c80
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret