Function at 0x491330
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51092e
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 0x49140c
mov eax, dword [edi]
lea ecx, [ebp - 0x50]
lea eax, [eax + esi*4]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00490f80
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 0x4913e0
lea eax, [ecx - 4]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f80
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.00490f80
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov edx, dword [edi]
jmp 0x491442
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 0x4916bd
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 0x49179c
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 0x491510
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.0045c060
cmp dword [eax + 4], 0
je 0x491500
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f80
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax]
cmp dword [eax + 0xc], ecx
jne 0x491507
add edi, 4
cmp edi, esi
jne 0x491491
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 0x49169d
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.00490f80
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 0x491667
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 0x49164c
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.0045c060
cmp dword [eax + 4], 0
je 0x49164c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f80
mov ecx, dword [ebp - 0x24]
mov eax, dword [eax]
cmp dword [eax + 0xc], ecx
je 0x49164c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x8c]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f80
mov eax, dword [eax]
mov esi, dword [eax + 0x10]
cmp esi, edi
je 0x49164a
cmp edi, esi
jbe 0x491623
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.00490f80
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
cmp esi, edi
jb 0x491600
cmp edi, esi
jae 0x491646
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.00490f80
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
cmp edi, esi
jb 0x491625
cmp edi, esi
jne 0x4915fc
mov edi, esi
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x2c]
jne 0x491551
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.00490f80
mov eax, dword [eax]
cmp dword [eax + 0xc], esi
je 0x49169d
lea eax, [edi - 4]
push eax
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x50]
call fcn.00490f80
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 0x491460
mov cl, byte [ebp - 0x11]
test cl, cl
jne 0x491440
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 0x49174e
jmp 0x4916f0
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 0x491733
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 0x491748
lea ecx, [ebp - 0x58]
push ecx
push eax
mov ecx, edx
call fcn.0046a1a0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
mov esi, dword [esi]
cmp esi, edi
jne 0x4916f0
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.00490e80
add esp, 0x10
lea ecx, [ebp - 0x50]
call fcn.0045cbb0
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x491789
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