Function at 0x457ae0
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
push ebp
push esi
push edi
lea esi, [ebx + 4]
jb 0x4e163d
mov edx, dword [esi]
mov ecx, dword [ebx + 0x14]
lea edi, [ecx + edx]
test edi, edi
mov dword [esp + 0x10], edi
je 0x4e1652
cmp eax, 0x10
jb 0x4e1644
mov edx, dword [esi]
cmp edx, edi
ja 0x4e1652
cmp eax, 0x10
jb 0x4e164b
mov eax, dword [esi]
add ecx, eax
cmp edi, ecx
ja 0x4e1652
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x4e165c
mov edi, dword [esi]
test edi, edi
je 0x4e166a
cmp eax, 0x10
jb 0x4e1663
mov ecx, dword [esi]
cmp ecx, edi
ja 0x4e166a
cmp eax, 0x10
jb 0x457b66
mov esi, dword [esi]
mov eax, dword [ebx + 0x14]
add eax, esi
cmp edi, eax
ja 0x4e166a
mov esi, ebx
mov ebp, 0x811c9dc5
lea ebx, [ebx]
cmp esi, 0xfffffffe
je 0x457b95
test esi, esi
je 0x4e1674
cmp esi, ebx
jne 0x4e1674
cmp edi, dword [esp + 0x10]
je 0x457c07
cmp esi, 0xfffffffe
mov ebx, edi
je 0x4e1695
test esi, esi
je 0x4e167e
mov ecx, 0x10
cmp dword [esi + 0x18], ecx
jb 0x4e1688
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x14]
add edx, eax
cmp edi, edx
jae 0x4e1690
add edi, 1
cmp esi, 0xfffffffe
je 0x457bf5
test esi, esi
je 0x4e169f
cmp dword [esi + 0x18], ecx
jb 0x4e16ae
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp ebx, ecx
jae 0x4e16b6
movsx edx, byte [ebx]
imul ebp, ebp, 0x1000193
xor ebp, edx
mov ebx, esi
jmp 0x457b80
push 0x1f31d
push ebp
call fcn.004ac16e
imul edx, edx, 0x41a7
imul eax, eax, 0xb14
add esp, 8
sub edx, eax
js 0x457d68
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x20]
mov esi, eax
and esi, edx
cmp dword [edi + 0x24], esi
jbe 0x457d73
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4e16c0
mov eax, dword [edi + 0x18]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x4e16c0
mov eax, dword [edi + 0x14]
mov ebp, dword [eax + esi*8]
mov ebx, dword [eax + esi*8 + 4]
add esi, 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], esi
lea ecx, [ecx]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4e16ca
mov eax, dword [edi + 0x18]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x4e16ca
test ebp, ebp
mov edx, dword [edi + 0x14]
lea esi, [edx + esi*8]
je 0x4e16d4
cmp ebp, dword [esi]
jne 0x4e16d4
cmp ebx, dword [esi + 4]
je 0x457d99
test ebp, ebp
je 0x4e16de
cmp ebx, dword [ebp + 4]
je 0x4e16e8
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x14]
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x4e16f2
add eax, 4
mov eax, dword [eax]
mov ecx, dword [ebx + 0x1c]
cmp ecx, edx
jb 0x457cde
mov ecx, edx
cmp dword [ebx + 0x20], esi
jb 0x4e16fa
mov esi, dword [ebx + 0xc]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x457cf7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x457d15
jge 0x457d1a
cmp ebx, dword [ebp + 4]
je 0x4e1702
mov ebx, dword [ebx]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
jmp 0x457c70
cmp dword [ebx + 0x1c], edx
jb 0x457cfd
cmp ebx, dword [ebp + 4]
mov dword [esp + 0x1c], ebx
je 0x4e170c
cmp dword [ebx + 0x20], 0x10
mov eax, dword [ebx + 0x1c]
jb 0x4e1716
mov ebx, dword [ebx + 0xc]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x14]
push ebx
push ecx
push 0
call fcn.00450d50
test eax, eax
jl 0x457d81
lea ecx, [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
add edx, 0x7fffffff
jmp 0x457c29
shr eax, 1
or ecx, 0xffffffff
sub ecx, eax
add esi, ecx
jmp 0x457c3d
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 8]
add eax, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x10]
jmp 0x457d50
mov eax, dword [esp + 0x28]
mov edx, dword [edi + 8]
lea ecx, [edi + 4]
pop edi
pop esi
pop ebp
mov dword [eax + 4], edx
mov dword [eax], ecx
pop ebx
add esp, 0x10
ret 0xc
mov edx, esi
jmp 0x457afc
mov edx, esi
jmp 0x457b19
mov eax, esi
jmp 0x457b2c
call fcn.004a9ee6
jmp 0x457b36
mov edi, esi
jmp 0x457b44
mov ecx, esi
jmp 0x457b57
call fcn.004a9ee6
jmp 0x457b73
call fcn.004a9ee6
jmp 0x457b95
call fcn.004a9ee6
jmp 0x457bae
lea eax, [esi + 4]
jmp 0x457bbf
call fcn.004a9ee6
mov ecx, 0x10
jmp 0x457bcc
call fcn.004a9ee6
mov ecx, 0x10
jmp 0x457bdc
lea eax, [esi + 4]
jmp 0x457be8
call fcn.004a9ee6
jmp 0x457bf5
call fcn.004a9ee6
jmp 0x457c58
call fcn.004a9ee6
jmp 0x457c8b
call fcn.004a9ee6
jmp 0x457ca1
call fcn.004a9ee6
jmp 0x457cb2
call fcn.004a9ee6
jmp 0x457cbb
add eax, 4
jmp 0x457cd5
lea esi, [ebx + 0xc]
jmp 0x457cea
call fcn.004a9ee6
jmp 0x457d06
call fcn.004a9ee6
jmp 0x457d27
add ebx, 0xc
jmp 0x457d37