Function at 0x457fb0
Capabilities:
Hash data using fnv

Disassembly:
sub esp, 0x38
push ebx
push ebp
mov ebp, dword [esp + 0x44]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x24]
shr ecx, 2
cmp eax, ecx
push esi
push edi
jbe 0x4582ef
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + 0x18]
cmp edx, 0x10
lea esi, [ebx + 4]
jb 0x4e9b2d
mov ecx, dword [esi]
mov eax, dword [ebx + 0x14]
lea ebp, [ecx + eax]
test ebp, ebp
mov dword [esp + 0x1c], ebp
je 0x4e9b42
cmp edx, 0x10
jb 0x4e9b34
mov ecx, dword [esi]
cmp ecx, ebp
ja 0x4e9b42
cmp edx, 0x10
jb 0x4e9b3b
mov ecx, dword [esi]
add ecx, eax
cmp ebp, ecx
ja 0x4e9b42
mov eax, dword [ebx + 0x18]
cmp eax, 0x10
jb 0x4e9b4c
mov edi, dword [esi]
test edi, edi
je 0x4e9b5a
cmp eax, 0x10
jb 0x4e9b53
mov ecx, dword [esi]
cmp ecx, edi
ja 0x4e9b5a
cmp eax, 0x10
jb 0x45804b
mov esi, dword [esi]
mov ecx, dword [ebx + 0x14]
add ecx, esi
cmp edi, ecx
ja 0x4e9b5a
mov esi, ebx
mov dword [esp + 0x18], 0x811c9dc5
cmp esi, 0xfffffffe
je 0x458077
test esi, esi
je 0x4e9b64
cmp esi, ebx
jne 0x4e9b64
cmp edi, ebp
je 0x4580f5
cmp esi, 0xfffffffe
mov ebx, edi
je 0x4e9b8a
test esi, esi
je 0x4e9b6e
mov ebp, 0x10
cmp dword [esi + 0x18], ebp
jb 0x4e9b78
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x14]
add edx, eax
cmp edi, edx
jae 0x4e9b80
add edi, 1
cmp esi, 0xfffffffe
je 0x4580d5
test esi, esi
je 0x4e9b94
cmp dword [esi + 0x18], ebp
jb 0x4e9b9e
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
add ecx, eax
cmp ebx, ecx
jae 0x4e9ba6
mov edx, dword [esp + 0x18]
movsx eax, byte [ebx]
imul edx, edx, 0x1000193
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x1c]
xor edx, eax
mov dword [esp + 0x18], edx
jmp 0x458062
mov ecx, dword [esp + 0x18]
push 0x1f31d
push ecx
call fcn.004ac16e
imul eax, eax, 0xb14
imul edx, edx, 0x41a7
add esp, 8
sub edx, eax
js 0x4582d6
mov edi, dword [esp + 0x4c]
mov eax, dword [edi + 0x20]
and edx, eax
mov ebp, edx
cmp dword [edi + 0x24], ebp
jbe 0x4582e1
mov ecx, dword [edi + 0x14]
add edi, 0x10
test ecx, ecx
mov dword [esp + 0x18], ebp
lea esi, [ebp + 1]
je 0x4e9bb0
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jae 0x4e9bb0
mov eax, dword [edi + 4]
mov ebx, dword [eax + esi*8]
mov esi, dword [eax + esi*8 + 4]
mov edi, edi
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4e9bba
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp ebp, eax
jae 0x4e9bba
mov eax, dword [edi + 4]
lea ecx, [ebp*8]
add eax, ecx
test ebx, ebx
mov dword [esp + 0x1c], eax
je 0x4e9bc4
cmp ebx, dword [eax]
jne 0x4e9bc4
cmp esi, dword [eax + 4]
je 0x45821b
test ebx, ebx
je 0x4e9bd2
mov esi, dword [esi + 4]
cmp esi, dword [ebx + 4]
je 0x4e9bdc
cmp dword [esi + 0x20], 0x10
mov eax, dword [esi + 0x1c]
jb 0x4e9bf4
mov ecx, dword [esi + 0xc]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [eax + 0x14]
push ecx
push 0
call fcn.00450d50
test eax, eax
jl 0x458160
cmp esi, dword [ebx + 4]
je 0x4e9bfc
mov ecx, dword [esp + 0x54]
cmp dword [ecx + 0x18], 0x10
mov edx, dword [ecx + 0x14]
lea eax, [esi + 8]
jb 0x4e9c06
add ecx, 4
mov ecx, dword [ecx]
push edx
mov edx, dword [eax + 0x14]
push ecx
push edx
push 0
call fcn.00450d50
test eax, eax
jge 0x4e9c18
cmp esi, dword [ebx + 4]
je 0x4e9c0e
mov esi, dword [esi]
mov eax, dword [esp + 0x54]
mov ecx, dword [esi + 4]
push eax
push ecx
push esi
mov dword [esp + 0x2c], ebx
call fcn.0045e420
mov ecx, dword [esp + 0x4c]
mov ebp, eax
mov eax, dword [ecx + 0xc]
mov edx, 0x7ffffff
sub edx, eax
cmp edx, 1
jb 0x4e9c2a
add eax, 1
mov dword [ecx + 0xc], eax
test ebx, ebx
mov dword [esi + 4], ebp
mov eax, dword [ebp + 4]
mov dword [eax], ebp
je 0x4e9c3a
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
je 0x4e9c44
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4e9c4e
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x18], eax
jae 0x4e9c4e
mov eax, dword [esp + 0x18]
mov ebp, dword [edi + 4]
add eax, eax
add eax, eax
add eax, eax
add ebp, eax
test ebx, ebx
je 0x4e9c58
cmp ebx, dword [ebp]
jne 0x4e9c58
cmp esi, dword [ebp + 4]
je 0x458768
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov byte [eax + 8], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 0xc
add edx, 0x7fffffff
jmp 0x45811b
shr eax, 1
or edx, 0xffffffff
sub edx, eax
add ebp, edx
jmp 0x45812f
mov edx, dword [ebp + 0x14]
test edx, edx
lea esi, [ebp + 0x10]
je 0x4e99bb
mov ecx, dword [esi + 8]
sub ecx, edx
sar ecx, 3
add ecx, 0xffffffff
cmp ecx, eax
jbe 0x45879f
mov ecx, dword [ebp + 0x20]
cmp ecx, eax
jb 0x4587d3
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov ecx, dword [esi + 4]
shr eax, 1
sub edi, eax
sub edi, 1
test ecx, ecx
mov dword [esp + 0x18], edi
je 0x4e99c2
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jae 0x4e99c2
mov esi, dword [esi + 4]
mov edx, dword [esi + edi*8]
mov ebx, dword [esi + edi*8 + 4]
mov dword [esp + 0x20], edx
mov ecx, dword [ebp + 0x14]
test ecx, ecx
lea esi, [ebp + 0x10]
mov dword [esp + 0x24], ebx
je 0x4e99cc
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 3
lea ecx, [edi + 1]
cmp ecx, eax
jae 0x4e99cc
mov ecx, dword [esi + 4]
add edi, 1
test edx, edx
lea esi, [ecx + edi*8]
je 0x4e99da
cmp edx, dword [esi]
jne 0x4e99da
cmp ebx, dword [esi + 4]
je 0x45871c
mov esi, dword [esp + 0x20]
test esi, esi
je 0x4e99e4
cmp ebx, dword [esi + 4]
je 0x4e99ee
mov ecx, dword [ebx + 0x20]
cmp ecx, 0x10
lea edi, [ebx + 8]
jb 0x4e99f8
mov ebp, dword [edi + 4]
mov eax, dword [edi + 0x14]
add ebp, eax
mov dword [esp + 0x1c], ebp
je 0x4e9a07
cmp ecx, 0x10
lea edx, [edi + 4]
jb 0x4e9a00
mov esi, dword [edx]
cmp esi, ebp
ja 0x4e9a07
cmp ecx, 0x10
jb 0x4583ef
mov edx, dword [edx]
add edx, eax
cmp ebp, edx
ja 0x4e9a07
mov eax, dword [edi + 0x18]
cmp eax, 0x10
jb 0x4e9a11
mov esi, dword [edi + 4]
test esi, esi
je 0x4e9a20
cmp eax, 0x10
lea ecx, [edi + 4]
jb 0x4e9a19
mov edx, dword [ecx]
cmp edx, esi
ja 0x4e9a20
cmp eax, 0x10
jb 0x45842d
mov ecx, dword [ecx]
mov edx, dword [edi + 0x14]
add edx, ecx
cmp esi, edx
ja 0x4e9a20
mov dword [esp + 0x14], 0x811c9dc5
cmp edi, 0xfffffffe
je 0x45845a
test edi, edi
je 0x4e9a2a
lea eax, [ebx + 8]
cmp edi, eax
jne 0x4e9a2a
cmp esi, ebp
je 0x4584da
cmp edi, 0xfffffffe
mov ebp, edi
mov ebx, esi
je 0x4e9a4b
test edi, edi
je 0x4e9a34
mov ecx, 0x10
cmp dword [edi + 0x18], ecx
jb 0x4e9a3e
mov eax, dword [edi + 4]
mov edx, dword [edi + 0x14]
add edx, eax
cmp esi, edx
jae 0x4e9a46
add esi, 1
cmp ebp, 0xfffffffe
je 0x4584ba
test ebp, ebp
je 0x4e9a55
cmp dword [ebp + 0x18], ecx
jb 0x4e9a64
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x14]
add ecx, eax
cmp ebx, ecx
jae 0x4e9a6c
mov edx, dword [esp + 0x14]
movsx eax, byte [ebx]
imul edx, edx, 0x1000193
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
xor edx, eax
mov dword [esp + 0x14], edx
jmp 0x458442
mov ecx, dword [esp + 0x14]
push 0x1f31d
push ecx
call fcn.004ac16e
imul eax, eax, 0xb14
imul edx, edx, 0x41a7
add esp, 8
sub edx, eax
js 0x4586c5
mov edi, dword [esp + 0x4c]
and edx, dword [edi + 0x20]
cmp edx, dword [esp + 0x18]
je 0x4586a7
mov eax, dword [esp + 0x20]
cmp ebx, dword [eax + 4]
mov ecx, dword [edi + 8]
lea esi, [edi + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
je 0x4e9a80
cmp dword [esp + 0x28], esi
mov ebp, dword [ebx]
jne 0x4e9a8a
cmp ebp, dword [esp + 0x34]
je 0x45860c
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
lea ebx, [ebx]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x4e9a94
mov eax, dword [edi + 0x18]
sub eax, ecx
sar eax, 3
cmp edx, eax
jae 0x4e9a94
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
mov edi, dword [eax + 0x14]
lea ecx, [edx*8]
add edi, ecx
mov ecx, dword [esp + 0x20]
cmp ecx, dword [edi]
jne 0x4e9a9e
cmp ebx, dword [edi + 4]
je 0x4586d0
cmp esi, esi
mov edi, dword [esi + 4]
jne 0x4e9ac2
mov edx, dword [ebx + 4]
mov dword [edx], ebp
mov ecx, dword [ebp + 4]
mov dword [ecx], edi
mov edx, dword [edi + 4]
mov dword [edx], ebx
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 4]
mov dword [edi + 4], edx
mov edx, dword [ebx + 4]
mov dword [ebp + 4], edx
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 4]
mov ebx, dword [ecx + 4]
cmp ebx, ecx
je 0x4e9ad5
mov ecx, dword [esi + 4]
mov edi, dword [eax + 0x24]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x14]
add edi, 1
test ecx, ecx
mov dword [esp + 0x20], esi
je 0x4e9ae3
mov edx, dword [eax + 0x18]
sub edx, ecx
sar edx, 3
cmp edi, edx
jae 0x4e9ae3
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x3c]
mov dword [eax + edi*8], esi
mov dword [eax + edi*8 + 4], edx
mov edi, dword [esp + 0x4c]
mov edi, dword [edi + 0x24]
cmp dword [esp + 0x18], edi
jae 0x45867b
mov dword [esp + 0x14], edi
lea esp, [esp]
mov eax, dword [esi + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4e9af1
mov eax, dword [eax + 0x18]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x14], eax
jae 0x4e9af1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov edi, dword [edx + 0x14]
lea eax, [ecx*8]
add edi, eax
mov eax, dword [edi]
test eax, eax
je 0x4e9afb
cmp eax, esi
jne 0x4e9afb
mov eax, dword [esp + 0x44]
cmp dword [edi + 4], eax
je 0x458729
mov eax, dword [esp + 0x28]
cmp eax, esi
mov edi, dword [esi + 4]
jne 0x4e9b1f
cmp ebp, edi
je 0x45871c
mov edi, dword [esp + 0x18]
mov ebx, ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
mov edx, eax
jmp 0x458355
mov edx, dword [esp + 0x20]
cmp ebx, dword [edx + 4]
je 0x4e9a76
mov ebx, dword [ebx]
mov edx, dword [esp + 0x20]
mov ebp, edi
mov edi, dword [esp + 0x18]
jmp 0x458355
add edx, 0x7fffffff
jmp 0x458500
mov edi, dword [eax + 0x14]
test edi, edi
je 0x4e9ab0
mov ecx, dword [eax + 0x18]
sub ecx, edi
sar ecx, 3
cmp edx, ecx
jae 0x4e9ab0
mov ecx, dword [eax + 0x14]
mov edi, dword [esp + 0x28]
add edx, edx
add edx, edx
add edx, edx
cmp dword [esp + 0x14], 0
mov dword [edx + ecx], edi
mov dword [edx + ecx + 4], ebp
je 0x458594
sub dword [esp + 0x14], 1
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
jmp 0x458550
mov eax, dword [esp + 0x4c]
add dword [eax + 0x24], 1
jmp 0x457fcc
mov edi, dword [edx + 0x14]
test edi, edi
je 0x4e9b0d
mov eax, dword [edx + 0x18]
sub eax, edi
sar eax, 3
cmp ecx, eax
jae 0x4e9b0d
mov edx, dword [edx + 0x14]
mov eax, dword [esp + 0x20]
mov dword [edx + ecx*8], eax
mov dword [edx + ecx*8 + 4], ebx
sub ecx, 1
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
jb 0x458620
jmp 0x45867b
mov eax, edi
call fcn.0048c940
mov ebp, dword [esp + 0x18]
cmp ebp, eax
jae 0x4e9c62
test ebp, ebp
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [eax + ebp*8], edx
mov dword [eax + ebp*8 + 4], ecx
je 0x4582b7
sub dword [esp + 0x18], 1
jmp 0x458271
mov eax, esi
call fcn.0048c940
lea edx, [eax + eax - 3]
lea ecx, [ebp + 4]
lea eax, [esp + 0x28]
mov dword [ebp + 0x20], edx
call fcn.00409500
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edi, dword [ebp + 0x20]
push eax
push ecx
add edi, 2
call fcn.0048a510
jmp 0x45831b
lea edx, [ecx + ecx + 1]
mov dword [ebp + 0x20], edx
jmp 0x45831b
xor ecx, ecx
jmp 0x458305
call fcn.004a9ee6
jmp 0x458347
call fcn.004a9ee6
mov edx, dword [esp + 0x20]
jmp 0x45837a
call fcn.004a9ee6
jmp 0x458393
call fcn.004a9ee6
jmp 0x4583a8
call fcn.004a9ee6
jmp 0x4583b1
lea ebp, [edi + 4]
jmp 0x4583c3
mov esi, edx
jmp 0x4583e0
call fcn.004a9ee6
jmp 0x4583f9
lea esi, [edi + 4]
jmp 0x458408
mov edx, ecx
jmp 0x45841e
call fcn.004a9ee6
jmp 0x45843a
call fcn.004a9ee6
jmp 0x45845a
call fcn.004a9ee6
jmp 0x458473
lea eax, [edi + 4]
jmp 0x458484
call fcn.004a9ee6
mov ecx, 0x10
jmp 0x458491
call fcn.004a9ee6
mov ecx, 0x10
jmp 0x4584a1
lea eax, [ebp + 4]
jmp 0x4584ad
call fcn.004a9ee6
jmp 0x4584ba
call fcn.004a9ee6
jmp 0x4586b4
call fcn.004a9ee6
jmp 0x45852c
call fcn.004a9ee6
jmp 0x458538
call fcn.004a9ee6
jmp 0x45856b
call fcn.004a9ee6
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
jmp 0x45858b
call fcn.004a9ee6
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
jmp 0x4586eb
push 0
push 0
push esi
call fcn.0051fc94
mov eax, dword [esp + 0x4c]
jmp 0x45859f
call fcn.004a9ee6
mov eax, dword [esp + 0x4c]
jmp 0x4585ce
call fcn.004a9ee6
mov eax, dword [esp + 0x4c]
jmp 0x4585fa
call fcn.004a9ee6
jmp 0x458648
call fcn.004a9ee6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
jmp 0x45866e
call fcn.004a9ee6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
jmp 0x458744
call fcn.004a9ee6
mov eax, dword [esp + 0x28]
jmp 0x45868a
mov ecx, esi
jmp 0x457fe1
mov ecx, esi
jmp 0x457ffe
mov ecx, esi
jmp 0x458011
call fcn.004a9ee6
jmp 0x45801b
mov edi, esi
jmp 0x458029
mov ecx, esi
jmp 0x45803c
call fcn.004a9ee6
jmp 0x458058
call fcn.004a9ee6
jmp 0x458077
call fcn.004a9ee6
jmp 0x45808e
lea eax, [esi + 4]
jmp 0x45809f
call fcn.004a9ee6
jmp 0x4580ac
mov ebp, 0x10
jmp 0x4580ac
call fcn.004a9ee6
jmp 0x4580bc
lea eax, [esi + 4]
jmp 0x4580c8
call fcn.004a9ee6
jmp 0x4580d5
call fcn.004a9ee6
jmp 0x458154
call fcn.004a9ee6
jmp 0x45817b
call fcn.004a9ee6
mov eax, dword [esp + 0x1c]
jmp 0x45819b
call fcn.004a9ee6
jmp 0x4581a8
call fcn.004a9ee6
cmp esi, dword [ebx + 4]
jne 0x4581b4
call fcn.004a9ee6
jmp 0x4581b4
lea ecx, [esi + 0xc]
jmp 0x4581c4
call fcn.004a9ee6
jmp 0x4581e2
add ecx, 4
jmp 0x4581fb
call fcn.004a9ee6
jmp 0x458219
mov eax, dword [esp + 0x50]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov byte [eax + 8], 0
jmp 0x4582cc
push 1
push 0
push 0
call fcn.0051fc94
jmp 0x45824d
call fcn.004a9ee6
jmp 0x45825d
call fcn.004a9ee6
jmp 0x458271
call fcn.004a9ee6
jmp 0x45828e
call fcn.004a9ee6
jmp 0x4582ae
call fcn.004a9ee6
jmp 0x45877b