Function at 0x461790
Capabilities:
Hash data using fnv

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x20
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov ebp, ecx
cmp eax, ebx
jne 0x4617ad
pop ebp
mov eax, ebx
pop ebx
add esp, 0x20
ret 8
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 4]
push esi
push edi
mov edi, eax
mov dword [esp + 0x10], ecx
movzx eax, dl
xor eax, 0x811c9dc5
mov esi, dword [ebp + 0xc]
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [esp + 0x2c], esi
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
and eax, dword [ebp + 0x18]
mov ecx, dword [esi + eax*8]
lea eax, [esi + eax*8]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
lea ebx, [ebx]
mov esi, edi
mov dword [esp + 0x28], edi
mov edi, dword [edi]
mov dword [esp + 0x20], esi
mov esi, dword [esi + 0xc]
test esi, esi
je 0x461854
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x461854
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x461854
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 0x14
push dword [esp + 0x24]
call fcn.004accfd
dec dword [ebp + 8]
add esp, 8
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x28], eax
je 0x461898
cmp edi, ebx
jne 0x461820
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x34]
jne 0x461883
mov ecx, dword [esp + 0x14]
mov dword [ecx], edi
mov eax, dword [esp + 0x10]
mov dword [eax], edi
mov dword [edi + 4], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp eax, dword [esp + 0x34]
jne 0x4618ae
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
jmp 0x4618b2
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], eax
cmp edi, ebx
je 0x461883
lea esp, [esp]
mov edx, dword [edi + 8]
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
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul ecx, eax, 0x1000193
mov eax, dword [ebp + 0x18]
and eax, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax*8]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
mov ebx, edi
mov dword [esp + 0x24], edi
mov edi, dword [edi]
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x461943
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x461943
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x461943
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 0x14
push ebx
call fcn.004accfd
dec dword [ebp + 8]
add esp, 8
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x24], eax
je 0x46197c
mov eax, dword [esp + 0x38]
cmp edi, eax
jne 0x461913
mov ecx, dword [esp + 0x34]
mov dword [ecx], edi
mov ecx, dword [esp + 0x10]
mov dword [ecx], edi
mov dword [edi + 4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
mov dword [ecx], esi
mov dword [ecx + 4], esi
cmp edi, ebx
jne 0x4618c0
mov eax, dword [esp + 0x10]
mov dword [eax], edi
mov dword [edi + 4], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 8