Function at 0x10064700
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x84], eax
mov eax, dword [edx + 0x3378]
test eax, eax
je 0x10064761
mov ecx, dword [edx + 0x3374]
lea ebp, [eax + ecx]
dec ebp
mov eax, ebp
shr eax, 1
mov ecx, dword [edx + 0x336c]
mov edx, dword [edx + 0x3370]
dec edx
and edx, eax
and ebp, 1
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + ebp*8]
cmp dword [eax + 0xc], 0x14
ja 0x10064761
cmp byte [eax], 0
je 0x10064782
mov byte [ebx + 0xc], 0
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.100d7fe0
mov eax, ebx
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret 8
cmp dword [eax + 0x10], 0
jle 0x10064761
mov dword [esp], ecx
vmovss xmm0, dword [eax + 0x20]
vmovss dword [esp + 8], xmm0
mov esi, dword [0x1017f5c0]
mov ecx, dword [esi + 0xdc]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esp + 0x24]
vmovss xmm2, dword [esp + 0x24]
vmovss xmm0, dword [esi + 0xfc]
vmovss xmm1, dword [esi + 0x100]
vmovss xmm3, dword [esi + 0x104]
mov eax, dword [0x1017f608]
mov ecx, dword [eax]
mov eax, dword [0x1017f72c]
test al, 1
je 0x10064cdc
mov edi, dword [0x1017f728]
vaddss xmm0, xmm0, xmm1
vaddss xmm0, xmm0, xmm3
vxorps xmm1, xmm1, xmm1
vmaxss xmm1, xmm1, xmm0
vcmpltss xmm0, xmm2, xmm0
vblendvps xmm1, xmm1, xmm2, xmm0
mov eax, dword [edi + 4]
mov ecx, dword [eax + ecx]
mov eax, dword [0x1017f5c8]
lea edx, [ecx - 0xd]
cmp dword [eax + 0x1c], 0
cmovle edx, ecx
vcvtsi2ss xmm2, xmm4, edx
mov ecx, dword [0x1017f610]
vmovss xmm0, dword [ecx + 0x20]
vmulss xmm2, xmm0, xmm2
vsubss xmm2, xmm2, dword [esp + 8]
vsubss xmm1, xmm1, xmm2
vbroadcastss xmm2, dword [0x1012978c]
vandps xmm1, xmm1, xmm2
vmovss xmm2, dword [0x101298e0]
vucomiss xmm2, xmm1
jbe 0x1006487f
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 0x48], xmm0
mov edx, dword [esp]
mov eax, dword [edx + ebp*8 + 4]
test eax, eax
je 0x10064873
lock inc dword [eax + 4]
mov ecx, dword [esp + 0x44]
mov dword [ebx], ecx
vmovsd xmm1, qword [edx + ebp*8]
jmp 0x1006491a
mov ecx, dword [0x1017f5cc]
cmp byte [ecx + 0x38], 0
mov edx, dword [esp]
je 0x100648a0
mov eax, dword [0x1017f61c]
mov ecx, 0xf
sub ecx, dword [eax + 0x4d28]
jmp 0x100648a9
movzx ecx, byte [eax + 0x1a]
mov eax, dword [0x1017f61c]
add ecx, dword [eax + 0x174]
mov eax, dword [0x1017f5c0]
vmovss xmm2, dword [eax + 0x100]
vaddss xmm2, xmm2, dword [eax + 0x104]
vdivss xmm2, xmm2, xmm0
vaddss xmm2, xmm2, dword [0x10129738]
vcvttss2si eax, xmm2
add eax, ecx
mov ecx, dword [edx + ebp*8]
sub eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 0x10]
mov edi, edx
cdq
idiv esi
mov edx, eax
add eax, 0xffffffeb
cmp eax, 0xffffffeb
ja 0x10064937
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 0x48], xmm0
mov eax, dword [edi + ebp*8 + 4]
test eax, eax
je 0x10064913
lock inc dword [eax + 4]
mov ecx, dword [esp + 0x44]
mov dword [ebx], ecx
vmovsd xmm1, qword [edi + ebp*8]
vmovsd qword [ebx + 4], xmm1
vmovlps qword [esp + 0x48], xmm0
mov byte [ebx + 0xc], 1
lea ecx, [esp + 0x44]
call fcn.10064e50
jmp 0x10064765
vaddss xmm1, xmm1, dword [0x10129874]
vdivss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [0x10129738]
vcvttss2si eax, xmm0
mov edi, edx
cdq
idiv esi
mov edx, edi
cmp eax, edi
cmovl edx, eax
test edx, edx
jle 0x1006484b
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
vmovss xmm0, dword [ecx + 0x20]
vmovss dword [esp + 0x48], xmm0
mov eax, dword [ecx + 8]
mov dword [esp + 0x4c], eax
movzx eax, byte [ecx + 8]
not al
and al, 1
mov byte [esp + 0x50], al
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x5c], eax
vmovsd xmm0, qword [ecx + 0x58]
vmovsd qword [esp + 0x54], xmm0
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x68], eax
vmovsd xmm0, qword [ecx + 0x4c]
vmovsd qword [esp + 0x60], xmm0
mov eax, dword [ecx + 0x6c]
mov dword [esp + 0x74], eax
vmovsd xmm0, qword [ecx + 0x64]
vmovsd qword [esp + 0x6c], xmm0
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x80], eax
vmovsd xmm0, qword [ecx + 0x70]
vmovsd qword [esp + 0x78], xmm0
mov eax, dword [esp]
mov eax, dword [eax + ebp*8]
lea ebx, [esp + 0x44]
mov edi, dword [esp]
jmp 0x100649f7
mov edx, dword [esp + 8]
dec edx
je 0x10064a37
mov dword [esp + 8], edx
cmp dword [eax + 0x10], 0
jle 0x100649f0
xor esi, esi
nop word cs:[eax + eax]
mov eax, dword [0x1017f610]
vmovss xmm0, dword [eax + 0x20]
vaddss xmm0, xmm0, dword [esp + 0x48]
vmovss dword [esp + 0x48], xmm0
push ebx
call fcn.10063860
inc esi
mov eax, dword [edi + ebp*8]
cmp esi, dword [eax + 0x10]
jl 0x10064a10
jmp 0x100649f0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], eax
push 0x9c30
call fcn.100d7f9d
add esp, 4
mov edi, eax
vbroadcastss xmm0, dword [0x10128520]
vmovlps qword [eax + 4], xmm0
mov dword [eax], fcn.10008300
add eax, 0xc
push 0x9c24
mov esi, dword [esp + 4]
push dword [esi + ebp*8]
mov dword [esp + 0x10], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
vmovss xmm0, dword [esp + 0x48]
vmovss dword [edi + 0x2c], xmm0
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x14], eax
lea ecx, [esp + 0x54]
mov eax, dword [ecx + 8]
mov dword [edi + 0x6c], eax
vmovsd xmm0, qword [ecx]
vmovsd qword [edi + 0x64], xmm0
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x60], eax
vmovsd xmm0, qword [ecx + 0xc]
vmovsd qword [edi + 0x58], xmm0
mov eax, dword [esi + ebp*8]
vmovss xmm0, dword [esp + 0x5c]
vsubss xmm0, xmm0, dword [eax + 0x60]
vmovss xmm2, dword [esp + 0x54]
vmovss xmm1, dword [esp + 0x58]
vsubss xmm1, xmm1, dword [eax + 0x5c]
vsubss xmm2, xmm2, dword [eax + 0x58]
mov eax, dword [edi + 0x3360]
test eax, eax
je 0x10064b56
lea ecx, [edi + 0x360]
xor edx, edx
mov esi, 0x3bc
cmp esi, 0x33bc
je 0x10064cd7
vaddss xmm3, xmm2, dword [edi + esi - 0x50]
vmovss dword [edi + esi - 0x50], xmm3
vaddss xmm3, xmm1, dword [edi + esi - 0x40]
vmovss dword [edi + esi - 0x40], xmm3
vaddss xmm3, xmm0, dword [edi + esi - 0x30]
vmovss dword [edi + esi - 0x30], xmm3
mov ebx, edx
or ebx, 1
cmp ebx, eax
jae 0x10064b56
vaddss xmm3, xmm2, dword [edi + esi - 0x20]
vmovss dword [edi + esi - 0x20], xmm3
vaddss xmm3, xmm1, dword [edi + esi - 0x10]
vmovss dword [edi + esi - 0x10], xmm3
vaddss xmm3, xmm0, dword [edi + esi]
vmovss dword [edi + esi], xmm3
add edx, 2
add esi, 0x60
cmp edx, eax
jb 0x10064af1
mov eax, dword [edi + 0x6650]
test eax, eax
je 0x10064bfd
lea ecx, [edi + 0x3650]
xor edx, edx
xor esi, esi
cmp edx, 0x3000
je 0x10064cd7
vaddss xmm3, xmm2, dword [edi + edx + 0x365c]
vmovss dword [edi + edx + 0x365c], xmm3
vaddss xmm3, xmm1, dword [edi + edx + 0x366c]
vmovss dword [edi + edx + 0x366c], xmm3
vaddss xmm3, xmm0, dword [edi + edx + 0x367c]
vmovss dword [edi + edx + 0x367c], xmm3
mov ebx, esi
or ebx, 1
cmp ebx, eax
jae 0x10064bfd
vaddss xmm3, xmm2, dword [edi + edx + 0x368c]
vmovss dword [edi + edx + 0x368c], xmm3
vaddss xmm3, xmm1, dword [edi + edx + 0x369c]
vmovss dword [edi + edx + 0x369c], xmm3
vaddss xmm3, xmm0, dword [edi + edx + 0x36ac]
vmovss dword [edi + edx + 0x36ac], xmm3
add esi, 2
add edx, 0x60
cmp esi, eax
jb 0x10064b6e
mov eax, dword [edi + 0x9940]
test eax, eax
je 0x10064ca6
mov ecx, edi
add ecx, 0x6940
xor edx, edx
xor esi, esi
cmp edx, 0x3000
je 0x10064cd7
vaddss xmm3, xmm2, dword [edi + edx + 0x694c]
vmovss dword [edi + edx + 0x694c], xmm3
vaddss xmm3, xmm1, dword [edi + edx + 0x695c]
vmovss dword [edi + edx + 0x695c], xmm3
vaddss xmm3, xmm0, dword [edi + edx + 0x696c]
vmovss dword [edi + edx + 0x696c], xmm3
mov ebx, esi
or ebx, 1
cmp ebx, eax
jae 0x10064ca6
vaddss xmm3, xmm2, dword [edi + edx + 0x697c]
vmovss dword [edi + edx + 0x697c], xmm3
vaddss xmm3, xmm1, dword [edi + edx + 0x698c]
vmovss dword [edi + edx + 0x698c], xmm3
vaddss xmm3, xmm0, dword [edi + edx + 0x699c]
vmovss dword [edi + edx + 0x699c], xmm3
add esi, 2
add edx, 0x60
cmp esi, eax
jb 0x10064c17
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
mov dword [ebx + 8], edi
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 0x3c], xmm0
mov byte [ebx + 0xc], 1
lea ecx, [esp + 0x38]
jmp 0x1006492d
call fcn.1006b870
vmovss dword [esp + 0x10], xmm3
vmovss dword [esp + 0x14], xmm1
vmovss dword [esp + 0x18], xmm0
mov dword [esp + 0x1c], ecx
vmovups xmmword [esp + 0x28], xmm2
or eax, 1
mov dword [0x1017f72c], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x44]
mov dword [esp + 0xc], ecx
push str.CBasePlayer__m_nTickBase
call fcn.10005ce0
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
cmp dword [esp + 0x58], 0x10
jb 0x10064d32
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
cmp dword [esp + 4], 0
je 0x10064d51
mov eax, dword [esp + 4]
lea ecx, [eax - 1]
and eax, 3
cmp ecx, 3
jae 0x10064d58
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10064da4
mov ecx, 0x811c9dc5
jmp 0x10064dbf
mov edi, dword [esp + 4]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov ebx, dword [esp + 0xc]
movzx esi, byte [ebx + edx]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [ebx + edx + 1]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [ebx + edx + 2]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [ebx + edx + 3]
xor esi, ecx
imul ecx, esi, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10064d6a
test eax, eax
je 0x10064dbf
add edx, dword [esp + 0xc]
xor esi, esi
movzx edi, byte [edx + esi]
xor edi, ecx
imul ecx, edi, 0x1000193
inc esi
cmp eax, esi
jne 0x10064dae
mov edx, dword [esp + 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10064e46
add ecx, ecx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esp + 4]
cmp eax, dword [edi + 0x18]
jne 0x10064e03
cmp dword [edi + 0x1c], 0x10
jb 0x10064deb
mov eax, dword [edi + 8]
jmp 0x10064dee
lea eax, [edi + 8]
push dword [esp + 4]
push eax
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10064e0c
cmp edi, ebx
je 0x10064e46
mov edi, dword [edi + 4]
jmp 0x10064dd7
add edi, 0x20
lea ecx, [esp + 0x44]
call fcn.100026e0
mov dword [0x1017f728], edi
mov ebx, dword [esp + 0x9c]
vmovups xmm2, xmmword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
vmovss xmm0, dword [esp + 0x18]
vmovss xmm1, dword [esp + 0x14]
vmovss xmm3, dword [esp + 0x10]
jmp 0x100647e3
push 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__