Function at 0x1001a0a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004586b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1b8
mov eax, dword [0x10054040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov edi, dword [0x10056768]
mov dword [ebp - 0x1a4], eax
mov eax, dword [0x10056730]
mov eax, dword [eax + 0x3c]
cmp byte [eax], 0
je 0x1001ab56
mov eax, dword [0x10055288]
mov dword [ebp - 0x194], eax
test eax, eax
je 0x1001ab56
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10055238]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x10055260]
cmp eax, dword [esi + 4]
jle 0x1001a175
push 0x10055260
call fcn.10042603
add esp, 4
cmp dword [0x10055260], 0xffffffff
jne 0x1001a175
push str.deadflag
push str.CBasePlayer
mov dword [ebp - 4], 0
call fcn.10033440
push 0x10055260
mov dword [0x10055258], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100425b2
add esp, 4
mov eax, dword [0x10055258]
mov ecx, dword [ebp - 0x194]
cmp byte [eax + ecx], 0
jne 0x1001ab56
push 0x12
vpxor xmm0, xmm0, xmm0
push str.tf_party_chat__SW_
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x20], 0
vmovdqu xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c], 0
call fcn.1000cf80
mov dword [ebp - 4], 1
cmp byte [edi], 0
je 0x1001a1cc
mov eax, dword [ebp - 0x1a4]
or dword [eax + 0x24], 0x800
mov byte [edi], 0
mov eax, dword [0x10056730]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 4]
test eax, eax
je 0x1001a8b9
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001a8b9
cmp byte [edi + 1], 0
jne 0x1001a8bd
mov ecx, dword [ebp - 0x1a4]
lea eax, [ebp - 0x1ac]
vmovss xmm1, dword [0x1004c898]
mov dword [ebp - 0x198], eax
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x18], eax
vmulss xmm0, xmm1, dword [ecx + 0xc]
vmovss dword [ebp - 0x194], xmm0
fld dword [ebp - 0x194]
fsincos
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x18]
fstp dword [edx]
fstp dword [eax]
vmulss xmm0, xmm1, dword [ecx + 0x10]
lea eax, [ebp - 0x1a4]
mov dword [ebp - 0x198], eax
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x194], eax
vmovss dword [ebp - 0x18], xmm0
fld dword [ebp - 0x18]
fsincos
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x194]
fstp dword [edx]
fstp dword [eax]
vmovss xmm1, dword [ebp - 0x1ac]
vmulss xmm0, xmm1, dword [ebp - 0x1a4]
vmovss dword [ebp - 0x1ac], xmm0
vmulss xmm0, xmm1, dword [ebp - 0x1b0]
xor eax, eax
vmovss dword [ebp - 0x1b0], xmm0
vmovss xmm0, dword [ebp - 0x1a8]
vxorps xmm0, xmm0, xmmword [0x1004ca90]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov eax, dword [0x10055288]
vmovss dword [ebp - 0x18], xmm0
vxorps xmm0, xmm0, xmm0
mov dword [ebp - 0x1a8], eax
mov eax, dword [0x100552a0]
vmovss dword [ebp - 0x198], xmm0
vmovss dword [ebp - 0x80], xmm0
vmovss dword [ebp - 0x84], xmm0
vmovss dword [ebp - 0x88], xmm0
vmovss dword [ebp - 0x74], xmm0
vmovss dword [ebp - 0x78], xmm0
vmovss dword [ebp - 0x7c], xmm0
vmovss dword [ebp - 0x68], xmm0
vmovss dword [ebp - 0x6c], xmm0
vmovss dword [ebp - 0x70], xmm0
vmovdqu ymmword [ebp - 0x5c], ymm0
vmovq qword [ebp - 0x3c], xmm0
vmovdqu xmmword [ebp - 0xa0], xmm0
cmp eax, dword [esi + 4]
jle 0x1001a365
push 0x100552a0
vzeroupper
call fcn.10042603
add esp, 4
cmp dword [0x100552a0], 0xffffffff
jne 0x1001a365
push str.m_vecOrigin
push str.CBaseEntity
mov byte [ebp - 4], 2
call fcn.10033440
push 0x100552a0
mov dword [0x100552a4], eax
mov byte [ebp - 4], 1
call fcn.100425b2
add esp, 4
mov eax, dword [0x1005526c]
mov edx, dword [0x100552a4]
mov dword [ebp - 0x1a4], edx
cmp eax, dword [esi + 4]
jle 0x1001a3c6
push 0x1005526c
vzeroupper
call fcn.10042603
add esp, 4
cmp dword [0x1005526c], 0xffffffff
jne 0x1001a3c0
push str.m_vecViewOffset_0_
push str.CBasePlayer
mov byte [ebp - 4], 3
call fcn.10033440
push 0x1005526c
mov dword [0x10055280], eax
mov byte [ebp - 4], 1
call fcn.100425b2
add esp, 4
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [0x10055280]
vmovss xmm0, dword [ecx + edx]
vaddss xmm3, xmm0, dword [ecx + eax]
vmovss xmm0, dword [ecx + edx + 4]
vaddss xmm4, xmm0, dword [ecx + eax + 4]
vmovss xmm0, dword [ecx + edx + 8]
vaddss xmm5, xmm0, dword [ecx + eax + 8]
vmovss xmm0, dword [0x1004c9d4]
vmulss xmm1, xmm0, dword [ebp - 0x1ac]
vmulss xmm2, xmm0, dword [ebp - 0x1b0]
vmulss xmm0, xmm0, dword [ebp - 0x18]
mov eax, dword [0x10055288]
vaddss xmm1, xmm1, xmm3
vmovss dword [ebp - 0x1b0], xmm1
mov dword [ebp - 0x1a8], eax
mov eax, dword [0x100552a0]
vaddss xmm1, xmm2, xmm4
vaddss xmm0, xmm0, xmm5
vmovss dword [ebp - 0x1ac], xmm1
vmovss dword [ebp - 0x18], xmm0
cmp eax, dword [esi + 4]
jle 0x1001a48b
push 0x100552a0
vzeroupper
call fcn.10042603
add esp, 4
cmp dword [0x100552a0], 0xffffffff
jne 0x1001a48b
push str.m_vecOrigin
push str.CBaseEntity
mov byte [ebp - 4], 4
call fcn.10033440
push 0x100552a0
mov dword [0x100552a4], eax
mov byte [ebp - 4], 1
call fcn.100425b2
add esp, 4
mov eax, dword [0x1005526c]
mov edx, dword [0x100552a4]
mov dword [ebp - 0x1a4], edx
cmp eax, dword [esi + 4]
jle 0x1001a4ec
push 0x1005526c
vzeroupper
call fcn.10042603
add esp, 4
cmp dword [0x1005526c], 0xffffffff
jne 0x1001a4e6
push str.m_vecViewOffset_0_
push str.CBasePlayer
mov byte [ebp - 4], 5
call fcn.10033440
push 0x1005526c
mov dword [0x10055280], eax
mov byte [ebp - 4], 1
call fcn.100425b2
add esp, 4
mov edx, dword [ebp - 0x1a4]
mov ecx, dword [ebp - 0x1a8]
mov eax, dword [0x10055280]
vmovss xmm2, dword [ebp - 0x18]
vmovss xmm0, dword [ecx + eax]
vaddss xmm3, xmm0, dword [ecx + edx]
vmovss xmm0, dword [ecx + edx + 4]
vaddss xmm4, xmm0, dword [ecx + eax + 4]
vmovss xmm0, dword [ecx + edx + 8]
vaddss xmm5, xmm0, dword [ecx + eax + 8]
vmovss xmm0, dword [ebp - 0x1b0]
vsubss xmm1, xmm0, xmm3
vmovss xmm0, dword [ebp - 0x1ac]
vsubss xmm0, xmm0, xmm4
vmovss dword [ebp - 0xd0], xmm1
vmovss dword [ebp - 0xcc], xmm0
vmulss xmm0, xmm0, xmm0
vmulss xmm1, xmm1, xmm1
vsubss xmm2, xmm2, xmm5
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vmovss xmm1, dword [ebp - 0x198]
vucomiss xmm0, xmm1
vmovss dword [ebp - 0xc8], xmm2
lahf
mov byte [ebp - 0x9f], 1
test ah, 0x44
jp 0x1001a586
mov byte [ebp - 0x9f], 0
mov ecx, dword [0x10055330]
mov eax, dword [0x10055288]
mov byte [ebp - 0xa0], 1
mov dword [ebp - 0x1a0], 0x10049a18
mov dword [ebp - 0x19c], eax
vmovss dword [ebp - 0xb0], xmm1
vmovss dword [ebp - 0xac], xmm1
vmovss dword [ebp - 0xa8], xmm1
vmovss dword [ebp - 0xc0], xmm1
vmovss dword [ebp - 0xbc], xmm1
vmovss dword [ebp - 0xb8], xmm1
vmovss dword [ebp - 0xe0], xmm3
vmovss dword [ebp - 0xdc], xmm4
vmovss dword [ebp - 0xd8], xmm5
test ecx, ecx
jne 0x1001a5f8
xor eax, eax
jmp 0x1001a5fd
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0x88]
push edx
lea edx, [ebp - 0x1a0]
push edx
push 0x4600400b
lea edx, [ebp - 0xe0]
push edx
vzeroupper
call eax
vmovss xmm0, dword [0x1004c900]
vcomiss xmm0, dword [ebp - 0x5c]
ja 0x1001a63b
cmp byte [ebp - 0x52], 0
jne 0x1001a63b
cmp byte [ebp - 0x51], 0
je 0x1001a8b0
push 0xb0
lea eax, [ebp - 0x190]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x190]
call fcn.1001afd0
mov edx, 1
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1c8]
call fcn.1001b360
mov byte [ebp - 4], 7
lea edx, [ebp - 0x1c8]
cmp dword [ebp - 0x1b4], 0xf
lea ecx, [ebp - 0x180]
push dword [ebp - 0x1b8]
cmova edx, dword [ebp - 0x1c8]
call fcn.1001b930
add esp, 4
mov edx, 0x1004acc0
mov ecx, eax
call fcn.1001b4f0
vmovss xmm0, dword [ebp - 0x7c]
push ecx
mov ecx, eax
vmovss dword [esp], xmm0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
mov edx, 0x1004acc0
mov ecx, eax
call fcn.1001b4f0
vmovss xmm0, dword [ebp - 0x78]
push ecx
mov ecx, eax
vmovss dword [esp], xmm0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
mov edx, 0x1004acc0
mov ecx, eax
call fcn.1001b4f0
vmovss xmm0, dword [ebp - 0x74]
push ecx
mov ecx, eax
vmovss dword [esp], xmm0
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___float_]
mov edx, 0x1004acc0
mov ecx, eax
call fcn.1001b4f0
mov ecx, dword [0x10055288]
mov esi, eax
add ecx, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
call edx
push eax
mov ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov edx, 0x1004aca0
mov ecx, eax
call fcn.1001b4f0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xf
jbe 0x1001a76c
mov edx, dword [ebp - 0x1c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001a762
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001a762
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1004269c
add esp, 8
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x178]
call fcn.1001b270
mov byte [ebp - 4], 8
lea edx, [ebp - 0x1c8]
cmp dword [ebp - 0x1b4], 0xf
mov ecx, dword [ebp - 0x1b8]
cmova edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
sub eax, esi
mov dword [ebp - 0x1a8], ecx
push ecx
push edx
cmp ecx, eax
ja 0x1001a7d8
cmp dword [ebp - 0x1c], 0xf
lea eax, [esi + ecx]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x30]
cmova eax, dword [ebp - 0x30]
add esi, eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x1a8]
add esp, 0xc
mov byte [eax + esi], 0
jmp 0x1001a7e7
push dword [ebp - 0x1a8]
push ecx
lea ecx, [ebp - 0x30]
call fcn.1001b7d0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xf
jbe 0x1001a827
mov edx, dword [ebp - 0x1c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001a81d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001a81d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1004269c
add esp, 8
cmp dword [ebp - 0x1c], 0xf
lea edx, [ebp - 0x30]
mov ecx, dword [0x10055274]
cmova edx, dword [ebp - 0x30]
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0xf
mov byte [ebp - 0x1c8], 0
test ecx, ecx
jne 0x1001a85b
xor eax, eax
jmp 0x1001a863
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
push edx
call eax
mov eax, dword [ebp - 0x190]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x190]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x194], eax
lea ecx, [ebp - 0x178]
call fcn.1000be50
lea ecx, [ebp - 0x170]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x128]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [edi + 1], 1
jmp 0x1001ab20
mov byte [edi + 1], 0
mov eax, dword [0x10056730]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 8]
test eax, eax
je 0x1001ab1c
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001ab1c
cmp byte [edi + 2], 0
jne 0x1001ab16
push 0xb0
lea eax, [ebp - 0x190]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x190]
call fcn.1001afd0
mov edx, 2
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1c8]
call fcn.1001b360
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x1c8]
cmp dword [ebp - 0x1b4], 0xf
lea ecx, [ebp - 0x180]
push dword [ebp - 0x1b8]
cmova edx, dword [ebp - 0x1c8]
call fcn.1001b930
add esp, 4
mov edx, 0x1004acc0
mov ecx, eax
call fcn.1001b4f0
mov ecx, dword [0x10055288]
mov esi, eax
add ecx, 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
call edx
push eax
mov ecx, esi
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
mov edx, 0x1004aca0
mov ecx, eax
call fcn.1001b4f0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xf
jbe 0x1001a9be
mov edx, dword [ebp - 0x1c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001a9b4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001a9b4
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1004269c
add esp, 8
lea eax, [ebp - 0x1c8]
push eax
lea ecx, [ebp - 0x178]
call fcn.1001b270
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x1c8]
cmp dword [ebp - 0x1b4], 0xf
mov ecx, dword [ebp - 0x1b8]
cmova edx, dword [ebp - 0x1c8]
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
sub eax, esi
mov dword [ebp - 0x1a8], ecx
mov dword [ebp - 0x1a4], esi
push ecx
push edx
cmp ecx, eax
ja 0x1001aa3e
cmp dword [ebp - 0x1c], 0xf
lea eax, [esi + ecx]
mov dword [ebp - 0x20], eax
lea esi, [ebp - 0x30]
cmova esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1a4]
add eax, esi
push eax
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x1a8]
add esp, 0xc
mov ecx, dword [ebp - 0x1a4]
add eax, esi
mov byte [eax + ecx], 0
jmp 0x1001aa4d
push dword [ebp - 0x1a8]
push ecx
lea ecx, [ebp - 0x30]
call fcn.1001b7d0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xf
jbe 0x1001aa8d
mov edx, dword [ebp - 0x1c8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001aa83
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001aa83
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1004269c
add esp, 8
cmp dword [ebp - 0x1c], 0xf
lea edx, [ebp - 0x30]
mov ecx, dword [0x10055274]
cmova edx, dword [ebp - 0x30]
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0xf
mov byte [ebp - 0x1c8], 0
test ecx, ecx
jne 0x1001aac1
xor eax, eax
jmp 0x1001aac9
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
push edx
call eax
mov eax, dword [ebp - 0x190]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x190]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x194], eax
lea ecx, [ebp - 0x178]
call fcn.1000be50
lea ecx, [ebp - 0x170]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x128]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [edi + 2], 1
jmp 0x1001ab20
mov byte [edi + 2], 0
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0xf
jbe 0x1001ab56
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001ab4c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001ab4c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1004269c
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10042579
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4