Function at 0x491320
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50fcfe
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push esi
push edi
mov dword [ebp - 0x5c], 0
mov edi, dword [ebp + 0xc]
push 0x14
mov dword [ebp - 4], 1
mov dword [ebp - 0x50], 0
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 2
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
call fcn.004e5c9b
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
push eax
push 0x10
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 3
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x34], 8
mov dword [ebp - 0x50], 0x3f800000
call fcn.00401830
mov ecx, dword [edi + 4]
xor esi, esi
mov eax, ecx
mov byte [ebp - 4], 4
sub eax, dword [edi]
sar eax, 2
test eax, eax
je 0x4913fc
mov eax, dword [edi]
lea ecx, [ebp - 0x50]
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00490f70
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], esi
inc esi
mov ecx, dword [edi + 4]
mov eax, ecx
sub eax, dword [edi]
sar eax, 2
cmp esi, eax
jb 0x4913d0
lea eax, [ecx - 4]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
lea ecx, [ebp - 0x50]
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, dword [edi + 4]
sub eax, 4
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00490f70
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov edx, dword [edi]
jmp 0x491432
mov edi, eax
mov edi, dword [edi + 4]
xor cl, cl
add edi, 0xfffffffc
mov byte [ebp - 0x11], cl
mov dword [ebp - 0x18], edi
cmp edi, edx
je 0x4916ad
mov ecx, edi
lea ebx, [ebx]
mov eax, dword [ecx - 4]
mov ecx, dword [ebp + 0x34]
mov dword [ebp - 0x28], eax
test ecx, ecx
je 0x49178c
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
mov eax, dword [eax + 8]
call eax
mov dword [ebp - 0x1c], eax
mov esi, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
cmp eax, esi
je 0x491500
mov edi, eax
mov edx, dword [edi]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], 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
lea ecx, [ebp - 0x50]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.0045c130
cmp dword [eax + 4], 0
je 0x4914f0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax]
cmp dword [eax + 0xc], ecx
jne 0x4914f7
add edi, 4
cmp edi, esi
jne 0x491481
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
cmp eax, dword [ecx + 4]
je 0x49168d
mov eax, dword [eax]
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00490f70
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], esi
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
je 0x491657
mov edi, esi
mov eax, dword [eax]
mov ecx, eax
shr ecx, 0x10
mov edx, eax
mov dword [ebp - 0x54], ecx
mov ecx, eax
shr ecx, 8
shr edx, 0x18
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x20], eax
je 0x49163c
movzx eax, al
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, dword [ebp - 0x28]
movzx eax, al
xor ecx, eax
mov eax, dword [ebp - 0x54]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x50]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0045c130
cmp dword [eax + 4], 0
je 0x49163c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax]
cmp dword [eax + 0xc], ecx
je 0x49163c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
cmp esi, edi
je 0x49163a
cmp edi, esi
jbe 0x491613
mov edi, edi
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x50]
mov eax, dword [eax]
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00490f70
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
cmp esi, edi
jb 0x4915f0
cmp edi, esi
jae 0x491636
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x50]
mov eax, dword [eax]
lea eax, [eax + edi*4]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.00490f70
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
cmp edi, esi
jb 0x491615
cmp edi, esi
jne 0x4915ec
mov edi, esi
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x2c]
jne 0x491541
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
lea eax, [edi - 4]
push eax
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
mov eax, dword [eax]
cmp dword [eax + 0xc], esi
je 0x49168d
lea eax, [edi - 4]
push eax
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f70
mov byte [ebp - 0x11], 1
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov eax, dword [ebp + 0xc]
add edi, 0xfffffffc
mov ecx, edi
mov dword [ebp - 0x18], edi
mov edx, dword [eax]
cmp ecx, edx
jne 0x491450
mov cl, byte [ebp - 0x11]
test cl, cl
jne 0x491430
mov edx, dword [ebp + 8]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x18], 0
mov esi, dword [edi]
cmp esi, edi
je 0x49173e
jmp 0x4916e0
mov ecx, dword [esi + 8]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [esi + 0xc]
cmp ecx, dword [ebp - 0x24]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0xc]
cmove ecx, dword [esi + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x54], eax
mov eax, dword [edx + 4]
cmp eax, dword [edx + 8]
je 0x491723
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 4], ecx
add dword [edx + 4], 8
mov ecx, dword [edx + 4]
mov dword [ebp - 0x18], ecx
jmp 0x491738
lea ecx, [ebp - 0x58]
push ecx
push eax
mov ecx, edx
call fcn.0046a250
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
mov esi, dword [esi]
cmp esi, edi
jne 0x4916e0
mov ecx, dword [edx]
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x18]
push eax
mov eax, edx
sub eax, ecx
sar eax, 3
push eax
push edx
push ecx
call fcn.00490e70
add esp, 0x10
lea ecx, [ebp - 0x50]
call fcn.0045cc80
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x491779
mov esi, dword [ecx]
lea eax, [ebp + 0x10]
cmp ecx, eax
setne dl
movzx edx, dl
push edx
call dword [esi + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
call fcn.004e34d4
int3