Function at 0x422b50
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [0x5599f4]
mov esi, ecx
movsd xmm0, qword [0x50fc68]
xor eax, ebp
mov dword [ebp - 0x10], eax
movss xmm1, dword [esi + 8]
movss xmm2, dword [esi + 0x1c]
orpd xmm1, xmm0
orpd xmm2, xmm0
subsd xmm1, xmm0
subsd xmm2, xmm0
cvtsd2ss xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm2
divss xmm1, xmm0
ucomiss xmm1, dword [esi]
jbe 0x422b39
mov ebx, dword [esi + 0x1c]
mov cl, 3
cmp ebx, 0x1fffffff
setb al
cmp ebx, 0x200
jb 0x422ac7
mov ecx, eax
mov eax, dword [esi + 0x14]
shl ebx, cl
lea ecx, [esi + 0xc]
lea edi, [ebx + ebx]
sub eax, dword [esi + 0xc]
sar eax, 2
cmp eax, edi
jae 0x422af3
cmp edi, 0x40000000
jae 0x422b4b
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
push edi
call fcn.0044abe0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi + 4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push edi
call fcn.00422e60
lea eax, [ebx - 1]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
mov eax, dword [esi + 4]
mov edi, dword [eax]
cmp edi, eax
je 0x422b39
mov ebx, dword [eax + 4]
jmp 0x422b25
mov eax, dword [esi + 4]
mov edi, dword [eax]
lea eax, [edi + 8]
mov ecx, esi
push edi
push eax
lea eax, [ebp - 0x18]
push eax
call 0x422b50
cmp edi, ebx
jne 0x422b20
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d4bc8
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004c9ba0
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov esi, dword [ebp + 0xc]
mov ebx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
mov dword [ebp - 0x10], ecx
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [esi + 2]
xor edx, eax
imul eax, edx, 0x1000193
movzx edx, byte [esi + 3]
mov esi, edi
xor edx, eax
imul eax, edx, 0x1000193
and eax, dword [ecx + 0x18]
mov edx, dword [ebx + eax*8]
add eax, eax
cmp edx, edi
je 0x422bb2
lea esi, [eax*4]
or esi, 4
mov esi, dword [ebx + esi]
mov esi, dword [esi]
cmp edx, esi
je 0x422bcc
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
nop dword [eax + eax]
mov esi, dword [esi + 4]
cmp ecx, dword [esi + 8]
je 0x422c3f
cmp edx, esi
jne 0x422bc0
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
cmp ecx, edx
je 0x422c0b
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x10]
mov esi, dword [esi + 4]
mov dword [esi], ecx
mov esi, dword [ecx + 4]
mov dword [esi], edx
mov esi, dword [edx + 4]
mov dword [esi], edi
mov edi, dword [ecx + 4]
mov esi, dword [edx + 4]
mov dword [edx + 4], edi
mov edi, dword [ebp + 0x10]
mov edi, dword [edi + 4]
mov dword [ecx + 4], edi
mov edi, dword [ebp + 0x10]
mov dword [edi + 4], esi
mov esi, dword [ebp - 0x10]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov esi, dword [ebx + eax*4]
lea ecx, [ebx + eax*4]
cmp esi, edi
je 0x422c69
cmp esi, edx
je 0x422c7e
or eax, 1
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ecx, dword [ebx + eax*4]
mov ecx, dword [ecx]
cmp ecx, esi
mov dword [ebx + eax*4], ecx
je 0x422c88
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0xc]
lea ecx, [edx + eax*4]
mov eax, dword [edx + eax*4]
mov eax, dword [eax + 4]
jmp 0x422c86
mov eax, dword [ebp + 0x10]
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ecx], eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x10]
dec dword [ecx + 8]
push edx
call fcn.004d4c09
add esp, 4
mov edi, dword [ebp + 8]
xor eax, eax
jmp 0x422c92
mov esi, dword [ebp + 0x10]
shl eax, 2
or eax, 4
mov dword [ecx], esi
mov ecx, dword [ebp - 0x10]
add eax, dword [ecx + 0xc]
mov ecx, eax
jmp 0x422c81
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov eax, esi
mov dword [ecx], eax
mov ecx, dword [ebp - 0x10]
call fcn.00422a60
mov al, 1
mov dword [edi], esi
mov byte [edi + 4], al
mov eax, edi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret 0xc