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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1007d960
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ebx, dword [esi + 0x1b88]
test ebx, ebx
je 0x1007493f
mov eax, dword [esi + 0x1b78]
mov dword [ebp - 0x4c], eax
mov eax, dword [esi + 0x1b84]
add ebx, eax
vbroadcastss xmm0, dword [0x100f550c]
vmovups xmmword [ebp - 0x8c], xmm0
jmp 0x100746d6
mov ecx, dword [0x1012d370]
mov eax, 0xf
sub eax, dword [ecx + 0x4d30]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, dword [0x1012d320]
vmovss xmm1, dword [edx + 0x24]
vmovss dword [ebp - 0x28], xmm1
add eax, dword [ecx + 0x188]
vcvtsi2ss xmm1, xmm4, eax
vmulss xmm0, xmm0, xmm1
vmovss dword [ebp - 0x24], xmm0
mov ecx, dword [ecx + 0x12c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], 0xffffffff
call eax
fstp dword [ebp - 0x50]
vmovss xmm0, dword [ebp - 0x24]
vsubss xmm0, xmm0, dword [ebp - 0x50]
vcvttps2dq xmm0, xmm0
vcvtdq2ps xmm0, xmm0
vmovss xmm1, dword [ebp - 0x28]
vucomiss xmm1, xmm0
jae 0x1007495c
nop
mov eax, dword [esi + 0x1b84]
cmp ebx, eax
je 0x1007493f
dec ebx
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov ecx, ebx
shr ecx, 1
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
and eax, ecx
mov ecx, ebx
and ecx, 1
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], eax
mov eax, dword [eax + ecx*8]
cmp byte [eax], 0
jne 0x100746d0
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x28], eax
vmovss xmm0, dword [eax + 0x24]
vmovss dword [ebp - 0x24], xmm0
mov esi, dword [0x1012d320]
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], 0xffffffff
call eax
fstp dword [ebp - 0x54]
vmovss xmm2, dword [ebp - 0x54]
vmovss xmm0, dword [esi + 0x17c]
vmovss xmm1, dword [esi + 0x180]
vmovss xmm3, dword [esi + 0x184]
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x1012d4a4]
test al, 1
je 0x100747f1
mov ebx, dword [0x1012d4a0]
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 [ebx + 4]
mov eax, dword [eax + ecx]
mov ecx, dword [0x1012d328]
mov ecx, dword [ecx + 0x24]
mov edx, ecx
sar edx, 0x1f
andn ecx, edx, ecx
sub eax, ecx
vcvtsi2ss xmm2, xmm4, eax
mov eax, dword [0x1012d364]
vmovss xmm0, dword [eax + 0x20]
vmulss xmm2, xmm0, xmm2
vsubss xmm2, xmm2, dword [ebp - 0x24]
vsubss xmm1, xmm1, xmm2
vandps xmm1, xmm1, xmmword [ebp - 0x8c]
vucomiss xmm1, dword [0x100f5630]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x28]
ja 0x100746d0
mov eax, dword [0x1012d32c]
cmp byte [eax + 0x40], 0
jne 0x1007465b
xor eax, eax
jmp 0x10074673
vmovss dword [ebp - 0x2c], xmm3
vmovss dword [ebp - 0x30], xmm1
vmovss dword [ebp - 0x34], xmm0
mov dword [ebp - 0x38], ecx
vmovups xmmword [ebp - 0x7c], xmm2
or eax, 1
mov dword [0x1012d4a4], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x6c]
push str.CBasePlayer__m_nTickBase
call fcn.100083b0
cmp dword [ebp - 0x58], 0x10
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x20], eax
jb 0x1007483e
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x5c]
test edi, edi
je 0x10074853
cmp edi, 4
jae 0x1007485a
mov eax, 0x811c9dc5
xor ecx, ecx
jmp 0x100748a3
mov eax, 0x811c9dc5
jmp 0x100748c0
mov edx, edi
and edx, 0xfffffffc
mov eax, 0x811c9dc5
xor ecx, ecx
mov ebx, dword [ebp - 0x20]
movzx esi, byte [ebx + ecx]
xor esi, eax
imul eax, esi, 0x1000193
movzx esi, byte [ebx + ecx + 1]
xor esi, eax
imul eax, esi, 0x1000193
movzx esi, byte [ebx + ecx + 2]
xor esi, eax
imul eax, esi, 0x1000193
movzx esi, byte [ebx + ecx + 3]
xor esi, eax
imul eax, esi, 0x1000193
add ecx, 4
cmp edx, ecx
jne 0x10074866
mov edx, edi
and edx, 3
je 0x100748c0
add ecx, dword [ebp - 0x20]
xor esi, esi
movzx ebx, byte [ecx + esi]
xor ebx, eax
imul eax, ebx, 0x1000193
inc esi
cmp edx, esi
jne 0x100748af
mov edx, dword [ebp - 0x3c]
and eax, dword [edx + 0x18]
mov ecx, dword [edx + 0xc]
mov ebx, dword [ecx + eax*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10074985
add eax, eax
mov esi, dword [ecx + eax*4]
cmp edi, dword [ebx + 0x18]
je 0x100748f0
cmp ebx, esi
je 0x10074985
mov ebx, dword [ebx + 4]
cmp edi, dword [ebx + 0x18]
jne 0x100748e0
cmp dword [ebx + 0x1c], 0x10
jb 0x100748fb
mov eax, dword [ebx + 8]
jmp 0x100748fe
lea eax, [ebx + 8]
push edi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x100748e0
add ebx, 0x20
lea ecx, [ebp - 0x6c]
call fcn.100029d0
mov dword [0x1012d4a0], ebx
mov edi, dword [ebp + 8]
vmovups xmm2, xmmword [ebp - 0x7c]
mov ecx, dword [ebp - 0x38]
vmovss xmm0, dword [ebp - 0x34]
vmovss xmm1, dword [ebp - 0x30]
vmovss xmm3, dword [ebp - 0x2c]
jmp 0x1007476b
xor eax, eax
mov byte [edi + 0xc], al
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, edi
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov eax, dword [edx + ecx*8 + 4]
test eax, eax
je 0x10074974
lock inc dword [eax + 4]
mov eax, dword [edx + ecx*8 + 4]
jmp 0x10074976
xor eax, eax
mov ecx, dword [edx + ecx*8]
mov dword [edi], esi
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov al, 1
jmp 0x10074941
mov dword [ebp - 0x10], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x6c]
call fcn.100029d0
add esp, 0xc
pop ebp
ret