Function at 0x402330
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x154
fldz
push ebx
fstp qword [esp + 0x20]
xor eax, eax
fldz
xor ebx, ebx
fst dword [esp + 8]
push esi
xor ecx, ecx
mov word [esp + 0x1c], ax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], ebx
fstp dword [esp + 0x20]
fld1
push edi
add eax, 2
movzx edx, byte [eax - 2]
fld dword [esp + 0x24]
movzx esi, byte [eax - 1]
fsub st(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 + 0x60], edx
inc ecx
fstp dword [esp + 0x24]
add eax, 4
fld dword [esp + 0x24]
fstp qword [esp + 0x28]
cmp ecx, 0x10
jne 0x402366
mov ax, word [0x4253e4]
mov cx, word [esp + 0x20]
dec word [0x4253e4]
cwde
movsx edx, cx
sub edx, eax
cmp edx, 0xb0893196
jge 0x4023df
fld dword [esp + 0x10]
fsub qword [0x41f4b8]
fadd qword [esp + 0x28]
fstp qword [esp + 0x28]
fld dword [esp + 0x10]
fadd st(1)
fstp dword [esp + 0x10]
mov esi, dword [ebp + 8]
mov ax, word [0x425448]
add esi, 8
mov ecx, 9
lea edi, [esp + 0x3c]
mov dword [esp + 0x38], esi
rep movsd dword es:[edi], dword [esi]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x10]
fadd dword [esp + 0x1c]
call fcn.0040af50
mov word [0x425448], ax
fadd dword [esp + 0x10]
push 0x100
push 0x4252d0
fstp dword [esp + 0x18]
call fcn.004022b0
mov dx, word [0x424768]
fld qword [0x41f4b0]
mov ecx, dword [esp + 0x20]
fld1
mov dword [esp + 0x24], eax
movsx eax, dx
sub eax, ecx
add eax, dword [esp + 0x20]
lea edi, [esp + 0x68]
mov word [0x424768], ax
lea eax, [esp + 0x44]
sub eax, 4
add esp, 8
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], eax
sub edi, 8
cmp dword [esp + 0x30], 0xf
jle 0x40251c
fld dword [0x4231a0]
mov esi, dword [edi]
fadd dword [esp + 0x24]
mov dx, word [esp + 0x20]
mov cx, word [esp + 0x20]
movsx eax, dx
mov dword [esp + 0x14], eax
movsx edx, cx
fild dword [esp + 0x14]
mov dword [esp + 0x14], edx
fsubp st(1)
fild dword [esp + 0x14]
fmulp st(1)
call fcn.0040af50
mov word [esp + 0x20], ax
inc dword [esp + 0x20]
fld dword [0x4231a0]
mov ebx, dword [edi - 0x34]
fadd st(1)
fstp dword [0x4231a0]
fld qword [esp + 0x28]
fsub st(1)
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fadd qword [esp + 0x28]
call fcn.0040af50
mov ecx, ebx
rol ecx, 0xe
mov edx, ebx
ror edx, 7
xor ecx, edx
mov dword [esp + 0x18], eax
shr ebx, 3
xor ecx, ebx
mov eax, esi
rol eax, 0xf
mov edx, esi
rol edx, 0xd
xor eax, edx
shr esi, 0xa
xor eax, esi
add ecx, eax
add ecx, dword [edi - 0x38]
add ecx, dword [edi - 0x14]
mov dword [edi + 8], ecx
fld qword [str._b:H_a]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
fmul st(2)
mov eax, ecx
ror eax, 0xb
mov edx, ecx
fstp qword [str._b:H_a]
rol edx, 7
xor eax, edx
mov edx, ecx
ror edx, 6
xor eax, edx
mov edx, dword [esp + 0x54]
xor esi, edx
and esi, ecx
mov ecx, dword [esp + 0x1c]
xor esi, edx
mov edx, dword [esp + 0x30]
add eax, esi
add eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x3c]
add eax, dword [edi + 8]
mov ecx, edx
add eax, dword [esp + 0x58]
ror ecx, 0xd
mov esi, edx
rol esi, 0xa
xor ecx, esi
mov esi, edx
ror esi, 2
xor ecx, esi
mov esi, dword [esp + 0x40]
mov ebx, esi
or ebx, edx
and ebx, dword [esp + 0x44]
add dword [0x4259b4], 0x2f4362dc
add dword [esp + 0x48], eax
and esi, edx
or ebx, esi
add ecx, ebx
add ecx, eax
movzx eax, word [0x4235e8]
add eax, 0x137bbcda
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x34]
mov word [0x4235e8], ax
mov eax, 8
sub eax, 1
mov edx, dword [ecx + eax*4 + 4]
mov dword [esp + eax*4 + 0x40], edx
jne 0x4025bb
mov eax, dword [0x425a10]
mov cx, word [0x425b08]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
movsx edx, cx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fsub dword [esp + 0x10]
fsubp st(1)
call fcn.0040af50
mov dword [0x425a10], eax
fld dword [esp + 0x10]
fsub st(1)
add edi, 4
fstp dword [esp + 0x10]
dec word [0x425b08]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 0x40
jne 0x402472
fstp st(1)
fld qword [esp + 0x28]
fadd qword [0x41f4a8]
fsub qword [0x41f4a0]
fcomp qword [0x41f498]
fnstsw ax
fsubr qword [esp + 0x28]
fstp qword [esp + 0x28]
test ah, 0x44
jnp 0x40266f
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
lea eax, [edx + ecx - 0x7a238501]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fadd dword [esp + 0x24]
fstp dword [esp + 0x24]
inc dword [esp + 0x18]
fldz
mov esi, dword [esp + 0x1c]
xor ecx, ecx
fstp qword [esp + 0x28]
push 0x100
push ecx
mov word [esp + 0x18], cx
push esi
call fcn.0040b000
push esi
call fcn.0040ae3b
fld dword [0x4230d0]
add esp, 0x10
call fcn.0040af50
mov ecx, dword [esp + 0x38]
mov word [esp + 0x10], ax
fld dword [0x4230d0]
fsub qword [0x41f340]
xor eax, eax
fstp dword [0x4230d0]
lea ecx, [ecx]
mov edx, dword [esp + eax*4 + 0x3c]
add dword [ecx], edx
inc eax
add ecx, 4
cmp eax, 8
jne 0x4026c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret