Function at 0x100a0c10
Capabilities:
Hash data using murmur3

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov edx, dword [edi + 0x28]
mov ecx, dword [edi]
test edx, edx
jle 0x100a0c96
test ecx, 3
jne 0x100a0c3b
mov eax, dword [edi + 4]
sub eax, ecx
cmp eax, 4
jb 0x100a0c3b
lea ebx, [edi + 0x44]
jmp 0x100a0c56
cmp byte [edi + 0x44], 0
lea ebx, [edi + 0x44]
jne 0x100a0c7f
mov eax, dword [edi + 4]
sub eax, ecx
mov byte [ebx], 1
add eax, 3
and eax, 0xfffffffc
add ecx, eax
mov dword [edi], ecx
cmp byte [ebx], 0
jne 0x100a0c7f
mov eax, dword [ecx]
add ecx, 4
mov dword [edi], ecx
test eax, eax
je 0x100a0c7f
lea ebp, [eax - 1]
cmp ebp, edx
jb 0x100a0c8b
mov eax, dword [edi + 4]
sub eax, ecx
mov byte [ebx], 1
add eax, 3
and eax, 0xfffffffc
add eax, ecx
mov dword [edi], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 4
mov eax, dword [edi + 0x24]
mov ebp, dword [eax + ebp*4]
jmp 0x100a0d68
mov eax, dword [edi + 4]
sub eax, ecx
jne 0x100a0dea
mov byte [edi + 0x44], 1
mov ecx, edi
call fcn.100a0970
mov esi, eax
shr esi, 8
test esi, esi
je 0x100a0c7f
mov ecx, esi
mov ebx, 1
shr ecx, 0x10
xor ecx, esi
imul ecx, ecx, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul edx, eax, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
mov eax, ecx
xor eax, edx
cmp ecx, edx
cmovne ebx, eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x10], ebx
lea ecx, [eax - 1]
mov dword [esp + 0x14], ecx
and ecx, ebx
xor ebx, ebx
test eax, eax
jle 0x100a0d31
mov edx, dword [edi + 0x14]
lea eax, [ecx + ecx*2]
mov dword [esp + 0x18], ecx
lea edx, [edx + eax*4]
mov eax, dword [edx + 8]
test eax, eax
je 0x100a0d31
cmp dword [esp + 0x10], eax
jne 0x100a0d16
cmp esi, dword [edx]
je 0x100a0d33
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x14]
test eax, eax
mov eax, 0xffffffff
cmovns ecx, eax
inc ebx
add ecx, dword [esp + 0x18]
cmp ebx, dword [edi + 0x10]
jl 0x100a0cf8
xor edx, edx
lea eax, [edx + 4]
neg edx
sbb edx, edx
and edx, eax
je 0x100a0d44
mov ebp, dword [edx]
test ebp, ebp
jne 0x100a0d5b
cmp byte [edi + 0x44], 0
jne 0x100a0d5b
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
add ecx, 3
and ecx, 0xfffffffc
add dword [edi], ecx
mov byte [edi + 0x44], 1
cmp byte [edi + 0x44], 0
lea ebx, [edi + 0x44]
jne 0x100a0c7f
mov ecx, edi
xor esi, esi
call fcn.100a0970
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x100a0e81
mov eax, dword [edi]
sub eax, dword [edi + 8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
push edi
push eax
call ebp
add esp, 8
mov esi, dword [eax]
mov dword [eax], 0
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x100a0db5
lea eax, [ecx + 4]
or edx, 0xffffffff
lock xadd dword [eax], edx
cmp edx, 1
jne 0x100a0db5
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi]
mov eax, ecx
sub eax, dword [edi + 8]
sub eax, dword [esp + 0x14]
cmp dword [esp + 0x10], eax
je 0x100a0e59
cmp byte [ebx], 0
jne 0x100a0e8e
mov eax, dword [edi + 4]
sub eax, ecx
add eax, 3
and eax, 0xfffffffc
add eax, ecx
mov dword [edi], eax
mov byte [ebx], 1
jmp 0x100a0e8e
cmp byte [ecx], 0
je 0x100a0ca5
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.100a1590
test eax, eax
je 0x100a0d44
push eax
call fcn.1004f2e0
mov edx, dword [edi + 0xc]
mov ebp, eax
mov esi, dword [edi + 0x10]
add esp, 4
mov dword [esp + 0x1c], ebp
lea ecx, [edx + 1]
mov dword [esp + 0x18], ecx
lea eax, [esi + esi*2]
lea ecx, [edx*4]
cmp ecx, eax
jl 0x100a0e47
test esi, esi
jle 0x100a0e39
add esi, esi
jmp 0x100a0e3e
mov esi, 4
push esi
lea ecx, [edi + 0xc]
call fcn.1009fc20
lea eax, [esp + 0x18]
push eax
lea ecx, [edi + 0xc]
call fcn.1000d600
jmp 0x100a0d40
test esi, esi
je 0x100a0e89
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
cmp eax, dword [esp + 0x24]
je 0x100a0e89
cmp byte [ebx], 0
jne 0x100a0e8e
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
add ecx, 3
and ecx, 0xfffffffc
add dword [edi], ecx
mov byte [ebx], 1
jmp 0x100a0e8e
add eax, 3
and eax, 0xfffffffc
add dword [edi], eax
cmp byte [ebx], 0
je 0x100a0eb6
xor edi, edi
test esi, esi
je 0x100a0eb8
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
cmp ecx, 1
jne 0x100a0eb8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4
mov edi, esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4