Function at 0x100027b0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
test dword [edi + 8], 0x1c00000
jne 0x100029b9
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x1000281f
mov ecx, dword [edi + 8]
mov eax, ecx
movups xmm0, xmmword [edi + 4]
shr eax, 0x14
movups xmmword [ebp - 0x18], xmm0
test al, 1
je 0x10002803
test dword [edi + 4], 0x1ff8000
jne 0x10002803
cmp dword [edi + 0xc], 2
jne 0x10002803
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], 1
movups xmm0, xmmword [ebp - 0x18]
push ecx
push dword [ebp + 0xc]
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
movups xmmword [ebp - 0x18], xmm0
call fcn.10002560
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 2
je 0x1000282d
cmp eax, 3
jne 0x100029b0
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x18]
jb 0x10002844
cmp dword [esi + 0xc], 3
jne 0x100028f9
call fcn.10001730
mov dl, byte [ebp + 0xc]
mov ecx, dword [esi + 0x20]
and dl, 7
mov eax, dword [esi + 0x1c]
shl dl, 3
or dl, 5
mov byte [ecx + eax], dl
mov ecx, dword [esi + 0x20]
inc ecx
mov dword [esi + 0x20], ecx
mov edx, dword [edi + 0x14]
mov ebx, dword [edi + 0x10]
mov dword [ebp - 8], edx
test edx, edx
je 0x10002989
sub ebx, dword [ebp + 0x10]
cmp dword [esi + 0xc], 3
jne 0x1000288c
lea eax, [ecx + 0x10]
cmp eax, dword [esi + 0x18]
jb 0x1000288c
mov ecx, esi
call fcn.10001730
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov edi, dword [ebp - 8]
test edx, edx
jne 0x100028a2
mov edx, dword [esi + 0x34]
lea eax, [edx + 1]
mov dword [esi + 0x34], eax
mov dword [edi + 4], edx
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esi + 0x50]
and ecx, eax
mov eax, dword [esi + 0x44]
lea eax, [eax + ecx*8]
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 8], eax
mov eax, dword [eax + 4]
cmp eax, ecx
jne 0x10002900
xor eax, eax
jmp 0x10002923
push 2
jmp 0x100029bb
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
cmp edx, dword [eax + 8]
je 0x10002920
nop word [eax + eax]
cmp eax, ecx
je 0x1000291e
mov eax, dword [eax + 4]
cmp edx, dword [eax + 8]
jne 0x10002910
jmp 0x10002920
xor eax, eax
mov ecx, dword [esi + 0x3c]
test eax, eax
push 4
cmove eax, ecx
cmp eax, ecx
mov ecx, esi
push 0
jne 0x1000296f
push 0
call fcn.10001870
mov eax, dword [edi + 4]
lea ecx, [esi + 0x58]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0x14], 4
push eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], ebx
call fcn.10004870
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
sub ebx, dword [esi + 0x20]
mov eax, dword [eax + 0xc]
add ebx, 0xfffffffc
add eax, ebx
push eax
call fcn.10001870
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp dword [edi + 0x18], 3
jne 0x100029a8
cmp dword [esi + 0xc], 3
jne 0x10002999
push 0x2a
jmp 0x100029bb
mov eax, 0xfffffffc
sub eax, ecx
sub eax, dword [esi + 0x1c]
sub eax, dword [ebp + 0x10]
add ebx, eax
push ebx
mov ecx, esi
call fcn.10001900
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x1b
lea ecx, [ebp - 0x18]
call fcn.10001370
push 0x1001d248
mov eax, ecx
push eax
call fcn.10009e68
int3