Function at 0x418470
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50b885
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x5cfc24]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x50], ebx
mov ecx, dword [ebx]
test ecx, ecx
je 0x41868f
mov eax, dword [ebx + 4]
test eax, eax
je 0x41868f
push eax
call fcn.004b8370
test al, al
je 0x41868f
push dword [ebx + 4]
push dword [ebx]
call fcn.00440a40
mov eax, dword [ebx + 0x2c]
add esp, 8
mov edi, dword [ebx + 0x28]
mov dword [ebp - 0x4c], eax
cmp edi, eax
je 0x41859f
lea esi, [ebx + 8]
mov edx, dword [edi]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x44], edx
imul eax, eax, 0x1000193
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
mov ecx, esi
xor eax, edx
imul eax, eax, 0x1000193
push eax
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00417310
mov esi, dword [eax + 4]
test esi, esi
je 0x418590
mov ecx, dword [ebx + 0x20]
and ecx, dword [ebp - 0x48]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], esi
jne 0x418565
cmp eax, esi
jne 0x41855d
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x41856d
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
jmp 0x41856d
cmp eax, esi
jne 0x41856d
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi]
dec dword [ebx + 0x10]
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea ecx, [esi + 0xc]
call fcn.004178d0
push 0x14
push esi
call fcn.004dded2
add esp, 8
add edi, 4
lea esi, [ebx + 8]
cmp edi, dword [ebp - 0x4c]
jne 0x4184e4
mov eax, dword [ebx + 0x28]
cmp eax, dword [ebx + 0x2c]
je 0x4185aa
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x48], eax
mov edi, dword [eax]
cmp edi, eax
je 0x41867d
nop word [eax + eax]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x4c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x41866f
lea eax, [ebp - 0x38]
mov dword [ebp - 0x54], eax
mov al, byte [esi + 8]
xor ebx, ebx
mov ecx, dword [esi + 0xc]
mov byte [ebp - 0x40], al
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x14], ebx
mov ecx, dword [esi + 0x34]
mov dword [ebp - 4], ebx
test ecx, ecx
je 0x41860a
mov eax, dword [ecx]
lea edx, [ebp - 0x38]
push edx
call dword [eax]
mov ebx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x44], eax
mov al, byte [ebp - 0x40]
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 4], 1
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 8]
cmp ecx, dword [edx]
je 0x418627
mov dword [ebp - 0x3c], 1
jmp 0x418646
test al, al
jne 0x418631
cmp dword [ebp - 0x44], 1
jne 0x418646
test ebx, ebx
je 0x4186ab
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x3c], 2
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x418664
mov edx, dword [ebx]
lea eax, [ebp - 0x38]
cmp ebx, eax
mov ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x4c]
jne 0x4185d6
mov edi, dword [edi]
cmp edi, dword [ebp - 0x48]
jne 0x4185c0
mov ebx, dword [ebp - 0x50]
push dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.004b8370
test al, al
jne 0x4184c3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dde94
mov esp, ebp
pop ebp
ret
call fcn.004dc8bc
int3