Function at 0x1002cba0
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov esi, ecx
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
cmp dword [edx + 0x20], 0
je 0x1002cc05
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
mov eax, dword [eax + 0x18]
mov dword [esp + 8], 0x444905b1
mov ecx, dword [esp + 8]
bswap ecx
mov dword [esp + 8], ecx
add dword [esp + 8], 0x4efcb6bc
mov ecx, dword [esp + 8]
rol ecx, 0xf
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp eax, ecx
jge 0x1002cc1c
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
add edx, 0x1c
jmp 0x1002d0f1
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
cmp dword [edx + 0x1c], 0
je 0x1002d0df
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [esp + 8], 0x296af2e8
mov ecx, dword [esp + 8]
bswap ecx
mov dword [esp + 8], ecx
add dword [esp + 8], 0x171595d7
mov ecx, dword [esp + 8]
rol ecx, 0xd
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp eax, ecx
jl 0x1002d0df
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jge 0x1002d0df
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x20]
mov edx, dword [0x102a22ac]
mov edx, dword [edx + 0x1c]
cmp eax, dword [edx + ecx]
jge 0x1002d0df
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [0x102a22ac]
mov ecx, dword [ecx + 0x1c]
mov edi, dword [ecx + eax]
mov ecx, dword [0x102a22b0]
lea eax, [esi + 0x14c]
mov dword [esp], eax
call fcn.10016840
sub esp, 4
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
test al, al
jne 0x1002d0ee
cmp byte [edx + 0x18], 0
je 0x1002d167
mov eax, dword [edx + 0x10]
movss xmm0, dword [eax + 0x6418]
movss xmm1, dword [eax + 0x641c]
mulss xmm0, xmm0
xorps xmm2, xmm2
addss xmm2, xmm0
mulss xmm1, xmm1
addss xmm1, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x1002cd7c
sqrtsd xmm0, xmm0
jmp 0x1002cd90
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
cvtsd2ss xmm0, xmm0
ucomiss xmm0, dword [0x10147b34]
jbe 0x1002cdc6
mov ecx, dword [ebp + 8]
bswap ecx
mov eax, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp + 0x10]
ror eax, cl
cmp byte [eax + 0x18], 0
je 0x1002d167
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x636c], 0
je 0x1002d0fd
xor ebx, ebx
mov ecx, esi
call fcn.10027f70
test al, 1
je 0x1002cdfc
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
cmp byte [edx + 0x18], 0
je 0x1002d167
mov ecx, dword [edx + 0x10]
test byte [ecx + 0x6374], 1
je 0x1002d0df
test al, 2
mov dword [esp + 0xc], eax
je 0x1002ce29
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0xc]
cmp byte [ecx + 0x1c], 0
setne cl
or cl, bl
je 0x1002d0df
test al, 4
je 0x1002ce56
mov ecx, dword [ebp + 8]
bswap ecx
mov eax, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp + 0x10]
ror eax, cl
cmp byte [eax + 0x18], 0
je 0x1002d167
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x6428], 0
je 0x1002d0df
mov ecx, esi
call fcn.10027ed0
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0x20]
mov edx, dword [esp + 0xc]
cmp dword [ecx + 0x18], edi
jge 0x1002cebd
test al, 1
jne 0x1002d124
test al, 2
sete cl
xor bl, 1
or bl, cl
je 0x1002cc05
test al, 4
je 0x1002cebd
mov ecx, dword [ebp + 8]
bswap ecx
mov eax, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp + 0x10]
ror eax, cl
cmp byte [eax + 0x18], 0
je 0x1002d167
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x6428], 0
jne 0x1002cc05
test dl, 8
je 0x1002cfa4
mov eax, dword [0x102a2368]
mov ecx, dword [eax + 0x118]
test ecx, ecx
je 0x1002cfa4
mov edx, dword [eax + 0x114]
add ecx, edx
dec ecx
mov edx, dword [eax + 0x10c]
mov eax, dword [eax + 0x110]
dec eax
and eax, ecx
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x3040]
mov ecx, dword [ecx + 0xc]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ebp + 8]
bswap ecx
mov esi, dword [ebp + 0xc]
add esi, ecx
mov ecx, dword [ebp + 0x10]
ror esi, cl
mov ecx, dword [esi + 0xc]
cmp edx, dword [ecx + 0x20]
jne 0x1002cfa4
mov edx, dword [eax + 0x303c]
sub edx, dword [ebp + 0x14]
mov ecx, edx
neg ecx
cmovs ecx, edx
mov dword [esp + 8], 0x147c21f8
mov edx, dword [esp + 8]
bswap edx
mov dword [esp + 8], edx
add dword [esp + 8], 0x5fde83ee
mov edx, dword [esp + 8]
rol edx, 6
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
cmp ecx, edx
jg 0x1002cfa4
mov ecx, dword [eax + 0x3040]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x20]
mov edx, dword [0x102a22ac]
mov edx, dword [edx + 0x1c]
cvtsi2ss xmm0, dword [edx + ecx]
subss xmm0, dword [eax + 0x10]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x1002cf81
jnp 0x1002cfa4
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [eax + 0x18]
ucomiss xmm1, xmm0
jae 0x1002d0df
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x20]
mov edx, dword [0x102a22ac]
mov edx, dword [edx + 0x1c]
cmp eax, dword [edx + ecx]
jge 0x1002d0df
mov ecx, dword [0x102a22b0]
mov eax, dword [0x102a233c]
add eax, 0x20
mov dword [esp], eax
call fcn.10016840
sub esp, 4
test al, al
je 0x1002cc05
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0x20]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [eax + 0x18]
mov dword [esp + 8], 0xd05a3b08
mov eax, dword [esp + 8]
bswap eax
mov dword [esp + 8], eax
add dword [esp + 8], 0x188a530
mov eax, dword [esp + 8]
rol eax, 0x13
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov dword [esp + 8], 0xfc439ee5
mov eax, dword [esp + 8]
bswap eax
mov dword [esp + 8], eax
add dword [esp + 8], 0x1a61c5c8
mov eax, dword [esp + 8]
rol eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cvtsi2ss xmm2, eax
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x20]
mov eax, dword [0x102a22ac]
mov edx, dword [eax + 0x1c]
cvtsi2ss xmm3, dword [edx + ecx]
divss xmm1, xmm2
mulss xmm1, xmm0
ucomiss xmm1, xmm3
jb 0x1002cc05
test byte [esp + 0xc], 8
je 0x1002cc05
mov ecx, dword [0x102a22d4]
mov ecx, dword [ecx + 0xc]
mov eax, dword [eax + 0x108]
cmp word [eax + ecx], 0x28
je 0x1002cc05
mov eax, dword [0x102a233c]
cmp dword [eax + 0x5c], 0xe
jl 0x1002cc05
mov eax, dword [ebp + 8]
bswap eax
mov edx, dword [ebp + 0xc]
add edx, eax
mov ecx, dword [ebp + 0x10]
ror edx, cl
add edx, 0x20
mov eax, dword [edx]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov ecx, dword [ebp + 8]
bswap ecx
mov eax, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp + 0x10]
ror eax, cl
cmp byte [eax + 0x18], 0
je 0x1002d167
mov eax, dword [eax + 0x10]
movzx ebx, byte [eax + 0x6374]
and bl, 1
jmp 0x1002cdc8
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0xc]
cmp byte [ecx], 0
jne 0x1002cc05
mov ecx, dword [ebp + 8]
bswap ecx
mov edx, dword [ebp + 0xc]
add edx, ecx
mov ecx, dword [ebp + 0x10]
ror edx, cl
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0xc]
cmp byte [ecx + 0x3ca9], 0
jne 0x1002cc05
jmp 0x1002ce80
call fcn.1002e760
int3