Function at 0x10167960
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a06a0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x20
push esi
mov esi, dword [0x10253210]
mov byte [0x10252e5c], 0
mov byte [0x10252e59], 0
mov dword [ebp - 0x14], esi
push edi
mov edi, dword [ebx + 8]
test esi, esi
je 0x10168219
push esi
push edi
call fcn.1016b1c0
cmp byte [0x10316ba4], 0
je 0x10167af5
cmp byte [0x10316760], 0
jne 0x10167af5
mov edx, dword [0x10253210]
mov dword [ebp - 0x18], edx
test edx, edx
je 0x10167af5
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10255374]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10255724]
cmp eax, dword [ecx + 4]
jle 0x10167a49
push 0x10255724
call fcn.101987e8
add esp, 4
cmp dword [0x10255724], 0xffffffff
jne 0x10167a46
mov edx, str.m_vecVelocity_0_
mov dword [ebp - 4], 0
mov ecx, str.CBasePlayer
call fcn.10078be0
push 0x10255724
mov dword [0x1025574c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov edx, dword [ebp - 0x18]
mov ecx, dword [0x1025574c]
xorps xmm1, xmm1
movss xmm2, dword [ecx + edx + 4]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x10167a74
movss xmm0, dword [ecx + edx]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10167a74
xorps xmm0, xmm0
jmp 0x10167ab8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x20], xmm0
movss xmm0, dword [ecx + edx]
fld qword [ebp - 0x20]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
fld qword [ebp - 0x20]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1023d2c8]
comiss xmm1, xmm0
jbe 0x10167ab8
addss xmm0, dword [0x1023d354]
mov dword [edi + 0xc], 0xc2b40000
movss dword [edi + 0x10], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov byte [0x10316ba4], 0
mov byte [0x10316a0d], 0
mov byte [0x10252e5c], 1
mov byte [0x10252e59], 1
push esi
push dword [ebx + 0xc]
push edi
call fcn.10168760
push esi
push edi
call fcn.10169c50
push esi
push edi
call fcn.101698b0
push esi
push edi
call fcn.10169ed0
push esi
push edi
call fcn.1016a090
cmp byte [0x1031cd38], 0
je 0x10167c51
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10316b6c]
mov dword [ebp - 0x18], ecx
cmp eax, dword [ecx + 4]
jle 0x10167b8f
push 0x10316b6c
call fcn.101987e8
add esp, 4
cmp dword [0x10316b6c], 0xffffffff
jne 0x10167b8c
push str.m_bUsingActionSlot
push str.DT_TFPlayer
mov dword [ebp - 4], 1
call fcn.1007c590
push 0x10316b6c
mov dword [0x10316b7c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x10316b7c]
cmp byte [eax + esi], 0
jne 0x10167c51
mov eax, dword [0x10316b88]
cmp eax, dword [ecx + 4]
jle 0x10167bf5
push 0x10316b88
call fcn.101987e8
add esp, 4
cmp dword [0x10316b88], 0xffffffff
jne 0x10167bf5
push str.m_flNextNoiseMakerTime
push str.m_Shared
push str.DT_TFPlayer
mov dword [ebp - 4], 2
call fcn.1007c680
push 0x10316b88
mov dword [0x10316bac], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10255740]
movss xmm0, dword [eax + 0xc]
mov eax, dword [0x10316bac]
comiss xmm0, dword [eax + esi]
jbe 0x10167c51
mov ecx, dword [0x10316e38]
push 0x20
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x10167c37
push str.use_action_slot_item_server
mov ecx, eax
call fcn.10194af0
mov edx, eax
jmp 0x10167c39
xor edx, edx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x102556bc]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1fc]
call eax
cmp byte [0x1031da84], 0
je 0x10167d3a
mov ecx, dword [0x102556bc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10167d3a
mov ecx, esi
call fcn.10078d00
test al, al
je 0x10167d3a
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10320ad4]
cmp eax, dword [ecx + 4]
jle 0x10167ce4
push 0x10320ad4
call fcn.101987e8
add esp, 4
cmp dword [0x10320ad4], 0xffffffff
jne 0x10167ce4
xorps xmm0, xmm0
lea ecx, [ebp - 0x20]
movlpd qword [0x10320a58], xmm0
call fcn.1008cf30
push 0x10320ad4
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x10320a58], ecx
mov dword [0x10320a5c], eax
call fcn.10198797
add esp, 4
lea ecx, [ebp - 0x20]
call fcn.1008cf30
mov ecx, dword [ebp - 0x20]
sub ecx, dword [0x10320a58]
mov eax, dword [ebp - 0x1c]
sbb eax, dword [0x10320a5c]
mov dword [ebp - 0x1c], eax
js 0x10167d3a
jg 0x10167d0d
cmp ecx, 0x77359400
jb 0x10167d3a
lea ecx, [ebp - 0x20]
call fcn.1008cf30
push str.extendfreeze
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x10320a58], ecx
mov ecx, dword [0x102556bc]
mov dword [0x10320a5c], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
push esi
push edi
call fcn.101694a0
cmp byte [0x1031d170], 0
je 0x10167e15
mov ecx, esi
call fcn.10078d00
test al, al
jne 0x10167e15
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10316850]
cmp eax, dword [ecx + 4]
jle 0x10167dbe
push 0x10316850
call fcn.101987e8
add esp, 4
cmp dword [0x10316850], 0xffffffff
jne 0x10167dbe
push str.m_iHealth
push str.DT_BasePlayer
mov dword [ebp - 4], 4
call fcn.1007c590
push 0x10316850
mov dword [0x10316874], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10316874]
mov ecx, dword [ebp - 0x14]
mov esi, dword [eax + esi]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1ac]
call eax
movd xmm1, dword [0x1031d050]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mulss xmm1, dword [0x1023d03c]
cvtdq2ps xmm0, xmm0
movd xmm2, esi
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm0
comiss xmm1, xmm2
jb 0x10167e12
mov ecx, dword [0x102556bc]
push str.retry
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
mov esi, dword [ebp - 0x14]
push edi
push esi
call fcn.10168be0
push esi
push ecx
call fcn.1016ad40
push esi
push edi
call fcn.1016b620
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10320b0c]
mov dword [ebp - 0x18], ecx
cmp eax, dword [ecx + 4]
jle 0x10167e80
push 0x10320b0c
call fcn.101987e8
add esp, 4
cmp dword [0x10320b0c], 0xffffffff
jne 0x10167e80
push 0x10320b0c
mov dword [0x10320b30], 0
mov dword [0x10320b2c], 0x1031d128
call fcn.10198797
add esp, 4
cmp byte [0x10316864], 0
je 0x10168067
mov eax, dword [0x10320b2c]
mov eax, dword [eax]
test eax, eax
jne 0x10167ea2
mov dword [0x10320b30], eax
jmp 0x10168067
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10320b30], eax
je 0x10168067
mov ecx, esi
call fcn.10078d00
test al, al
jne 0x10168067
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x10316748]
cmp eax, dword [ecx + 4]
jle 0x10167f20
push 0x10316748
call fcn.101987e8
add esp, 4
cmp dword [0x10316748], 0xffffffff
jne 0x10167f20
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 5
call fcn.1007c590
push 0x10316748
mov dword [0x10316718], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10316718]
mov ecx, dword [0x10316738]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.10095cf0
test eax, eax
je 0x10168067
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x5f4]
mov ecx, eax
call edx
cmp eax, 0x18
jne 0x10168067
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x102557d4]
cmp eax, dword [ecx + 4]
jle 0x10167fc6
push 0x102557d4
call fcn.101987e8
add esp, 4
cmp dword [0x102557d4], 0xffffffff
jne 0x10167fc6
push str.m_flChargeBeginTime
push str.PipebombLauncherLocalData
push str.DT_WeaponPipebombLauncher
mov dword [ebp - 4], 6
call fcn.1007c680
push 0x102557d4
mov dword [0x102557c8], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10255740]
xorps xmm2, xmm2
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], 0x3f800000
mov dword [ebp - 0x18], 0
movss xmm0, dword [eax + 0xc]
mov eax, dword [0x102557c8]
subss xmm0, dword [eax + ecx]
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x18]
subss xmm0, xmm2
mulss xmm0, dword [0x1023d0a4]
comiss xmm2, xmm0
movss dword [ebp - 0x14], xmm0
cmovbe ecx, eax
lea eax, [ebp - 0x1c]
comiss xmm0, dword [0x1023d120]
movd xmm0, dword [0x1031dae0]
cvtdq2ps xmm0, xmm0
cmovbe eax, ecx
movss xmm1, dword [eax]
mulss xmm1, dword [0x1023d2f0]
addss xmm1, xmm2
comiss xmm1, xmm0
jb 0x10168055
cmp byte [0x10316b81], 0
je 0x10168055
and dword [edi + 0x24], 0xfffffffe
mov byte [0x10316b8c], 0
mov byte [0x10316b81], 0
jmp 0x10168067
or dword [edi + 0x24], 1
mov byte [0x10316b8c], 1
mov byte [0x10316b81], 1
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10320afc]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ecx + 4]
jle 0x101680bd
push 0x10320afc
call fcn.101987e8
add esp, 4
cmp dword [0x10320afc], 0xffffffff
jne 0x101680bd
push 0x10320afc
mov dword [0x10320ab8], 0
mov dword [0x10320ab4], 0x1031da60
call fcn.10198797
add esp, 4
mov ecx, esi
call fcn.10078d00
test al, al
jne 0x10168219
mov eax, dword [0x10320ab4]
mov eax, dword [eax]
test eax, eax
jne 0x101680e1
mov dword [0x10320ab8], eax
jmp 0x10168219
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10320ab8], eax
je 0x10168219
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x10316748]
cmp eax, dword [ecx + 4]
jle 0x10168150
push 0x10316748
call fcn.101987e8
add esp, 4
cmp dword [0x10316748], 0xffffffff
jne 0x10168150
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 7
call fcn.1007c590
push 0x10316748
mov dword [0x10316718], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10316718]
mov ecx, dword [0x10316738]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [eax]
mov edx, dword [ecx + 0x5f4]
mov ecx, eax
call edx
cmp eax, 0x3b
jne 0x10168219
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
or dword [edi + 0x24], 1
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10320ab0]
cmp eax, dword [ecx + 4]
jle 0x101681d0
push 0x10320ab0
call fcn.101987e8
add esp, 4
cmp dword [0x10320ab0], 0xffffffff
jne 0x101681d0
mov eax, dword [0x10255740]
push 0x10320ab0
movss xmm0, dword [eax + 0xc]
movss dword [0x10320a20], xmm0
call fcn.10198797
add esp, 4
mov eax, dword [0x10255740]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [0x10320a20]
andps xmm0, xmmword [0x1023da30]
comiss xmm0, dword [0x1023d0c4]
jbe 0x10168219
mov ecx, dword [0x102556bc]
push str.taunt
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
mov eax, dword [0x10255740]
movss xmm0, dword [eax + 0xc]
movss dword [0x10320a20], xmm0
cmp byte [0x1031d964], 0
je 0x1016823d
mov eax, dword [0x10252d58]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x30], 0
je 0x1016823d
test byte [edi + 4], 1
je 0x1016823d
or dword [edi + 0x24], 0x8000000
call fcn.1016a500
mov edx, 0xf60c4582
mov ecx, 0x1021f021
call fcn.100981d0
mov dword [ebp - 0x1c], eax
mov ecx, 0x10252d64
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.10192160
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
jne 0x101682ab
mov ecx, dword [0x102556c0]
push str.sv_cheats
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edx, 0xf60c4582
mov ecx, 0x1021f021
mov esi, eax
call fcn.100981d0
mov dword [ebp - 0x18], eax
mov ecx, 0x10252d64
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.10192160
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov edx, 0xf60c4582
mov ecx, 0x1021f021
call fcn.100981d0
mov dword [ebp - 0x14], eax
mov ecx, 0x10252d64
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.10192160
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1016830e
cmp byte [0x1031d320], 0
je 0x101682f4
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 1
call dword [eax]
mov byte [0x10316b80], 1
jmp 0x1016830e
cmp byte [0x10316b80], 0
je 0x1016830e
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 0
call dword [eax]
mov byte [0x10316b80], 0
call fcn.101691e0
mov eax, dword [0x10255374]
mov ecx, dword fs:[0x2c]
mov esi, dword [ecx + eax*4]
mov eax, dword [0x10320ac0]
cmp eax, dword [esi + 4]
jle 0x10168374
push 0x10320ac0
call fcn.101987e8
add esp, 4
cmp dword [0x10320ac0], 0xffffffff
jne 0x10168374
push str.cl_wpn_sway_interp
mov ecx, 0x10252d20
mov dword [ebp - 4], 8
call fcn.10192070
push 0x10320ac0
mov dword [0x10320a9c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10320acc]
cmp eax, dword [esi + 4]
jle 0x101683c6
push 0x10320acc
call fcn.101987e8
add esp, 4
cmp dword [0x10320acc], 0xffffffff
jne 0x101683c6
push str.cl_wpn_sway_scale
mov ecx, 0x10252d20
mov dword [ebp - 4], 9
call fcn.10192070
push 0x10320acc
mov dword [0x10320a48], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov ecx, dword [0x10320a9c]
test ecx, ecx
jne 0x101683d8
cmp dword [0x10320a48], ecx
je 0x10168431
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp byte [0x1031b1f4], 0
push ecx
je 0x10168411
movss xmm0, dword [0x1031a440]
movss dword [esp], xmm0
call dword [eax + 4]
mov ecx, dword [0x10320a48]
movss xmm0, dword [0x1031b12c]
add ecx, 0x18
push ecx
movss dword [esp], xmm0
jmp 0x1016842c
mov dword [esp], 0
call dword [eax + 4]
mov ecx, dword [0x10320a48]
add ecx, 0x18
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.10168940
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8