Function at 0x1008c730
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, 0x210
mov esi, esp
mov dword [esi + 0x1f8], ebp
mov dword [esi + 0x1fc], esp
mov dword [esi + 0x208], 0xffffffff
lea eax, [esi + 0x200]
mov dword [esi + 0x204], 0x1008ff90
mov edx, dword fs:[0]
mov dword [esi + 0x200], edx
mov dword fs:[0], eax
mov dword [esi + 0xc0], 0
cmp dword [ecx + 0x40], 0
je 0x1008d94f
mov dword [esi + 0xac], ecx
mov ecx, dword [0x1012d368]
mov dword [esi + 0x16c], 0
vxorps xmm0, xmm0, xmm0
vmovlps qword [esi + 0x164], xmm0
mov eax, dword [ecx]
lea edx, [esi + 0x164]
mov dword [esp], edx
call dword [eax + 0x48]
sub esp, 4
vmovss xmm0, dword [0x100f5478]
vmovaps xmmword [esi + 0xb0], xmm0
mov edi, 1
jmp 0x1008c8e1
vmovss xmm0, dword [esi + 0x20]
vsubss xmm0, xmm0, dword [esi + 0x2c]
vmovss xmm1, dword [esi + 0x170]
vsubss xmm1, xmm1, dword [esi + 0xdc]
vmovss xmm2, dword [esi + 0x5c]
vsubss xmm2, xmm2, dword [esi + 0x180]
vmulss xmm3, xmm2, xmm2
vfmadd231ss xmm3, xmm1, xmm1
vfmadd231ss xmm3, xmm0, xmm0
vcvtss2sd xmm3, xmm3, xmm3
vsqrtsd xmm3, xmm3, xmm3
vcvtsd2ss xmm3, xmm3, xmm3
vxorps xmm4, xmm4, xmm4
vcmpneqss xmm4, xmm3, xmm4
vbroadcastss xmm5, dword [0x100f54d0]
vblendvps xmm3, xmm5, xmm3, xmm4
vcvtsd2ss xmm4, xmm6, xmm6
vmovsd xmm5, qword [esi + 0xe0]
vcvtsd2ss xmm5, xmm5, xmm5
vmovsd xmm6, qword [esi + 0x110]
vcvtsd2ss xmm6, xmm6, xmm6
vmulss xmm4, xmm6, xmm4
vmulss xmm5, xmm6, xmm5
vdivss xmm2, xmm2, xmm3
vmulss xmm2, xmm5, xmm2
vdivss xmm1, xmm1, xmm3
vfmadd231ss xmm2, xmm1, xmm4
vdivss xmm0, xmm0, xmm3
vmovsd xmm1, qword [esi + 0x30]
vcvtsd2ss xmm1, xmm1, xmm1
vfnmadd231ss xmm2, xmm1, xmm0
vcvtss2sd xmm0, xmm2, xmm2
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
fstp dword [esi + 0x160]
vmovss xmm0, dword [0x100fe0b8]
vmulss xmm0, xmm0, dword [esi + 0x160]
vxorps xmm1, xmm1, xmm1
vmaxss xmm0, xmm1, xmm0
vmovaps xmm2, xmmword [esi + 0xb0]
vucomiss xmm0, xmm2
vcmpnless xmm1, xmm2, xmm0
vblendvps xmm2, xmm2, xmm0, xmm1
vmovaps xmmword [esi + 0xb0], xmm2
mov eax, dword [esi + 0xc0]
cmovb eax, ebx
mov dword [esi + 0xc0], eax
nop word cs:[eax + eax]
inc edi
mov eax, dword [0x1012d364]
cmp edi, dword [eax + 0x18]
jg 0x1008d059
mov ecx, dword [0x1012d36c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x208], 0xffffffff
mov dword [esp], edi
call eax
sub esp, 4
test eax, eax
je 0x1008c8e0
lea ecx, [eax + 8]
mov dword [esi + 0x40], eax
mov eax, dword [eax + 8]
call dword [eax + 0x24]
test al, al
jne 0x1008c8e0
mov dword [esi + 0x90], edi
mov eax, dword [0x1012d494]
test al, 1
je 0x1008cb3f
mov edi, dword [0x1012d490]
mov edx, dword [esi + 0x40]
mov eax, dword [edi + 4]
cmp dword [eax + edx], 0
jle 0x1008c96d
mov eax, dword [0x1012d49c]
test al, 1
je 0x1008cb99
mov edi, dword [0x1012d498]
mov eax, dword [edi + 4]
cmp byte [eax + edx], 0
je 0x1008c979
mov edi, dword [esi + 0x90]
inc edi
jmp 0x1008c8e1
mov edi, dword [esi + 0x90]
inc edi
jmp 0x1008c8e1
mov eax, dword [0x10132bd0]
test al, 1
je 0x1008ccdb
mov edi, dword [0x10132bcc]
mov ecx, dword [edi + 4]
mov edi, dword [ecx + edx]
mov edx, dword [0x1012d35c]
mov edx, dword [edx]
test al, 1
je 0x1008cd3d
cmp edi, dword [ecx + edx]
mov edi, dword [esi + 0x90]
je 0x1008c8e0
mov ebx, dword [esi + 0x40]
mov eax, dword [ebx]
mov eax, dword [eax + 0x13c]
mov dword [esi + 0x208], 0xffffffff
mov ecx, ebx
call eax
mov ecx, dword [0x1012d320]
vmovss xmm0, dword [eax + 8]
vmovss dword [esi + 0x20], xmm0
vmovss xmm0, dword [ecx + 0x198]
vmovss dword [esi + 0x2c], xmm0
vmovss xmm0, dword [eax]
vmovss dword [esi + 0x170], xmm0
vmovss xmm0, dword [eax + 4]
vmovss dword [esi + 0x5c], xmm0
vmovss xmm0, dword [ecx + 0x190]
vmovss dword [esi + 0xdc], xmm0
vmovss xmm0, dword [ecx + 0x194]
vmovss dword [esi + 0x180], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x164]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x110], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x1f0]
vmovsd xmm0, qword [esi + 0x1f0]
vmovsd qword [esi + 0x30], xmm0
vmovsd xmm0, qword [esi + 0x110]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1e8]
vmovsd xmm0, qword [esi + 0x1e8]
vmovsd qword [esi + 0x110], xmm0
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x168]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x120], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x1e0]
vmovsd xmm0, qword [esi + 0x1e0]
vmovsd qword [esi + 0xe0], xmm0
vmovsd xmm0, qword [esi + 0x120]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1d8]
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + 0x16c]
vmovsd xmm6, qword [esi + 0x1d8]
vmovd eax, xmm0
and eax, 0x7fffffff
cmp eax, 0x7f800000
jne 0x1008c7db
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x190], xmm0
vmovsd qword [esp], xmm0
vmovsd qword [esi + 0x120], xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esi + 0x190]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp st(0)
vmovsd xmm6, qword [esi + 0x120]
jmp 0x1008c7db
or eax, 1
mov dword [0x1012d494], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x208], 0
mov dword [esp], str.CBasePlayer__m_iHealth
lea ecx, [esi + 0x60]
call fcn.100083b0
sub esp, 4
cmp dword [esi + 0x74], 0x10
lea eax, [esi + 0x60]
mov dword [esi + 0x30], eax
jb 0x1008cb7d
mov eax, dword [esi + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x20], eax
test eax, eax
je 0x1008cbfb
cmp dword [esi + 0x20], 4
jae 0x1008cc02
mov eax, 0x811c9dc5
xor ecx, ecx
jmp 0x1008cc4c
or eax, 1
mov dword [0x1012d49c], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x208], 2
mov dword [esp], str.CBasePlayer__m_lifeState
lea ecx, [esi + 0x60]
call fcn.100083b0
sub esp, 4
cmp dword [esi + 0x74], 0x10
lea eax, [esi + 0x60]
mov dword [esi + 0x20], eax
jb 0x1008cbd7
mov eax, dword [esi + 0x60]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x30], eax
test eax, eax
je 0x1008cda8
cmp dword [esi + 0x30], 4
jae 0x1008cdaf
mov eax, 0x811c9dc5
xor ecx, ecx
jmp 0x1008cdf9
mov eax, 0x811c9dc5
jmp 0x1008cc6a
mov edx, dword [esi + 0x20]
and edx, 0xfffffffc
mov eax, 0x811c9dc5
xor ecx, ecx
mov ebx, dword [esi + 0x30]
movzx edi, byte [ebx + ecx]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 1]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 2]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 3]
xor edi, eax
imul eax, edi, 0x1000193
add ecx, 4
cmp edx, ecx
jne 0x1008cc0f
mov edx, dword [esi + 0x20]
and edx, 3
je 0x1008cc6a
add ecx, dword [esi + 0x30]
xor edi, edi
movzx ebx, byte [ecx + edi]
xor ebx, eax
imul eax, ebx, 0x1000193
inc edi
cmp edx, edi
jne 0x1008cc59
mov edx, dword [esi + 0x2c]
and eax, dword [edx + 0x18]
mov ecx, dword [edx + 0xc]
mov edi, dword [ecx + eax*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x20]
je 0x1008dbdb
add eax, eax
mov ebx, dword [ecx + eax*4]
cmp edx, dword [edi + 0x18]
je 0x1008cc9d
cmp edi, ebx
je 0x1008dbdb
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
jne 0x1008cc8d
cmp dword [edi + 0x1c], 0x10
jb 0x1008cca8
mov eax, dword [edi + 8]
jmp 0x1008ccab
lea eax, [edi + 8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x20]
test eax, eax
jne 0x1008cc8d
add edi, 0x20
lea ecx, [esi + 0x60]
call fcn.100029d0
mov dword [0x1012d490], edi
jmp 0x1008c939
or eax, 1
mov dword [0x10132bd0], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x208], 4
mov dword [esp], str.CBaseEntity__m_iTeamNum
lea ecx, [esi + 0x60]
call fcn.100083b0
sub esp, 4
cmp dword [esi + 0x74], 0x10
lea eax, [esi + 0x60]
mov dword [esi + 0x20], eax
jb 0x1008cd19
mov eax, dword [esi + 0x60]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x30], eax
test eax, eax
je 0x1008ce88
cmp dword [esi + 0x30], 4
jae 0x1008ce99
mov eax, 0x811c9dc5
xor ecx, ecx
jmp 0x1008cee3
mov dword [esi + 0x170], edx
mov dword [esi + 0x5c], edi
or eax, 1
mov dword [0x10132bd0], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x208], 6
mov dword [esp], str.CBaseEntity__m_iTeamNum
lea ecx, [esi + 0x60]
call fcn.100083b0
sub esp, 4
cmp dword [esi + 0x74], 0x10
lea eax, [esi + 0x60]
mov dword [esi + 0x20], eax
jb 0x1008cd84
mov eax, dword [esi + 0x60]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x30], eax
test eax, eax
je 0x1008ce8f
cmp dword [esi + 0x30], 4
jae 0x1008cf77
mov eax, 0x811c9dc5
xor ecx, ecx
jmp 0x1008cfc1
mov eax, 0x811c9dc5
jmp 0x1008ce17
mov edx, dword [esi + 0x30]
and edx, 0xfffffffc
mov eax, 0x811c9dc5
xor ecx, ecx
mov ebx, dword [esi + 0x20]
movzx edi, byte [ebx + ecx]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 1]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 2]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 3]
xor edi, eax
imul eax, edi, 0x1000193
add ecx, 4
cmp edx, ecx
jne 0x1008cdbc
mov edx, dword [esi + 0x30]
and edx, 3
je 0x1008ce17
add ecx, dword [esi + 0x20]
xor edi, edi
movzx ebx, byte [ecx + edi]
xor ebx, eax
imul eax, ebx, 0x1000193
inc edi
cmp edx, edi
jne 0x1008ce06
mov edx, dword [esi + 0x2c]
and eax, dword [edx + 0x18]
mov ecx, dword [edx + 0xc]
mov edi, dword [ecx + eax*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008dbaf
add eax, eax
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0x30]
cmp eax, dword [edi + 0x18]
jne 0x1008ce62
cmp dword [edi + 0x1c], 0x10
jb 0x1008ce45
mov eax, dword [edi + 8]
jmp 0x1008ce48
lea eax, [edi + 8]
mov ecx, dword [esi + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x20]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008ce6f
cmp edi, ebx
je 0x1008dbaf
mov edi, dword [edi + 4]
jmp 0x1008ce32
add edi, 0x20
lea ecx, [esi + 0x60]
call fcn.100029d0
mov dword [0x1012d498], edi
mov edx, dword [esi + 0x40]
jmp 0x1008c958
mov eax, 0x811c9dc5
jmp 0x1008cf01
mov eax, 0x811c9dc5
jmp 0x1008cfdf
mov edx, dword [esi + 0x30]
and edx, 0xfffffffc
mov eax, 0x811c9dc5
xor ecx, ecx
mov ebx, dword [esi + 0x20]
movzx edi, byte [ebx + ecx]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 1]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 2]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 3]
xor edi, eax
imul eax, edi, 0x1000193
add ecx, 4
cmp edx, ecx
jne 0x1008cea6
mov edx, dword [esi + 0x30]
and edx, 3
je 0x1008cf01
add ecx, dword [esi + 0x20]
xor edi, edi
movzx ebx, byte [ecx + edi]
xor ebx, eax
imul eax, ebx, 0x1000193
inc edi
cmp edx, edi
jne 0x1008cef0
mov edx, dword [esi + 0x2c]
and eax, dword [edx + 0x18]
mov ecx, dword [edx + 0xc]
mov edi, dword [ecx + eax*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008dbc5
add eax, eax
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0x30]
cmp eax, dword [edi + 0x18]
jne 0x1008cf4c
cmp dword [edi + 0x1c], 0x10
jb 0x1008cf2f
mov eax, dword [edi + 8]
jmp 0x1008cf32
lea eax, [edi + 8]
mov ecx, dword [esi + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x20]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008cf59
cmp edi, ebx
je 0x1008dbc5
mov edi, dword [edi + 4]
jmp 0x1008cf1c
add edi, 0x20
lea ecx, [esi + 0x60]
call fcn.100029d0
mov dword [0x10132bcc], edi
mov eax, dword [0x10132bd0]
mov edx, dword [esi + 0x40]
jmp 0x1008c98c
mov edx, dword [esi + 0x30]
and edx, 0xfffffffc
mov eax, 0x811c9dc5
xor ecx, ecx
mov ebx, dword [esi + 0x20]
movzx edi, byte [ebx + ecx]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 1]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 2]
xor edi, eax
imul eax, edi, 0x1000193
movzx edi, byte [ebx + ecx + 3]
xor edi, eax
imul eax, edi, 0x1000193
add ecx, 4
cmp edx, ecx
jne 0x1008cf84
mov edx, dword [esi + 0x30]
and edx, 3
je 0x1008cfdf
add ecx, dword [esi + 0x20]
xor edi, edi
movzx ebx, byte [ecx + edi]
xor ebx, eax
imul eax, ebx, 0x1000193
inc edi
cmp edx, edi
jne 0x1008cfce
mov edx, dword [esi + 0x2c]
and eax, dword [edx + 0x18]
mov ecx, dword [edx + 0xc]
mov edi, dword [ecx + eax*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008db99
add eax, eax
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0x30]
cmp eax, dword [edi + 0x18]
jne 0x1008d02a
cmp dword [edi + 0x1c], 0x10
jb 0x1008d00d
mov eax, dword [edi + 8]
jmp 0x1008d010
lea eax, [edi + 8]
mov ecx, dword [esi + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x20]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008d037
cmp edi, ebx
je 0x1008db99
mov edi, dword [edi + 4]
jmp 0x1008cffa
lea ebx, [edi + 0x20]
lea ecx, [esi + 0x60]
call fcn.100029d0
mov dword [0x10132bcc], ebx
mov ecx, dword [edi + 0x24]
mov edi, dword [esi + 0x5c]
mov edx, dword [esi + 0x170]
jmp 0x1008c9a2
cmp dword [esi + 0xc0], 0
je 0x1008d945
mov edi, dword [ebp + 8]
vmovss xmm0, dword [edi]
vaddss xmm0, xmm0, dword [0x100fe0c0]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov ebx, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call ebx
fstp dword [esi + 0x15c]
vmovss xmm0, dword [esi + 0x15c]
mov dword [esi + 0x60], 0
vmovss dword [esi + 0x90], xmm0
vmovss dword [esi + 0x64], xmm0
mov dword [esi + 0x68], 0
mov byte [esi + 0x6c], 0
vmovss xmm0, dword [edi]
vaddss xmm0, xmm0, dword [0x100fe0bc]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
mov dword [esi + 0x70], 0
fstp dword [esi + 0x74]
mov dword [esi + 0x78], 0
mov byte [esi + 0x7c], 0
vmovss xmm0, dword [edi]
vaddss xmm0, xmm0, dword [0x100fe0e8]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
mov dword [esi + 0x80], 0
fstp dword [esi + 0x84]
mov dword [esi + 0x88], 0
mov byte [esi + 0x8c], 0
mov eax, dword [0x10132ba8]
test al, 1
je 0x1008da43
mov ebx, dword [0x10132ba4]
mov dword [esi + 0x208], 0xffffffff
mov eax, dword [ebx + 4]
mov edi, dword [esi + 0xc0]
vmovsd xmm0, qword [eax + edi]
vmovaps xmmword [esi + 0x110], xmm0
vmovshdup xmm0, xmm0
vmovaps xmmword [esi + 0x40], xmm0
vmovss xmm0, dword [eax + edi + 8]
vaddss xmm0, xmm0, dword [0x100fe164]
vmovss dword [esi + 0xe0], xmm0
vmovss xmm0, dword [esi + 0x90]
vmulss xmm0, xmm0, dword [0x100fe0c4]
mov ebx, dword [0x1012d320]
mov eax, dword [0x1012d33c]
mov dword [esi + 0x90], eax
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x30], xmm0
vmovss xmm1, dword [ebx + 0x190]
vmovaps xmmword [esi + 0xb0], xmm1
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1d0]
vmovaps xmm0, xmmword [esi + 0xb0]
vinsertps xmm0, xmm0, dword [ebx + 0x194], 0x10
vmovaps xmmword [esi + 0xb0], xmm0
vmovsd xmm0, qword [esi + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x1c8]
vmovsd xmm0, qword [esi + 0x1d0]
vmovhpd xmm0, xmm0, qword [esi + 0x1c8]
vcvtpd2ps xmm0, xmm0
vbroadcastss xmm1, dword [0x100fe138]
vmovaps xmmword [esi + 0x120], xmm1
vfmadd213ps xmm0, xmm1, xmmword [esi + 0xb0]
vmovss xmm1, dword [ebx + 0x198]
vmovlps qword [esi + 0xec], xmm0
vmovss dword [esi + 0xf4], xmm1
mov eax, dword [0x1012d35c]
mov eax, dword [eax]
lea ecx, [esi + 0xec]
mov dword [esp + 0x18], ecx
vmovss xmm0, dword [esi + 0xe0]
vmovss dword [esp + 0x14], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vmovss dword [esp + 0x10], xmm0
vmovaps xmm0, xmmword [esi + 0x110]
vmovss dword [esp + 0xc], xmm0
mov dword [esp + 8], eax
mov dword [esp + 4], edi
lea eax, [esi + 0xf8]
mov dword [esp], eax
mov ecx, dword [esi + 0x90]
call fcn.10092160
sub esp, 0x1c
mov eax, dword [esi + 0xfc]
test eax, eax
jle 0x1008d2a6
mov dword [esi + 0x60], eax
mov byte [esi + 0x6c], 1
mov al, 1
mov dword [esi + 0x90], eax
jmp 0x1008d2b0
mov dword [esi + 0x90], 0
vmovss xmm0, dword [esi + 0x74]
vmulss xmm0, xmm0, dword [0x100fe0c4]
mov eax, dword [0x1012d33c]
mov dword [esi + 0xb0], eax
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x20], xmm0
vmovss xmm1, dword [ebx + 0x190]
vmovaps xmmword [esi + 0x30], xmm1
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1c0]
vmovaps xmm0, xmmword [esi + 0x30]
vinsertps xmm0, xmm0, dword [ebx + 0x194], 0x10
vmovaps xmmword [esi + 0x30], xmm0
vmovsd xmm0, qword [esi + 0x20]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x1b8]
vmovsd xmm0, qword [esi + 0x1c0]
vmovhpd xmm0, xmm0, qword [esi + 0x1b8]
vcvtpd2ps xmm0, xmm0
vmovaps xmm1, xmmword [esi + 0x30]
vfmadd132ps xmm0, xmm1, xmmword [esi + 0x120]
vmovss xmm1, dword [ebx + 0x198]
vmovlps qword [esi + 0xec], xmm0
vmovss dword [esi + 0xf4], xmm1
mov eax, dword [0x1012d35c]
mov eax, dword [eax]
mov dword [esp + 8], eax
lea edi, [esi + 0xec]
mov dword [esp + 0x18], edi
vmovss xmm0, dword [esi + 0xe0]
vmovss dword [esp + 0x14], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vmovss dword [esp + 0x10], xmm0
vmovaps xmm0, xmmword [esi + 0x110]
vmovss dword [esp + 0xc], xmm0
mov eax, dword [esi + 0xc0]
mov dword [esp + 4], eax
lea eax, [esi + 0xf8]
mov dword [esp], eax
mov ecx, dword [esi + 0xb0]
call fcn.10092160
sub esp, 0x1c
mov eax, dword [esi + 0xfc]
test eax, eax
jle 0x1008d3c7
mov dword [esi + 0x70], eax
mov byte [esi + 0x7c], 1
mov al, 1
mov dword [esi + 0x90], eax
vmovss xmm0, dword [esi + 0x84]
vmulss xmm0, xmm0, dword [0x100fe0c4]
mov eax, dword [0x1012d33c]
mov dword [esi + 0xb0], eax
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x20], xmm0
vmovss xmm1, dword [ebx + 0x190]
vmovaps xmmword [esi + 0x30], xmm1
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1b0]
vmovaps xmm0, xmmword [esi + 0x30]
vinsertps xmm0, xmm0, dword [ebx + 0x194], 0x10
vmovaps xmmword [esi + 0x30], xmm0
vmovsd xmm0, qword [esi + 0x20]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x1a8]
vmovsd xmm0, qword [esi + 0x1b0]
vmovhpd xmm0, xmm0, qword [esi + 0x1a8]
vcvtpd2ps xmm0, xmm0
vmovaps xmm1, xmmword [esi + 0x30]
vfmadd132ps xmm0, xmm1, xmmword [esi + 0x120]
vmovss xmm1, dword [ebx + 0x198]
vmovlps qword [esi + 0xec], xmm0
vmovss dword [esi + 0xf4], xmm1
mov eax, dword [0x1012d35c]
mov eax, dword [eax]
mov dword [esp + 0x18], edi
mov dword [esp + 8], eax
mov eax, dword [esi + 0xc0]
mov dword [esp + 4], eax
vmovss xmm0, dword [esi + 0xe0]
vmovss dword [esp + 0x14], xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vmovss dword [esp + 0x10], xmm0
vmovaps xmm0, xmmword [esi + 0x110]
vmovss dword [esp + 0xc], xmm0
lea eax, [esi + 0xf8]
mov dword [esp], eax
mov ecx, dword [esi + 0xb0]
call fcn.10092160
sub esp, 0x1c
mov eax, dword [esi + 0xfc]
test eax, eax
jle 0x1008d4db
mov dword [esi + 0x80], eax
mov byte [esi + 0x8c], 1
jmp 0x1008d4e8
cmp byte [esi + 0x90], 0
je 0x1008d648
cmp byte [esi + 0x6c], 0
je 0x1008d501
mov eax, dword [esi + 0x60]
mov ecx, eax
sar ecx, 0x1f
andn eax, ecx, eax
vcvtsi2ss xmm0, xmm2, eax
jmp 0x1008d505
vxorps xmm0, xmm0, xmm0
mov eax, dword [esi + 0xac]
xor edi, edi
cmp byte [esi + 0x7c], 0
je 0x1008d527
vcvtsi2ss xmm1, xmm2, dword [esi + 0x70]
vucomiss xmm0, xmm1
jae 0x1008d527
mov edi, 1
vmovaps xmm0, xmm1
cmp byte [esi + 0x8c], 0
je 0x1008d543
vcvtsi2ss xmm1, xmm2, dword [esi + 0x80]
vucomiss xmm0, xmm1
jae 0x1008d543
mov edi, 2
cmp dword [eax + 0x40], 1
jne 0x1008d55e
shl edi, 4
vmovss xmm0, dword [esi + edi + 0x64]
mov eax, dword [ebp + 8]
vmovss dword [eax], xmm0
jmp 0x1008d63b
mov eax, dword [ebp + 8]
vmovss xmm0, dword [eax]
vaddss xmm0, xmm0, dword [0x100fe0c0]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov ebx, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call ebx
fstp dword [esi + 0x158]
vmovss xmm0, dword [esi + 0x158]
vmovss dword [esi + 0x40], xmm0
mov ecx, dword [ebp + 8]
vmovss dword [ecx], xmm0
shl edi, 4
vmovss xmm0, dword [esi + edi + 0x64]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x154]
vmovss xmm0, dword [esi + 0x154]
vmovss dword [esi + 0x90], xmm0
vmovss xmm0, dword [esi + 0x40]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x150]
vmovss xmm0, dword [esi + 0x90]
vsubss xmm0, xmm0, dword [esi + 0x150]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x14c]
vmovss xmm0, dword [esi + 0x14c]
vxorps xmm1, xmm1, xmm1
xor eax, eax
vucomiss xmm0, xmm1
setae al
xor ecx, ecx
vucomiss xmm1, xmm0
seta cl
mov edx, dword [esi + 0xac]
cmp dword [edx + 0x40], 2
cmove ecx, eax
movzx eax, cl
inc eax
mov dword [edx + 0x50], eax
mov al, 1
mov dword [esi + 0xc0], eax
jmp 0x1008d94f
mov dword [esi + 0x5c], 0
vbroadcastss xmm0, dword [0x100f55cc]
vmovaps xmmword [esi + 0x170], xmm0
vbroadcastss xmm0, dword [0x100f55a4]
vmovaps xmmword [esi + 0x180], xmm0
xor edi, edi
jmp 0x1008d690
mov edi, dword [esi + 0xdc]
inc edi
cmp edi, 3
je 0x1008d8ce
mov dword [esi + 0xdc], edi
shl edi, 4
vmovss xmm0, dword [0x100fe0c4]
vmulss xmm0, xmm0, dword [esi + edi + 0x64]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x90], xmm0
vmovss xmm1, dword [ebx + 0x190]
vmovaps xmmword [esi + 0x40], xmm1
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x1a0]
vmovaps xmm0, xmmword [esi + 0x40]
vinsertps xmm0, xmm0, dword [ebx + 0x194], 0x10
vmovaps xmmword [esi + 0x40], xmm0
vmovsd xmm0, qword [esi + 0x90]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x198]
vmovsd xmm0, qword [esi + 0x1a0]
vmovhpd xmm0, xmm0, qword [esi + 0x198]
vcvtpd2ps xmm1, xmm0
vmovaps xmm0, xmmword [esi + 0x40]
vfmadd132ps xmm1, xmm0, xmmword [esi + 0x120]
vmovss xmm0, dword [ebx + 0x198]
vsubss xmm0, xmm0, dword [esi + 0xe0]
vsubps xmm1, xmm1, xmmword [esi + 0x110]
vmulps xmm2, xmm1, xmm1
vmovshdup xmm2, xmm2
vfmadd231ss xmm2, xmm1, xmm1
vfmadd231ss xmm2, xmm0, xmm0
vcvtss2sd xmm2, xmm2, xmm2
vsqrtsd xmm2, xmm2, xmm2
vcvtsd2ss xmm4, xmm2, xmm2
vxorps xmm2, xmm2, xmm2
vucomiss xmm4, xmm2
jbe 0x1008d680
vcmpneqss xmm2, xmm4, xmm2
vmovss xmm3, dword [0x100f54d0]
vblendvps xmm2, xmm3, xmm4, xmm2
vbroadcastss xmm3, xmm2
vdivps xmm1, xmm1, xmm3
vmovaps xmmword [esi + 0xc0], xmm1
vdivss xmm0, xmm0, xmm2
vmovss dword [esi + 0xb0], xmm0
vmulss xmm0, xmm4, dword [0x100f54dc]
vmovss dword [esi + 0x30], xmm0
vmulss xmm0, xmm4, dword [0x100f563c]
vmovss dword [esi + 0x20], xmm0
vmovaps xmmword [esi + 0x90], xmm4
vmulss xmm0, xmm4, dword [0x100fc520]
vmovss dword [esi + 0x2c], xmm0
lea edi, [esi + edi + 0x68]
mov dword [esi + 0x208], 0xffffffff
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [esi + 0x40], xmm0
jmp 0x1008d804
vmovaps xmm1, xmmword [esi + 0x40]
vaddss xmm1, xmm1, dword [0x100f552c]
vmovaps xmm0, xmmword [esi + 0x90]
vmovaps xmmword [esi + 0x40], xmm1
vucomiss xmm0, xmm1
jbe 0x1008d680
mov ecx, dword [0x1012d384]
vmovaps xmm1, xmmword [esi + 0x40]
vmulss xmm0, xmm1, dword [esi + 0xb0]
vbroadcastss xmm1, xmm1
vmulps xmm1, xmm1, xmmword [esi + 0xc0]
vaddss xmm0, xmm0, dword [ebx + 0x198]
vmovsd xmm2, qword [ebx + 0x190]
vaddps xmm1, xmm1, xmm2
vmovlps qword [esi + 0xf8], xmm1
vmovss dword [esi + 0x100], xmm0
mov eax, dword [ecx]
lea edx, [esi + 0xf8]
mov dword [esp], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x600400b
call dword [eax]
sub esp, 0xc
test eax, 0x600400b
je 0x1008d7e0
xor eax, eax
vmovaps xmm2, xmmword [esi + 0x40]
vucomiss xmm2, dword [esi + 0x30]
seta al
vmovss xmm0, dword [esi + 0x20]
vcmpltss xmm0, xmm0, xmm2
vmovss xmm1, dword [eax*4 + 0x100fe168]
vblendvps xmm0, xmm1, xmmword [esi + 0x170], xmm0
vmovss xmm1, dword [esi + 0x2c]
vcmpltss xmm1, xmm1, xmm2
vblendvps xmm0, xmm0, xmmword [esi + 0x180], xmm1
vmovss xmm1, dword [0x100f552c]
vfmadd213ss xmm0, xmm1, dword [edi]
vmovss dword [edi], xmm0
mov al, 1
mov dword [esi + 0x5c], eax
jmp 0x1008d7e0
test byte [esi + 0x5c], 1
je 0x1008d945
vmovss xmm0, dword [esi + 0x68]
vsubss xmm2, xmm0, dword [esi + 0x78]
vbroadcastss xmm1, dword [0x100f550c]
vandps xmm2, xmm2, xmm1
vucomiss xmm2, dword [0x100f5604]
jae 0x1008d90b
vsubss xmm0, xmm0, dword [esi + 0x88]
vandps xmm0, xmm0, xmm1
vucomiss xmm0, dword [0x100f5604]
jb 0x1008d945
mov dword [esp], 3
lea ecx, [esi + 0x60]
lea edx, [esi + 0x90]
call fcn.1008f620
vmovss xmm0, dword [esi + 0x68]
vucomiss xmm0, dword [0x100fe170]
ja 0x1008d945
mov edi, dword [esi + 0xac]
cmp dword [edi + 0x40], 1
jne 0x1008d96b
vmovss xmm0, dword [esi + 0x64]
jmp 0x1008d552
mov dword [esi + 0xc0], 0
mov eax, dword [esi + 0x200]
mov dword fs:[0], eax
mov eax, dword [esi + 0xc0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ebx, dword [ebp + 8]
vmovss xmm0, dword [ebx]
vaddss xmm0, xmm0, dword [0x100fe0c0]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov ebx, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
call ebx
fstp dword [esi + 0x148]
vmovss xmm0, dword [esi + 0x148]
vmovss dword [esi + 0x40], xmm0
mov eax, dword [ebp + 8]
vmovss dword [eax], xmm0
vmovss xmm0, dword [esi + 0x64]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x144]
vmovss xmm0, dword [esi + 0x144]
vmovss dword [esi + 0x90], xmm0
vmovss xmm0, dword [esi + 0x40]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x140]
vmovss xmm0, dword [esi + 0x90]
vsubss xmm0, xmm0, dword [esi + 0x140]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call ebx
fstp dword [esi + 0x13c]
vmovss xmm0, dword [esi + 0x13c]
vxorps xmm1, xmm1, xmm1
xor eax, eax
vucomiss xmm0, xmm1
setae al
xor ecx, ecx
vucomiss xmm1, xmm0
seta cl
cmp dword [edi + 0x40], 2
cmove ecx, eax
movzx eax, cl
inc eax
mov dword [edi + 0x50], eax
jmp 0x1008d63b
or eax, 1
mov dword [0x10132ba8], eax
mov eax, dword [0x1012d324]
mov dword [esi + 0x20], eax
mov dword [esi + 0x208], 8
mov dword [esp], str.CBaseEntity__m_vecOrigin
lea ecx, [esi + 0xf8]
mov dword [esi + 0xb0], ecx
call fcn.100083b0
sub esp, 4
mov eax, dword [esi + 0x108]
mov dword [esi + 0x40], eax
cmp dword [esi + 0x10c], 0x10
jb 0x1008da96
mov eax, dword [esi + 0xf8]
mov dword [esi + 0xb0], eax
cmp dword [esi + 0x40], 0
je 0x1008dab5
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x30], ecx
cmp eax, 4
jae 0x1008dabc
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008db09
mov ecx, 0x811c9dc5
jmp 0x1008db29
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xb0]
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 0x1008dacf
cmp dword [esi + 0x30], 0
je 0x1008db29
add edx, dword [esi + 0xb0]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x30], edi
jne 0x1008db17
mov edx, dword [esi + 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008dbf1
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x40]
cmp eax, dword [ebx + 0x18]
jne 0x1008db77
cmp dword [ebx + 0x1c], 0x10
jb 0x1008db57
mov eax, dword [ebx + 8]
jmp 0x1008db5a
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0xb0]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008db80
cmp ebx, edi
je 0x1008dbf1
mov ebx, dword [ebx + 4]
jmp 0x1008db44
add ebx, 0x20
lea ecx, [esi + 0xf8]
call fcn.100029d0
mov dword [0x10132ba4], ebx
jmp 0x1008d136
mov dword [esi + 0x208], 7
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x208], 3
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x208], 5
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x208], 1
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x208], 9
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
nop word [eax + eax]
push ebp
sub esp, 0x1c
lea esi, [ebp - 0x20c]
mov ebp, dword [esi + 0x1f8]
lea ecx, [esi + 0xf8]
call fcn.100029d0
add esp, 0x1c
pop ebp
ret