Function at 0x4f6540
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [ecx + 0x40]
push ebx
push esi
push edi
push ecx
add eax, 0x28e0
mov dword [ebp - 4], ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.004f6960
push 0xc
mov dword [ebp - 0x30], 0
call fcn.005ab82c
add esp, 4
lea ecx, [ebp - 0x2c]
mov dword [eax], eax
mov dword [eax + 4], eax
push eax
push 0x10
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x38], 0x3f800000
call fcn.004299f0
mov edi, dword [ebp - 0x54]
mov esi, dword [edi]
cmp esi, edi
je 0x4f65d8
mov eax, dword [esi + 0x20]
lea ecx, [esi + 0x20]
test eax, eax
je 0x4f65d2
cmp byte [eax + 8], 0
jne 0x4f65d2
push ecx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x38]
call fcn.004e7120
mov esi, dword [esi]
cmp esi, edi
jne 0x4f65b5
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x34]
mov edi, dword [ecx + 4]
mov dword [ebp - 0xc], edi
mov esi, dword [edi]
cmp esi, edi
je 0x4f6703
nop
mov edi, 0x74
mov eax, dword [esi + 0x20]
mov edx, dword [edi + eax]
mov dword [ebp - 8], edx
test edx, edx
je 0x4f66e6
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
lea ecx, [ebp - 0x38]
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004301e0
mov ecx, dword [eax + 4]
test ecx, ecx
mov eax, ebx
cmovne eax, ecx
cmp eax, ebx
je 0x4f66e6
movzx ecx, byte [eax + 8]
xor ecx, 0x811c9dc5
imul edx, ecx, 0x1000193
movzx ecx, byte [eax + 9]
xor edx, ecx
movzx ecx, byte [eax + 0xa]
imul edx, edx, 0x1000193
xor edx, ecx
movzx ecx, byte [eax + 0xb]
imul edx, edx, 0x1000193
xor edx, ecx
imul ecx, edx, 0x1000193
mov edx, dword [ebp - 0x20]
and edx, ecx
mov ecx, dword [ebp - 0x2c]
cmp dword [ecx + edx*8 + 4], eax
jne 0x4f66bb
cmp dword [ecx + edx*8], eax
jne 0x4f66b2
mov dword [ecx + edx*8], ebx
mov dword [ecx + edx*8 + 4], ebx
jmp 0x4f66c8
mov ebx, dword [eax + 4]
mov dword [ecx + edx*8 + 4], ebx
jmp 0x4f66c8
cmp dword [ecx + edx*8], eax
jne 0x4f66c8
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov dword [ebx + edx*8], ecx
mov edx, dword [eax]
dec dword [ebp - 0x30]
mov ecx, dword [eax + 4]
push 0xc
push eax
mov dword [ecx], edx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
call fcn.005ab85c
mov ebx, dword [ebp - 0x34]
add esp, 8
add edi, 4
cmp edi, 0x9c
jl 0x4f65f5
mov esi, dword [esi]
cmp esi, dword [ebp - 0xc]
jne 0x4f65f0
mov ecx, dword [ebp - 4]
mov esi, dword [ebx]
cmp esi, ebx
je 0x4f6740
nop dword [eax]
mov eax, dword [esi + 8]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 8], eax
add ecx, 0x28e0
push 0
lea eax, [ebp - 8]
push eax
call fcn.004f40e0
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x4f6737
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [esi]
mov ecx, dword [ebp - 4]
cmp esi, ebx
jne 0x4f6710
lea ecx, [ebp - 0x38]
call fcn.00435d60
lea ecx, [ebp - 0x4c]
call fcn.0040aea0
mov edx, dword [ebp - 0x54]
call fcn.0042b120
push 0x24
push dword [ebp - 0x54]
call fcn.005ab85c
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret