Function at 0x46a3e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5108d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x1c], esi
push esi
lea ecx, [ebp - 0x100]
call fcn.0045d360
push eax
lea ecx, [ebp - 0xac]
mov dword [ebp - 4], 0
mov dword [ebp - 0xb0], esi
call fcn.00467950
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [edi + 0x18]
call fcn.004674b0
lea ecx, [ebp - 0xac]
call fcn.00468230
lea ecx, [ebp - 0x100]
mov dword [ebp - 4], 0xffffffff
call fcn.00468230
cmp byte [ebp - 0x28], 0
lea eax, [edi + 0x44]
mov dword [ebp - 0x14], eax
je 0x46a47e
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
mov ecx, eax
call fcn.0046bbb0
jmp 0x46a481
mov dword [ebp - 0x14], eax
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x100]
push esi
mov dword [ebp - 0x1c], esi
call fcn.0045d360
push eax
lea ecx, [ebp - 0xac]
mov dword [ebp - 4], 2
mov dword [ebp - 0xb0], esi
call fcn.00467950
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [edi + 0x18]
call fcn.004674b0
lea ecx, [ebp - 0xac]
call fcn.00468230
lea ecx, [ebp - 0x100]
mov dword [ebp - 4], 0xffffffff
call fcn.00468230
cmp byte [ebp - 0x28], 0
je 0x46a4f6
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0046bbb0
lea eax, [ebp + 8]
push eax
lea ecx, [edi + 0x18]
call fcn.0046bb00
mov esi, eax
lea ecx, [edi + 0x18]
lea eax, [ebp + 0xc]
mov dword [ebp - 0x14], esi
push eax
call fcn.0046bb00
mov ecx, dword [esi + 0x3c]
mov dword [ebp + 8], eax
mov eax, dword [edi + 0x64]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], eax
cmp ecx, dword [esi + 0x40]
je 0x46a532
mov dword [ecx], eax
add dword [esi + 0x3c], 4
jmp 0x46a542
lea eax, [ebp + 0xc]
push eax
push ecx
lea ecx, [esi + 0x38]
call fcn.00401f50
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x48]
lea edx, [eax + 0x44]
cmp ecx, dword [eax + 0x4c]
je 0x46a555
mov dword [ecx], esi
add dword [eax + 0x48], 4
jmp 0x46a561
lea eax, [ebp - 0x20]
push eax
push ecx
mov ecx, edx
call fcn.00401f50
mov ecx, dword [ebp + 8]
mov esi, dword [edi + 0x64]
mov dword [ebp - 0x20], ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ecx + 0x3c]
lea edx, [ecx + 0x38]
cmp eax, dword [ecx + 0x40]
je 0x46a580
mov dword [eax], esi
add dword [ecx + 0x3c], 4
jmp 0x46a58f
lea ecx, [ebp + 0xc]
push ecx
push eax
mov ecx, edx
call fcn.00401f50
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x48]
cmp eax, dword [esi + 0x4c]
je 0x46a59f
mov dword [eax], ecx
add dword [esi + 0x48], 4
jmp 0x46a5af
lea ecx, [ebp - 0x20]
push ecx
push eax
lea ecx, [esi + 0x44]
call fcn.00401f50
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x64]
sub esp, 0xc
mov edx, dword [ebp - 0x14]
or dword [eax + 0x28], 4
mov eax, esp
or dword [edx + 0x28], 8
or dword [ecx + 0x28], 0x20
mov ecx, dword [edi + 0x64]
push edx
push ecx
push 3
lea ecx, [ebp - 0x44]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
call fcn.00462e40
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 4
push eax
mov ecx, edi
call fcn.00468760
mov edx, dword [ebp - 0x40]
mov esi, eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x46a653
mov ecx, dword [ebp - 0x38]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x46a634
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46a98b
push ecx
push edx
call fcn.004e9693
add esp, 8
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
sub esp, 0xc
lea ecx, [ebp - 0x5c]
mov eax, esp
push 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebp + 8]
push eax
push 2
call fcn.00462e40
lea eax, [ebp - 0x5c]
mov dword [ebp - 4], 5
push eax
mov ecx, edi
call fcn.00468760
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x46a6e4
mov ecx, dword [ebp - 0x50]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x46a6c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46a990
push ecx
push edx
call fcn.004e9693
add esp, 8
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp + 0xc], esi
lea ecx, [ebp + 0xc]
lea eax, [ebp + 0x10]
sub esp, 0xc
mov esi, esp
sub eax, ecx
mov dword [ebp - 0x20], eax
sar eax, 2
mov dword [ebp - 0x24], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x46a73e
push eax
mov ecx, esi
call fcn.0046ae50
push dword [ebp - 0x20]
mov esi, dword [esi]
lea eax, [ebp + 0xc]
push eax
push esi
call fcn.004eb010
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov ecx, dword [ebp - 0x24]
lea eax, [esi + eax*4]
mov dword [ecx + 4], eax
mov esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.004634a0
mov dword [ebp + 0xc], esi
lea ecx, [ebp + 0xc]
lea eax, [ebp + 0x10]
sub esp, 0xc
mov esi, esp
sub eax, ecx
mov dword [ebp - 0x10], eax
sar eax, 2
mov dword [ebp - 0x20], esi
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [ebp - 0x24], eax
test eax, eax
je 0x46a7a2
push eax
mov ecx, esi
call fcn.0046ae50
push dword [ebp - 0x10]
mov esi, dword [esi]
lea eax, [ebp + 0xc]
push eax
push esi
call fcn.004eb010
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x20]
lea eax, [esi + eax*4]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x28]
call fcn.004634a0
mov eax, dword [ebp - 0x14]
lea ecx, [edi + 0x1a8]
mov esi, dword [edi + 0x64]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.004684d0
mov edx, dword [ebp + 8]
mov dword [eax], esi
lea esi, [edi + 0x1c8]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x14], esi
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov dword [ebp + 0xc], edx
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, esi
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0045db70
mov eax, dword [eax + 4]
test eax, eax
jne 0x46a828
mov eax, dword [esi + 4]
lea esi, [edi + 0x64]
mov ecx, dword [ebp - 0x14]
cmp eax, dword [edi + 0x1cc]
jne 0x46a93b
mov eax, dword [esi]
lea edi, [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00468610
mov esi, eax
lea eax, [ebp + 0xc]
sub edi, eax
mov dword [ebp + 8], esi
sar edi, 2
mov dword [ebp - 0x10], edi
mov edx, dword [esi]
mov ecx, dword [esi + 8]
sub ecx, edx
mov dword [ebp - 0x24], edx
sar ecx, 2
cmp edi, ecx
jbe 0x46a8ad
push edi
mov ecx, esi
call fcn.0046af40
mov edi, dword [esi]
lea eax, [ebp + 0xc]
mov esi, dword [ebp - 0x10]
shl esi, 2
push esi
push eax
push edi
call fcn.004eb010
lea eax, [edi + esi]
add esp, 0xc
mov esi, dword [ebp + 8]
mov dword [esi + 4], eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 4]
sub eax, edx
sar eax, 2
mov dword [ebp - 0x10], eax
cmp edi, eax
jbe 0x46a907
lea esi, [eax*4]
push esi
lea eax, [ebp + 0xc]
push eax
push edx
call fcn.004eb010
sub edi, dword [ebp - 0x10]
lea eax, [ebp + 0xc]
add eax, esi
shl edi, 2
mov esi, dword [ebp + 8]
push edi
push eax
mov esi, dword [esi + 4]
push esi
call fcn.004eb010
mov ecx, dword [ebp + 8]
lea eax, [esi + edi]
add esp, 0x18
mov dword [ecx + 4], eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
lea esi, [edi*4]
push esi
lea eax, [ebp + 0xc]
push eax
push edx
call fcn.004eb010
mov ecx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [ebp - 0x24]
add eax, esi
mov dword [ecx + 4], eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00468610
mov edx, dword [eax + 4]
cmp edx, dword [eax + 8]
je 0x46a96e
mov ecx, dword [esi]
mov dword [edx], ecx
add dword [eax + 4], 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
push esi
push edx
mov ecx, eax
call fcn.00401f50
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
call fcn.004ee89f
call fcn.004ee89f
int3