Function at 0x41a080
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
push edi
lea edi, [edx + 3]
push esi
push ebx
sub esp, 0x3c
test edx, edx
cmovns edi, edx
mov dword [esp + 0x14], ecx
mov eax, edi
and edi, 0xfffffffc
sar eax, 2
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul dword [0x443f40]
mov dword [esp + 0x18], edi
fild dword [esp + 0x18]
fld st(1)
fabs
fxch st(2)
fucomi st(1)
jp 0x41a1f0
jne 0x41a1f0
fstp st(0)
fstp st(0)
fstp st(0)
xor ebp, ebp
mov dword [esp + 0x18], edx
xor esi, esi
cmp edi, ebp
jle 0x41a11f
cmp dword [esp + 0x18], ebp
jle 0x41a290
mov ecx, dword [esp + 0x14]
mov eax, ebp
add ebp, 4
imul ebx, dword [ecx + eax], 0xcc9e2d51
mov dword [esp], 0x4421e8
call sym.s.._s.nimble_spkgs2_swinim_3.9.2_154c271e1d766fca5aea32beecec5645e6d2e114_swinim_swinstr.nim.c
rol ebx, 0xf
cmp byte [eax], 0
jne 0x41a1df
imul ebx, ebx, 0x1b873593
xor ebx, esi
rol ebx, 0xd
lea esi, [ebx + ebx*4 - 0x19ab949c]
cmp edi, ebp
jg 0x41a0d7
mov edx, dword [esp + 0x18]
mov ebx, esi
mov ecx, edx
sar ecx, 0x1f
shr ecx, 0x1e
lea eax, [edx + ecx]
and eax, 3
sub eax, ecx
test eax, eax
jle 0x41a2ce
lea esi, [eax - 1]
lea ecx, [ebp + esi]
mov edi, ecx
cmp ecx, edx
jge 0x41a2ba
mov edi, dword [esp + 0x14]
movzx ecx, byte [edi + ecx]
test esi, esi
je 0x41a18c
lea esi, [eax - 2]
lea eax, [esi + ebp]
mov edi, eax
cmp edx, eax
jle 0x41a2ba
mov edi, dword [esp + 0x14]
shl ecx, 8
movzx eax, byte [edi + eax]
or ecx, eax
test esi, esi
je 0x41a18c
cmp edx, ebp
jle 0x41a2b8
movzx eax, byte [edi + ebp]
shl ecx, 8
or ecx, eax
imul ecx, ecx, 0xcc9e2d51
mov esi, ecx
rol esi, 0xf
mov dword [esp], 0x4421e8
mov dword [esp + 0x14], edx
call sym.s.._s.nimble_spkgs2_swinim_3.9.2_154c271e1d766fca5aea32beecec5645e6d2e114_swinim_swinstr.nim.c
mov edx, dword [esp + 0x14]
cmp byte [eax], 0
jne 0x41a1df
imul eax, esi, 0x1b873593
xor edx, ebx
xor eax, edx
mov edx, eax
shr edx, 0x10
xor edx, eax
imul edx, edx, 0x85ebca6b
mov eax, edx
shr eax, 0xd
xor eax, edx
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor edx, eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
fsubp st(1)
xor ebx, ebx
mov dword [esp + 0x28], edi
xor ebp, ebp
mov edi, ebx
mov esi, edx
fabs
fmul dword [0x443f44]
fxch st(1)
fcomi st(1)
jae 0x41a228
fstp st(0)
fstp st(0)
call fcn.00409c50
mov eax, dword [esp + 0x2c]
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, dword [esp + 0x28]
jge 0x41a280
cmp ebp, esi
jge 0x41a2b0
fxch st(1)
mov ecx, dword [esp + 0x14]
mov eax, ebp
fstp qword [esp + 0x20]
add ebp, 4
fstp qword [esp + 0x18]
imul ebx, dword [ecx + eax], 0xcc9e2d51
mov dword [esp], 0x4421e8
call sym.s.._s.nimble_spkgs2_swinim_3.9.2_154c271e1d766fca5aea32beecec5645e6d2e114_swinim_swinstr.nim.c
rol ebx, 0xf
cmp byte [eax], 0
jne 0x41a1df
imul ebx, ebx, 0x1b873593
fld qword [esp + 0x20]
fld qword [esp + 0x18]
xor ebx, edi
rol ebx, 0xd
lea edi, [ebx + ebx*4 - 0x19ab949c]
jmp 0x41a208
fstp st(0)
fstp st(0)
mov ebx, edi
mov edx, esi
jmp 0x41a125
mov edx, dword [esp + 0x18]
sub edx, 1
mov dword [esp], ebp
mov dword [esp + 4], edx
call sym.bss
jmp 0x41a1df
fstp st(0)
fstp st(0)
mov edx, esi
jmp 0x41a294
mov edi, ebp
sub edx, 1
mov dword [esp], edi
mov dword [esp + 4], edx
call sym.bss
jmp 0x41a1df
xor esi, esi
jmp 0x41a197