Function at 0x100cdf60
Capabilities:
Hash data using murmur3

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, ecx
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x100ce0b3
mov ecx, dword [esi + 0x28]
xor edi, edi
mov edx, 0
cmp eax, 8
jb 0x100ce08d
mov edx, eax
and edx, 0xfffffff8
pxor xmm0, xmm0
mov edi, edx
mov ebx, ecx
pxor xmm1, xmm1
nop dword [eax + eax]
movd xmm2, dword [ebx + 0x84]
movd xmm3, dword [ebx + 0x58]
punpckldq xmm3, xmm2
movd xmm4, dword [ebx + 0x2c]
movd xmm2, dword [ebx]
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm3
movd xmm3, dword [ebx + 0x134]
movd xmm4, dword [ebx + 0x108]
punpckldq xmm4, xmm3
movd xmm5, dword [ebx + 0xdc]
movd xmm3, dword [ebx + 0xb0]
punpckldq xmm3, xmm5
punpcklqdq xmm3, xmm4
psrld xmm2, 1
psrld xmm3, 1
movdqa xmm4, xmm0
pcmpgtd xmm0, xmm2
pand xmm4, xmm0
pandn xmm0, xmm2
por xmm0, xmm4
movdqa xmm2, xmm1
pcmpgtd xmm1, xmm3
pand xmm2, xmm1
pandn xmm1, xmm3
por xmm1, xmm2
add ebx, 0x160
add edi, 0xfffffff8
jne 0x100cdfa0
movdqa xmm2, xmmword [0x101540d0]
movdqa xmm3, xmm1
pxor xmm3, xmm2
pxor xmm2, xmm0
pcmpgtd xmm2, xmm3
pand xmm0, xmm2
pandn xmm2, xmm1
por xmm2, xmm0
pshufd xmm0, xmm2, 0xee
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm0
pand xmm2, xmm1
pandn xmm1, xmm0
por xmm1, xmm2
pshufd xmm0, xmm1, 0x55
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pand xmm1, xmm2
pandn xmm2, xmm0
por xmm2, xmm1
movd edi, xmm2
cmp eax, edx
je 0x100ce0b5
sub eax, edx
imul edx, edx, 0x2c
add ecx, edx
mov edx, edi
nop word cs:[eax + eax]
mov edi, dword [ecx]
shr edi, 1
cmp edx, edi
cmovg edi, edx
add ecx, 0x2c
mov edx, edi
dec eax
jne 0x100ce0a0
jmp 0x100ce0b5
xor edi, edi
mov eax, dword [esi + 8]
test eax, eax
je 0x100ce0d4
pxor xmm0, xmm0
movq qword [esi], xmm0
push eax
call fcn.100a6500
add esp, 4
mov dword [esi + 8], 0
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x100ce0f4
pxor xmm0, xmm0
movq qword [esi + 0x14], xmm0
push eax
call fcn.100a6500
add esp, 4
mov dword [esi + 0x1c], 0
mov byte [esi + 0x46], 0
mov word [esi + 0x58], 0
mov dword [esp], edi
lea eax, [edi + 1]
mov ecx, esi
mov dword [esp + 4], eax
push eax
call fcn.100ce560
mov ebp, dword [esi + 0x20]
test ebp, ebp
jle 0x100ce16a
xor eax, eax
mov edx, 8
nop
mov ecx, dword [esi + 8]
mov ebp, dword [esi + 0x28]
mov edi, dword [ebp + edx - 8]
mov ebx, esi
mov esi, edi
shr esi, 1
movd xmm0, dword [ebp + edx]
movd dword [ecx + esi*4], xmm0
mov ecx, dword [ebx + 0x1c]
mov esi, edi
and esi, 0xfffffffe
mov word [ecx + esi], ax
mov esi, ebx
mov ecx, edi
shr ecx, 0xd
and cl, 7
mov ebx, 1
shl ebx, cl
shr edi, 0x10
or byte [esi + edi + 0x58], bl
inc eax
mov ebp, dword [esi + 0x20]
add edx, 0x2c
cmp eax, ebp
jl 0x100ce120
mov eax, dword [esi + 0x14]
cmp eax, 0x20
jbe 0x100ce181
mov ecx, dword [esi + 0x1c]
movzx ecx, word [ecx + 0x40]
cmp ecx, 0xffff
jne 0x100ce1b8
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100ce1c2
mov edi, dword [esi + 0x28]
lea ecx, [ebp - 1]
imul edx, ecx, 0x2c
mov edx, dword [edi + edx]
and edx, 0xfffffffe
cmp edx, 0x12
mov ebx, dword [esp]
jne 0x100ce1a6
mov ebp, ecx
jmp 0x100ce240
lea edx, [ebp + 1]
mov ebx, dword [esi + 0x24]
cmp ebx, ebp
jle 0x100ce1d3
mov ebx, dword [esp]
jmp 0x100ce23d
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x100ce188
mov ebx, dword [esp]
cmp eax, 0x20
ja 0x100ce2b9
jmp 0x100ce2cc
test ebx, ebx
je 0x100ce1e4
mov ecx, ebx
shr ecx, 0x1f
add ecx, ebx
sar ecx, 1
add ecx, ebx
jmp 0x100ce1e9
mov ecx, 8
cmp ecx, edx
cmovle ecx, edx
cmp ebx, ecx
mov ebx, dword [esp]
jge 0x100ce23d
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
imul eax, ecx, 0x2c
push eax
call fcn.100a64d0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x28]
test eax, eax
je 0x100ce22c
imul ecx, dword [esi + 0x20], 0x2c
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esi + 0x28]
call fcn.100a6500
add esp, 4
mov dword [esi + 0x28], edi
mov eax, dword [esp + 8]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x14]
mov edx, dword [esp + 0xc]
mov dword [esi + 0x20], edx
imul edx, ebp, 0x2c
lea ecx, [edi + edx]
cmp eax, 0x20
jbe 0x100ce259
mov eax, dword [esi + 0x1c]
movzx eax, word [eax + 0x40]
cmp eax, 0xffff
jne 0x100ce25e
mov eax, dword [esi + 0x2c]
jmp 0x100ce263
imul eax, eax, 0x2c
add eax, edi
movups xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax + 0x1c]
movups xmmword [ecx + 0x1c], xmm0
movdqu xmmword [ecx + 0x10], xmm1
mov eax, dword [ecx]
and eax, 1
or eax, 0x12
mov dword [ecx], eax
movss xmm0, dword [edi + edx + 8]
mulss xmm0, dword [0x101560a0]
movss dword [edi + edx + 8], xmm0
mov eax, dword [esi + 8]
movss dword [eax + 0x24], xmm0
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
dec edx
mov ecx, dword [ecx]
and ecx, 0xfffffffe
mov word [eax + ecx], dx
mov eax, dword [esi + 0x14]
cmp eax, 0x20
jbe 0x100ce2cc
mov ecx, dword [esi + 0x1c]
movzx ecx, word [ecx + 0x40]
cmp ecx, 0xffff
jne 0x100ce3ba
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100ce2da
and byte [ecx + 4], 0xfe
mov eax, dword [esi + 0x14]
cmp eax, 9
jbe 0x100ce2f2
mov ecx, dword [esi + 0x1c]
movzx ecx, word [ecx + 0x12]
cmp ecx, 0xffff
jne 0x100ce3cd
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100ce300
and byte [ecx + 4], 0xfe
mov eax, dword [esi + 0x14]
movzx ecx, word [esi + 0x42]
cmp eax, ecx
jbe 0x100ce32f
mov eax, dword [esi + 0x1c]
movzx ecx, word [eax + ecx*2]
cmp ecx, 0xffff
je 0x100ce32f
mov eax, dword [esi + 0x28]
imul ecx, ecx, 0x2c
lea edx, [eax + ecx]
mov dword [esi + 0x2c], edx
test eax, eax
je 0x100ce336
movss xmm0, dword [eax + ecx + 8]
jmp 0x100ce339
mov dword [esi + 0x2c], 0
xorps xmm0, xmm0
movss dword [esi + 0xc], xmm0
test ebx, ebx
je 0x100ce391
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, 0xfffffffe
xor eax, eax
xorps xmm0, xmm0
jmp 0x100ce367
add eax, 2
cmp ecx, eax
je 0x100ce397
mov edx, dword [esi + 8]
ucomiss xmm0, dword [edx + eax*4]
jbe 0x100ce37a
movd xmm1, dword [esi + 0xc]
movd dword [edx + eax*4], xmm1
mov edx, dword [esi + 8]
ucomiss xmm0, dword [edx + eax*4 + 4]
jbe 0x100ce360
movd xmm1, dword [esi + 0xc]
movd dword [edx + eax*4 + 4], xmm1
jmp 0x100ce360
xor eax, eax
mov ebx, dword [esp + 4]
test bl, 1
je 0x100ce3b2
mov ecx, dword [esi + 8]
xorps xmm0, xmm0
ucomiss xmm0, dword [ecx + eax*4]
jbe 0x100ce3b2
movss xmm0, dword [esi + 0xc]
movss dword [ecx + eax*4], xmm0
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x100ce2d3
jmp 0x100ce2da
imul ecx, ecx, 0x2c
add ecx, dword [esi + 0x28]
test ecx, ecx
jne 0x100ce2f9
jmp 0x100ce300