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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov esi, esp
mov dword [esi + 0xb8], ebp
mov dword [esi + 0xbc], esp
mov dword [esi + 0xc8], 0xffffffff
lea eax, [esi + 0xc0]
mov dword [esi + 0xc4], 0x100b1ca0
mov edx, dword fs:[0]
mov dword [esi + 0xc0], edx
mov dword fs:[0], eax
cmp byte [ecx + 0xd], 0
je 0x100ac564
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132be0]
test al, 1
je 0x100ac5ca
mov ebx, dword [0x10132bdc]
mov eax, dword [ebx + 4]
cmp byte [eax + ecx], 9
je 0x100ac564
mov edi, dword [ebp + 8]
movzx eax, word [edi + 0x30]
test eax, 0x618
jne 0x100ac564
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x1012d48c]
test al, 1
je 0x100ac70c
mov ebx, dword [0x1012d488]
mov eax, dword [ebx + 4]
test byte [eax + ecx], 1
je 0x100ac564
mov eax, dword [0x1012d320]
mov ecx, dword [eax + 0x1c8]
test ecx, ecx
je 0x100ac28f
mov eax, dword [ecx]
mov eax, dword [eax + 0x6e8]
mov dword [esi + 0xc8], 0xffffffff
call eax
fstp dword [esi + 0xa4]
vmovss xmm0, dword [esi + 0xa4]
vmulss xmm2, xmm0, dword [0x100fe418]
jmp 0x100ac297
vmovss xmm2, dword [0x100fe458]
mov eax, dword [0x1012d35c]
mov ecx, dword [eax]
mov eax, dword [0x10132c18]
test al, 1
je 0x100ac77a
mov ebx, dword [0x10132c14]
mov eax, dword [ebx + 4]
vmovss xmm0, dword [eax + ecx]
vmovss xmm1, dword [eax + ecx + 4]
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm0, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vucomiss xmm2, xmm0
jae 0x100ac338
mov ecx, dword [0x1012d35c]
mov edx, dword [ecx]
mov ecx, dword [0x10132c18]
test cl, 1
je 0x100ac8d2
vmovss xmm1, dword [eax + edx + 8]
vmovss xmm2, dword [eax + edx]
vmovss xmm3, dword [eax + edx + 4]
vxorps xmm0, xmm0, xmm0
vucomiss xmm2, xmm0
jne 0x100ac341
jp 0x100ac341
vucomiss xmm3, xmm0
jne 0x100ac341
jp 0x100ac341
mov ebx, edi
vxorps xmm2, xmm2, xmm2
xor eax, eax
vmovaps xmmword [esi + 0x20], xmm0
vucomiss xmm2, xmm1
seta al
vmovss xmm0, dword [eax*4 + 0x100fe0e0]
jmp 0x100ac411
vxorps xmm0, xmm0, xmm0
jmp 0x100ac55f
vbroadcastss xmm0, dword [0x100f54d8]
vmovss dword [esi + 0x30], xmm1
vxorps xmm1, xmm3, xmm0
vxorps xmm0, xmm2, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
vmovaps xmmword [esi + 0x40], xmm2
vmovaps xmmword [esi + 0x70], xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp dword [esi + 0xa0]
vmovss xmm0, dword [0x100fe0b8]
vmulss xmm0, xmm0, dword [esi + 0xa0]
vaddss xmm1, xmm0, dword [0x100fd770]
vcmpltss xmm2, xmm0, dword [0x100f54d4]
vblendvps xmm0, xmm0, xmm1, xmm2
vmovaps xmmword [esi + 0x20], xmm0
vmovaps xmm0, xmmword [esi + 0x70]
vmulss xmm0, xmm0, xmm0
vmovaps xmm1, xmmword [esi + 0x40]
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vmovss xmm1, dword [esi + 0x30]
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp dword [esi + 0x9c]
vmovss xmm0, dword [0x100fe0b8]
vmulss xmm0, xmm0, dword [esi + 0x9c]
vxorps xmm1, xmm1, xmm1
mov ebx, edi
vucomiss xmm1, xmm0
jbe 0x100ac411
vaddss xmm0, xmm0, dword [0x100fd770]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov edi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call edi
fstp dword [esi + 0x98]
vmovaps xmm0, xmmword [esi + 0x20]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call edi
fstp dword [esi + 0x94]
mov dword [esp + 4], 0x43b40000
mov dword [esp], 0
call edi
fstp dword [esi + 0x90]
vmovss xmm0, dword [esi + 0x90]
vmovss dword [esi + 0x20], xmm0
mov edi, ebx
vmovss xmm0, dword [ebx + 0xc]
vmovss xmm1, dword [ebx + 0x10]
vsubss xmm1, xmm1, dword [esi + 0x94]
vmovss dword [esi + 0x40], xmm1
vsubss xmm0, xmm0, dword [esi + 0x98]
vmulss xmm0, xmm0, dword [0x100fe0c4]
vmovd eax, xmm0
vcvtss2sd xmm0, xmm0, xmm0
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x100ac57a
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esi + 0x8c]
vmovss xmm0, dword [esi + 0x8c]
vmovaps xmmword [esi + 0x30], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x40]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x40], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0xb0]
vmovsd xmm0, qword [esi + 0x40]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0xa8]
vmovsd xmm0, qword [esi + 0xa8]
vmovhpd xmm0, xmm0, qword [esi + 0xb0]
vcvtpd2ps xmm1, xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x20]
vmovd eax, xmm0
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x100ac595
vbroadcastss xmm0, dword [esi + 0x30]
vmulps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x100fe45c]
vbroadcastss xmm2, dword [0x100fe3e8]
vcmpltps xmm3, xmm2, xmm0
vmaxps xmm0, xmm1, xmm0
vblendvps xmm0, xmm0, xmm2, xmm3
vmovlps qword [edi + 0x24], xmm0
mov eax, dword [esi + 0xc0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
vmovsd qword [esp], xmm0
vmovsd qword [esi + 0x30], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esi + 0x30]
jmp 0x100ac4ab
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x40], xmm0
vmovsd qword [esp], xmm0
vmovapd xmmword [esi + 0x20], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esi + 0x40]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp st(0)
vmovapd xmm1, xmmword [esi + 0x20]
jmp 0x100ac534
mov dword [esi + 0x1c], ecx
or eax, 1
mov dword [0x10132be0], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x70], eax
mov dword [esi + 0xc8], 0
mov dword [esp], str.m_MoveType
lea ecx, [esi + 0x58]
mov dword [esi + 0x30], ecx
call fcn.100083b0
sub esp, 4
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x6c], 0x10
jb 0x100ac60e
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], eax
cmp dword [esi + 0x20], 0
je 0x100ac62d
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x40], ecx
cmp eax, 4
jae 0x100ac634
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ac67e
mov ecx, 0x811c9dc5
jmp 0x100ac69b
mov edi, dword [esi + 0x20]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x30]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100ac644
cmp dword [esi + 0x40], 0
je 0x100ac69b
add edx, dword [esi + 0x30]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x40], edi
jne 0x100ac689
mov edx, dword [esi + 0x70]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100acb0c
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 0x18]
jne 0x100ac6e6
cmp dword [ebx + 0x1c], 0x10
jb 0x100ac6c9
mov eax, dword [ebx + 8]
jmp 0x100ac6cc
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100ac6f3
cmp ebx, edi
je 0x100acb0c
mov ebx, dword [ebx + 4]
jmp 0x100ac6b6
add ebx, 0x20
lea ecx, [esi + 0x58]
call fcn.100029d0
mov dword [0x10132bdc], ebx
mov ecx, dword [esi + 0x1c]
jmp 0x100ac20e
mov dword [esi + 0x1c], ecx
or eax, 1
mov dword [0x1012d48c], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x70], eax
mov dword [esi + 0xc8], 2
mov dword [esp], str.CBasePlayer__m_fFlags
lea ecx, [esi + 0x58]
mov dword [esi + 0x30], ecx
call fcn.100083b0
sub esp, 4
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x6c], 0x10
jb 0x100ac750
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], eax
cmp dword [esi + 0x20], 0
je 0x100ac7f0
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x40], ecx
cmp eax, 4
jae 0x100ac7f7
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ac841
mov dword [esi + 0x88], ecx
vmovss dword [esi + 0x1c], xmm2
or eax, 1
mov dword [0x10132c18], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x70], eax
mov dword [esi + 0xc8], 4
mov dword [esp], str.CBasePlayer__m_vecVelocity_0_
lea ecx, [esi + 0x58]
mov dword [esi + 0x30], ecx
call fcn.100083b0
sub esp, 4
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x6c], 0x10
jb 0x100ac7c6
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], eax
cmp dword [esi + 0x20], 0
je 0x100ac941
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x40], ecx
cmp eax, 4
jae 0x100ac948
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ac992
mov ecx, 0x811c9dc5
jmp 0x100ac85e
mov edi, dword [esi + 0x20]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x30]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100ac807
cmp dword [esi + 0x40], 0
je 0x100ac85e
add edx, dword [esi + 0x30]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x40], edi
jne 0x100ac84c
mov edx, dword [esi + 0x70]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100acb22
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 0x18]
jne 0x100ac8a9
cmp dword [ebx + 0x1c], 0x10
jb 0x100ac88c
mov eax, dword [ebx + 8]
jmp 0x100ac88f
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100ac8b6
cmp ebx, edi
je 0x100acb22
mov ebx, dword [ebx + 4]
jmp 0x100ac879
add ebx, 0x20
lea ecx, [esi + 0x58]
call fcn.100029d0
mov dword [0x1012d488], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x1c]
jmp 0x100ac247
mov dword [esi + 0x1c], edx
or ecx, 1
mov dword [0x10132c18], ecx
mov eax, dword [0x1012d324]
mov dword [esi + 0x70], eax
mov dword [esi + 0xc8], 6
mov dword [esp], str.CBasePlayer__m_vecVelocity_0_
lea ecx, [esi + 0x58]
mov dword [esi + 0x30], ecx
call fcn.100083b0
sub esp, 4
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x6c], 0x10
jb 0x100ac917
mov eax, dword [esi + 0x58]
mov dword [esi + 0x30], eax
cmp dword [esi + 0x20], 0
je 0x100aca2b
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x40], ecx
cmp eax, 4
jae 0x100aca32
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100aca7c
mov ecx, 0x811c9dc5
jmp 0x100ac9af
mov edi, dword [esi + 0x20]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x30]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100ac958
cmp dword [esi + 0x40], 0
je 0x100ac9af
add edx, dword [esi + 0x30]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x40], edi
jne 0x100ac99d
mov edx, dword [esi + 0x70]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100acb38
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 0x18]
jne 0x100ac9fa
cmp dword [ebx + 0x1c], 0x10
jb 0x100ac9dd
mov eax, dword [ebx + 8]
jmp 0x100ac9e0
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100aca07
cmp ebx, edi
je 0x100acb38
mov ebx, dword [ebx + 4]
jmp 0x100ac9ca
add ebx, 0x20
lea ecx, [esi + 0x58]
call fcn.100029d0
mov dword [0x10132c14], ebx
mov edi, dword [ebp + 8]
vmovss xmm2, dword [esi + 0x1c]
mov ecx, dword [esi + 0x88]
jmp 0x100ac2b1
mov ecx, 0x811c9dc5
jmp 0x100aca99
mov edi, dword [esi + 0x20]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x30]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100aca42
cmp dword [esi + 0x40], 0
je 0x100aca99
add edx, dword [esi + 0x30]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x40], edi
jne 0x100aca87
mov edx, dword [esi + 0x70]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100acb4e
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 0x18]
jne 0x100acae4
cmp dword [ebx + 0x1c], 0x10
jb 0x100acac7
mov eax, dword [ebx + 8]
jmp 0x100acaca
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100acaed
cmp ebx, edi
je 0x100acb4e
mov ebx, dword [ebx + 4]
jmp 0x100acab4
lea edi, [ebx + 0x20]
lea ecx, [esi + 0x58]
call fcn.100029d0
mov dword [0x10132c14], edi
mov eax, dword [ebx + 0x24]
mov edi, dword [ebp + 8]
mov edx, dword [esi + 0x1c]
jmp 0x100ac2f1
mov dword [esi + 0xc8], 1
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0xc8], 3
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0xc8], 5
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0xc8], 7
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0xcc]
mov ebp, dword [esi + 0xb8]
lea ecx, [esi + 0x58]
call fcn.100029d0
add esp, 0x10
pop ebp
ret