Function at 0x10161790
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 0x1019a4e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x28
push esi
mov esi, dword [0x1024d1e0]
mov byte [0x1024ce2c], 0
mov byte [0x1024ce29], 0
mov dword [ebp - 0x14], esi
push edi
mov edi, dword [ebx + 8]
test esi, esi
je 0x1016203e
push esi
push edi
call fcn.10165070
cmp byte [0x10310bac], 0
je 0x10161925
cmp byte [0x10310760], 0
jne 0x10161925
mov edx, dword [0x1024d1e0]
mov dword [ebp - 0x1c], edx
test edx, edx
je 0x10161925
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1024f340]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1024f6f4]
cmp eax, dword [ecx + 4]
jle 0x10161879
push 0x1024f6f4
call fcn.101928b8
add esp, 4
cmp dword [0x1024f6f4], 0xffffffff
jne 0x10161876
mov edx, str.m_vecVelocity_0_
mov dword [ebp - 4], 0
mov ecx, str.CBasePlayer
call fcn.10071b90
push 0x1024f6f4
mov dword [0x1024f71c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov edx, dword [ebp - 0x1c]
mov ecx, dword [0x1024f71c]
xorps xmm1, xmm1
movss xmm2, dword [ecx + edx + 4]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x101618a4
movss xmm0, dword [ecx + edx]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101618a4
xorps xmm0, xmm0
jmp 0x101618e8
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x30], xmm0
movss xmm0, dword [ecx + edx]
fld qword [ebp - 0x30]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
fstp qword [ebp - 0x30]
movsd xmm0, qword [ebp - 0x30]
xorps xmm1, xmm1
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10237a00]
comiss xmm1, xmm0
jbe 0x101618e8
addss xmm0, dword [0x10237a8c]
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 [0x10310bac], 0
mov byte [0x10310a0d], 0
mov byte [0x1024ce2c], 1
mov byte [0x1024ce29], 1
push esi
push dword [ebx + 0xc]
push edi
call fcn.10162580
push esi
push edi
call fcn.10163ae0
push esi
push edi
call fcn.10163750
push esi
push edi
call fcn.10163d60
push esi
push edi
call fcn.10163f30
cmp byte [0x10316d40], 0
je 0x10161a83
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10310b6c]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ecx + 4]
jle 0x101619bf
push 0x10310b6c
call fcn.101928b8
add esp, 4
cmp dword [0x10310b6c], 0xffffffff
jne 0x101619bc
push str.m_bUsingActionSlot
push str.DT_TFPlayer
mov dword [ebp - 4], 1
call fcn.100756f0
push 0x10310b6c
mov dword [0x10310b80], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x10310b80]
mov al, byte [eax + esi]
test al, al
jne 0x10161a83
mov eax, dword [0x10310b90]
cmp eax, dword [ecx + 4]
jle 0x10161a26
push 0x10310b90
call fcn.101928b8
add esp, 4
cmp dword [0x10310b90], 0xffffffff
jne 0x10161a26
push str.m_flNextNoiseMakerTime
push str.m_Shared
push str.DT_TFPlayer
mov dword [ebp - 4], 2
call fcn.100757e0
push 0x10310b90
mov dword [0x10310bb0], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov ecx, dword [0x1024f710]
mov eax, dword [0x10310bb0]
movss xmm0, dword [ecx + 0xc]
comiss xmm0, dword [eax + esi]
jbe 0x10161a83
mov ecx, dword [0x10310e28]
push 0x20
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x10161a69
push str.use_action_slot_item_server
mov ecx, eax
call fcn.1018e950
mov edx, eax
jmp 0x10161a6b
xor edx, edx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x1024f68c]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1fc]
call eax
cmp byte [0x10317a8c], 0
je 0x10161b6c
mov ecx, dword [0x1024f68c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10161b6c
mov ecx, esi
call fcn.10071cb0
test al, al
je 0x10161b6c
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1031aadc]
cmp eax, dword [ecx + 4]
jle 0x10161b16
push 0x1031aadc
call fcn.101928b8
add esp, 4
cmp dword [0x1031aadc], 0xffffffff
jne 0x10161b16
xorps xmm0, xmm0
lea ecx, [ebp - 0x30]
movlpd qword [0x1031aa60], xmm0
call fcn.100865c0
push 0x1031aadc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x1031aa60], ecx
mov dword [0x1031aa64], eax
call fcn.10192867
add esp, 4
lea ecx, [ebp - 0x30]
call fcn.100865c0
mov ecx, dword [ebp - 0x30]
sub ecx, dword [0x1031aa60]
mov eax, dword [ebp - 0x2c]
sbb eax, dword [0x1031aa64]
mov dword [ebp - 0x2c], eax
js 0x10161b6c
jg 0x10161b3f
cmp ecx, 0x77359400
jb 0x10161b6c
lea ecx, [ebp - 0x28]
call fcn.100865c0
push str.extendfreeze
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x1031aa60], ecx
mov ecx, dword [0x1024f68c]
mov dword [0x1031aa64], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
push esi
push edi
call fcn.10163340
cmp byte [0x10317178], 0
je 0x10161c47
mov ecx, esi
call fcn.10071cb0
test al, al
jne 0x10161c47
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10310850]
cmp eax, dword [ecx + 4]
jle 0x10161bf0
push 0x10310850
call fcn.101928b8
add esp, 4
cmp dword [0x10310850], 0xffffffff
jne 0x10161bf0
push str.m_iHealth
push str.DT_BasePlayer
mov dword [ebp - 4], 4
call fcn.100756f0
push 0x10310850
mov dword [0x10310874], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov eax, dword [0x10310874]
mov ecx, dword [ebp - 0x14]
mov esi, dword [eax + esi]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1ac]
call eax
movd xmm1, dword [0x10317058]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mulss xmm1, dword [0x10237774]
cvtdq2ps xmm0, xmm0
movd xmm2, esi
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm0
comiss xmm1, xmm2
jb 0x10161c44
mov ecx, dword [0x1024f68c]
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.10162a00
push esi
push ecx
call fcn.10164bf0
push esi
push edi
call fcn.101654d0
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1031ab14]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ecx + 4]
jle 0x10161cb2
push 0x1031ab14
call fcn.101928b8
add esp, 4
cmp dword [0x1031ab14], 0xffffffff
jne 0x10161cb2
push 0x1031ab14
mov dword [0x1031ab38], 0
mov dword [0x1031ab34], 0x10317130
call fcn.10192867
add esp, 4
cmp byte [0x10310868], 0
je 0x10161e98
mov eax, dword [0x1031ab34]
mov eax, dword [eax]
test eax, eax
jne 0x10161cd4
mov dword [0x1031ab38], eax
jmp 0x10161e98
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x1031ab38], eax
je 0x10161e98
mov ecx, esi
call fcn.10071cb0
test al, al
jne 0x10161e98
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x10310748]
cmp eax, dword [ecx + 4]
jle 0x10161d52
push 0x10310748
call fcn.101928b8
add esp, 4
cmp dword [0x10310748], 0xffffffff
jne 0x10161d52
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 5
call fcn.100756f0
push 0x10310748
mov dword [0x10310718], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov eax, dword [0x10310718]
mov ecx, dword [0x10310738]
mov edx, dword [eax + esi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.1008f690
test eax, eax
je 0x10161e98
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x5f4]
mov ecx, eax
call edx
cmp eax, 0x18
jne 0x10161e98
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x1024f7a4]
cmp eax, dword [ecx + 4]
jle 0x10161dec
push 0x1024f7a4
call fcn.101928b8
add esp, 4
cmp dword [0x1024f7a4], 0xffffffff
jne 0x10161dec
push str.m_flChargeBeginTime
push str.PipebombLauncherLocalData
push str.DT_WeaponPipebombLauncher
mov dword [ebp - 4], 6
call fcn.100757e0
push 0x1024f7a4
mov dword [0x1024f798], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov ecx, dword [0x1024f710]
lea edx, [ebp - 0x1c]
mov eax, dword [0x1024f798]
xorps xmm2, xmm2
mov dword [ebp - 0x24], 0x3f800000
mov dword [ebp - 0x1c], 0
movss xmm0, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x14]
subss xmm0, dword [eax + ecx]
lea ecx, [ebp - 0x14]
subss xmm0, xmm2
mulss xmm0, dword [0x102377dc]
comiss xmm2, xmm0
movss dword [ebp - 0x14], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x24]
comiss xmm0, dword [0x10237858]
movd xmm0, dword [0x10317ae8]
cvtdq2ps xmm0, xmm0
seta al
test al, al
cmove ecx, edx
movss xmm1, dword [ecx]
mulss xmm1, dword [0x10237a28]
addss xmm1, xmm2
comiss xmm1, xmm0
jb 0x10161e86
cmp byte [0x10310b84], 0
je 0x10161e86
and dword [edi + 0x24], 0xfffffffe
mov byte [0x10310b8c], 0
mov byte [0x10310b84], 0
jmp 0x10161e98
or dword [edi + 0x24], 1
mov byte [0x10310b8c], 1
mov byte [0x10310b84], 1
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1031ab04]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ecx + 4]
jle 0x10161eee
push 0x1031ab04
call fcn.101928b8
add esp, 4
cmp dword [0x1031ab04], 0xffffffff
jne 0x10161eee
push 0x1031ab04
mov dword [0x1031aac0], 0
mov dword [0x1031aabc], 0x10317a68
call fcn.10192867
add esp, 4
mov ecx, esi
call fcn.10071cb0
test al, al
jne 0x1016203e
mov eax, dword [0x1031aabc]
mov eax, dword [eax]
test eax, eax
jne 0x10161f12
mov dword [0x1031aac0], eax
jmp 0x1016203e
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x1031aac0], eax
je 0x1016203e
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x10310748]
cmp eax, dword [ecx + 4]
jle 0x10161f81
push 0x10310748
call fcn.101928b8
add esp, 4
cmp dword [0x10310748], 0xffffffff
jne 0x10161f81
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 7
call fcn.100756f0
push 0x10310748
mov dword [0x10310718], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov eax, dword [0x10310718]
mov ecx, dword [0x10310738]
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 0x1016203e
mov ecx, dword [ebp - 0x1c]
or dword [edi + 0x24], 1
mov eax, dword [0x1031aab8]
cmp eax, dword [ecx + 4]
jle 0x10161ff5
push 0x1031aab8
call fcn.101928b8
add esp, 4
cmp dword [0x1031aab8], 0xffffffff
jne 0x10161ff5
mov eax, dword [0x1024f710]
push 0x1031aab8
movss xmm0, dword [eax + 0xc]
movss dword [0x1031aa28], xmm0
call fcn.10192867
add esp, 4
mov eax, dword [0x1024f710]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [0x1031aa28]
andps xmm0, xmmword [0x10237ed0]
comiss xmm0, dword [0x102377fc]
jbe 0x1016203e
mov ecx, dword [0x1024f68c]
push str.taunt
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
mov eax, dword [0x1024f710]
movss xmm0, dword [eax + 0xc]
movss dword [0x1031aa28], xmm0
cmp byte [0x1031796c], 0
je 0x10162062
mov eax, dword [0x1024cd28]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x30], 0
je 0x10162062
test byte [edi + 4], 1
je 0x10162062
or dword [edi + 0x24], 0x8000000
call fcn.10164390
mov edx, 0xf60c4582
mov ecx, 0x10218f49
call fcn.10091b30
mov dword [ebp - 0x24], eax
mov ecx, 0x1024cd34
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.1018c110
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
jne 0x101620d0
mov ecx, dword [0x1024f690]
push str.sv_cheats
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edx, 0xf60c4582
mov ecx, 0x10218f49
mov esi, eax
call fcn.10091b30
mov dword [ebp - 0x1c], eax
mov ecx, 0x1024cd34
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1018c110
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov edx, 0xf60c4582
mov ecx, 0x10218f49
call fcn.10091b30
mov dword [ebp - 0x2c], eax
mov ecx, 0x1024cd34
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.1018c110
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10162133
cmp byte [0x10317328], 0
je 0x10162119
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 1
call dword [eax]
mov byte [0x10310b7c], 1
jmp 0x10162133
cmp byte [0x10310b7c], 0
je 0x10162133
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 0
call dword [eax]
mov byte [0x10310b7c], 0
call fcn.10163080
mov eax, dword [0x1024f340]
mov ecx, dword fs:[0x2c]
mov esi, dword [ecx + eax*4]
mov eax, dword [0x1031aac8]
cmp eax, dword [esi + 4]
jle 0x10162199
push 0x1031aac8
call fcn.101928b8
add esp, 4
cmp dword [0x1031aac8], 0xffffffff
jne 0x10162199
push str.cl_wpn_sway_interp
mov ecx, 0x1024ccf0
mov dword [ebp - 4], 8
call fcn.1018c020
push 0x1031aac8
mov dword [0x1031aaa4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov eax, dword [0x1031aad4]
cmp eax, dword [esi + 4]
jle 0x101621eb
push 0x1031aad4
call fcn.101928b8
add esp, 4
cmp dword [0x1031aad4], 0xffffffff
jne 0x101621eb
push str.cl_wpn_sway_scale
mov ecx, 0x1024ccf0
mov dword [ebp - 4], 9
call fcn.1018c020
push 0x1031aad4
mov dword [0x1031aa50], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov ecx, dword [0x1031aaa4]
test ecx, ecx
jne 0x101621fd
cmp dword [0x1031aa50], ecx
je 0x10162256
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp byte [0x103151fc], 0
push ecx
je 0x10162236
movss xmm0, dword [0x10314448]
movss dword [esp], xmm0
call dword [eax + 4]
mov ecx, dword [0x1031aa50]
movss xmm0, dword [0x10315134]
add ecx, 0x18
push ecx
movss dword [esp], xmm0
jmp 0x10162251
mov dword [esp], 0
call dword [eax + 4]
mov ecx, dword [0x1031aa50]
add ecx, 0x18
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.10162760
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