Function at 0x1014e7e0
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
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10185760
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x28
mov byte [0x1023477c], 0
mov byte [0x10234779], 0
push esi
mov esi, dword [ebx + 8]
push edi
mov edi, dword [0x10234298]
test edi, edi
je 0x1014f0d4
push edi
push esi
call fcn.101520c0
cmp byte [0x102ee534], 0
je 0x1014e983
cmp byte [0x10236f3a], 0
jne 0x1014e983
mov edx, dword [0x10234298]
mov dword [ebp - 0x18], edx
test edx, edx
je 0x1014e983
mov eax, dword [0x10236a90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10236e44]
cmp eax, dword [ecx + 4]
jle 0x1014e8c6
push 0x10236e44
call fcn.1017dd04
add esp, 4
cmp dword [0x10236e44], 0xffffffff
jne 0x1014e8c3
mov edx, str.m_vecVelocity_0_
mov dword [ebp - 4], 0
mov ecx, str.CBasePlayer
call fcn.10066860
push 0x10236e44
mov dword [0x10236e6c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov edx, dword [ebp - 0x18]
mov ecx, dword [0x10236e6c]
xorps xmm2, xmm2
movss xmm1, dword [ecx + edx + 4]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jp 0x1014e8f1
movss xmm0, dword [ecx + edx]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1014e8f1
xorps xmm0, xmm0
jmp 0x1014e935
cvtps2pd xmm0, xmm1
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 [0x1021ead8]
comiss xmm1, xmm0
jbe 0x1014e935
addss xmm0, dword [0x1021eb68]
cmp byte [0x10236f39], 0
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], 0xc2b40000
movss dword [esi + 0x10], xmm0
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov byte [0x102ee534], 0
mov byte [0x102ee3a0], 0
mov byte [0x1023477c], 1
mov byte [0x10234779], 1
jne 0x1014e986
mov byte [eax], 0
jmp 0x1014e986
mov eax, dword [ebx + 0xc]
push edi
push eax
push esi
call fcn.1014f790
push edi
push esi
call fcn.10150d20
push edi
push esi
call fcn.10150990
cmp byte [0x102f471c], 0
je 0x1014eaf1
mov ecx, edi
call fcn.10066980
test al, al
jne 0x1014eaf1
mov ecx, edi
call fcn.1014e1e0
test al, al
jne 0x1014eaf1
mov ecx, edi
call fcn.100743b0
shr eax, 0x12
test al, 1
jne 0x1014eaf1
mov ecx, edi
call fcn.100743b0
shr eax, 0xd
test al, 1
jne 0x1014eaf1
mov eax, dword [edi + 0x1a4]
cmp eax, 8
je 0x1014eaf1
cmp eax, 9
je 0x1014eaf1
cmp eax, 0xa
je 0x1014eaf1
mov eax, dword [esi + 0x24]
shr eax, 1
and al, 1
mov dword [ebp - 0x18], eax
je 0x1014ea27
mov ecx, edi
call fcn.10066ca0
mov byte [ebp - 0x11], 1
test al, al
jne 0x1014ea2b
mov byte [ebp - 0x11], 0
mov eax, dword [0x10236a90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x102f7660]
cmp eax, dword [ecx + 4]
jle 0x1014ea72
push 0x102f7660
call fcn.1017dd04
add esp, 4
cmp dword [0x102f7660], 0xffffffff
jne 0x1014ea72
mov al, byte [ebp - 0x11]
push 0x102f7660
mov byte [0x102f76f0], al
call fcn.1017dcb3
add esp, 4
cmp byte [ebp - 0x11], 0
je 0x1014ea8a
cmp byte [0x102ee52c], 0
jne 0x1014ead0
mov byte [0x102ee52c], 1
jmp 0x1014eaea
mov cl, byte [0x102f76f0]
test cl, cl
je 0x1014eadd
mov eax, dword [ebp - 0x18]
test al, al
je 0x1014eabc
mov ecx, edi
call fcn.10066ca0
test al, al
je 0x1014ead0
mov ecx, edi
call fcn.100668f0
shr eax, 1
test al, 1
jne 0x1014ead0
mov cl, byte [0x102f76f0]
mov eax, dword [ebp - 0x18]
test cl, cl
je 0x1014eadd
test al, al
jne 0x1014eaf1
mov byte [0x102ee52c], al
mov byte [0x102f76f0], al
jmp 0x1014eaf1
and dword [esi + 0x24], 0xfffffffd
mov byte [0x102ee52c], 0
jmp 0x1014eaf1
cmp byte [ebp - 0x18], 0
je 0x1014eaf1
mov byte [0x102ee52c], 0
mov byte [0x102f76f0], 1
push edi
push esi
call fcn.10150fa0
cmp byte [0x102f3a60], 0
je 0x1014ec30
mov eax, dword [0x10236a90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x102ee4f4]
mov dword [ebp - 0x18], ecx
cmp eax, dword [ecx + 4]
jle 0x1014eb6c
push 0x102ee4f4
call fcn.1017dd04
add esp, 4
cmp dword [0x102ee4f4], 0xffffffff
jne 0x1014eb69
push str.m_bUsingActionSlot
push str.DT_TFPlayer
mov dword [ebp - 4], 1
call fcn.1006a3a0
push 0x102ee4f4
mov dword [0x102ee50c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov ecx, dword [ebp - 0x18]
mov eax, dword [0x102ee50c]
mov al, byte [eax + edi]
test al, al
jne 0x1014ec30
mov eax, dword [0x102ee518]
cmp eax, dword [ecx + 4]
jle 0x1014ebd3
push 0x102ee518
call fcn.1017dd04
add esp, 4
cmp dword [0x102ee518], 0xffffffff
jne 0x1014ebd3
push str.m_flNextNoiseMakerTime
push str.m_Shared
push str.DT_TFPlayer
mov dword [ebp - 4], 2
call fcn.1006a490
push 0x102ee518
mov dword [0x102ee538], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov ecx, dword [0x10236e60]
mov eax, dword [0x102ee538]
movss xmm0, dword [ecx + 0xc]
comiss xmm0, dword [eax + edi]
jbe 0x1014ec30
mov ecx, dword [0x102ee78c]
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 0x1014ec16
push str.use_action_slot_item_server
mov ecx, eax
call fcn.10179f60
mov edx, eax
jmp 0x1014ec18
xor edx, edx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x10236ddc]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1fc]
call eax
cmp byte [0x102f4860], 0
je 0x1014ed19
mov ecx, dword [0x10236ddc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1014ed19
mov ecx, edi
call fcn.10066980
test al, al
je 0x1014ed19
mov eax, dword [0x10236a90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x102f76a4]
cmp eax, dword [ecx + 4]
jle 0x1014ecc3
push 0x102f76a4
call fcn.1017dd04
add esp, 4
cmp dword [0x102f76a4], 0xffffffff
jne 0x1014ecc3
xorps xmm0, xmm0
lea ecx, [ebp - 0x30]
movlpd qword [0x102f7628], xmm0
call fcn.10078510
push 0x102f76a4
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x102f7628], ecx
mov dword [0x102f762c], eax
call fcn.1017dcb3
add esp, 4
lea ecx, [ebp - 0x30]
call fcn.10078510
mov ecx, dword [ebp - 0x30]
sub ecx, dword [0x102f7628]
mov eax, dword [ebp - 0x2c]
sbb eax, dword [0x102f762c]
mov dword [ebp - 0x2c], eax
js 0x1014ed19
jg 0x1014ecec
cmp ecx, 0x77359400
jb 0x1014ed19
lea ecx, [ebp - 0x28]
call fcn.10078510
push str.extendfreeze
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x102f7628], ecx
mov ecx, dword [0x10236ddc]
mov dword [0x102f762c], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
push edi
push esi
call fcn.10150580
cmp byte [0x102f3e98], 0
je 0x1014edf3
mov ecx, edi
call fcn.10066980
test al, al
jne 0x1014edf3
mov eax, dword [0x10236a90]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x1023703c]
cmp eax, dword [ecx + 4]
jle 0x1014ed9d
push 0x1023703c
call fcn.1017dd04
add esp, 4
cmp dword [0x1023703c], 0xffffffff
jne 0x1014ed9d
push str.m_iHealth
push str.DT_BasePlayer
mov dword [ebp - 4], 4
call fcn.1006a3a0
push 0x1023703c
mov dword [0x10237064], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x10237064]
mov ecx, edi
mov esi, dword [eax + edi]
mov eax, dword [edi]
mov eax, dword [eax + 0x1ac]
call eax
movd xmm1, dword [0x102f3d78]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mulss xmm1, dword [0x1021e880]
cvtdq2ps xmm0, xmm0
movd xmm2, esi
cvtdq2ps xmm2, xmm2
mulss xmm1, xmm0
comiss xmm1, xmm2
jb 0x1014edf0
mov ecx, dword [0x10236ddc]
push str.retry
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
mov esi, dword [ebx + 8]
push esi
push edi
call fcn.1014fc20
push edi
push ecx
call fcn.10151c40
push edi
push esi
call fcn.10152510
mov eax, dword [0x10236a90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + eax*4]
mov eax, dword [0x102f76dc]
cmp eax, dword [ecx + 4]
jle 0x1014ee5b
push 0x102f76dc
call fcn.1017dd04
add esp, 4
cmp dword [0x102f76dc], 0xffffffff
jne 0x1014ee5b
push 0x102f76dc
mov dword [0x102f7700], 0
mov dword [0x102f76fc], 0x102f3e50
call fcn.1017dcb3
add esp, 4
cmp byte [0x10237054], 0
je 0x1014f05e
mov eax, dword [0x102f76fc]
mov eax, dword [eax]
test eax, eax
jne 0x1014ee7d
mov dword [0x102f7700], eax
jmp 0x1014f05e
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f7700], eax
je 0x1014f05e
mov ecx, edi
call fcn.10066980
test al, al
jne 0x1014f05e
mov edx, dword [0x10236a90]
mov esi, dword fs:[0x2c]
mov eax, dword [0x10236f08]
mov ecx, dword [esi + edx*4]
cmp eax, dword [ecx + 4]
jle 0x1014ef08
push 0x10236f08
call fcn.1017dd04
add esp, 4
cmp dword [0x10236f08], 0xffffffff
jne 0x1014ef08
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 5
call fcn.1006a3a0
push 0x10236f08
mov dword [0x10236ed0], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x10236ed0]
mov ecx, dword [0x10236ef0]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.10081540
test eax, eax
je 0x1014f05e
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x5f4]
mov ecx, eax
call edx
cmp eax, 0x18
jne 0x1014f05e
mov esi, dword fs:[0x2c]
mov edx, dword [0x10236a90]
mov eax, dword [0x10237010]
mov ecx, dword [esi + edx*4]
mov esi, dword [ebx + 8]
cmp eax, dword [ecx + 4]
jle 0x1014efb2
push 0x10237010
call fcn.1017dd04
add esp, 4
cmp dword [0x10237010], 0xffffffff
jne 0x1014efb2
push str.m_flChargeBeginTime
push str.PipebombLauncherLocalData
push str.DT_WeaponPipebombLauncher
mov dword [ebp - 4], 6
call fcn.1006a490
push 0x10237010
mov dword [0x10237008], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov ecx, dword [0x10236e60]
lea edx, [ebp - 0x18]
mov eax, dword [0x10237008]
xorps xmm2, xmm2
mov dword [ebp - 0x24], 0x3f800000
movss xmm0, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x18], 0
subss xmm0, dword [ecx + eax]
lea ecx, [ebp - 0x20]
subss xmm0, xmm2
mulss xmm0, dword [0x1021e8c8]
comiss xmm2, xmm0
movss dword [ebp - 0x20], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x24]
comiss xmm0, dword [0x1021e948]
movd xmm0, dword [0x102f48bc]
cvtdq2ps xmm0, xmm0
seta al
test al, al
cmove ecx, edx
movss xmm1, dword [ecx]
mulss xmm1, dword [0x1021eb00]
addss xmm1, xmm2
comiss xmm1, xmm0
jb 0x1014f04c
cmp byte [0x102ee510], 0
je 0x1014f04c
and dword [esi + 0x24], 0xfffffffe
mov byte [0x102ee51c], 0
mov byte [0x102ee510], 0
jmp 0x1014f05e
or dword [esi + 0x24], 1
mov byte [0x102ee51c], 1
mov byte [0x102ee510], 1
mov esi, dword fs:[0x2c]
mov edx, dword [0x10236a90]
mov eax, dword [0x102f76cc]
mov ecx, dword [esi + edx*4]
mov esi, dword [ebx + 8]
cmp eax, dword [ecx + 4]
jle 0x1014f0b5
push 0x102f76cc
call fcn.1017dd04
add esp, 4
cmp dword [0x102f76cc], 0xffffffff
jne 0x1014f0b5
push 0x102f76cc
mov dword [0x102f7688], 0
mov dword [0x102f7684], 0x102f483c
call fcn.1017dcb3
add esp, 4
mov ecx, edi
call fcn.10066980
test al, al
jne 0x1014f0d4
mov eax, dword [0x102f7684]
mov eax, dword [eax]
test eax, eax
jne 0x1014f1c0
mov dword [0x102f7688], eax
mov edi, dword [0x10236a90]
cmp byte [0x102f4740], 0
je 0x1014f0fe
mov eax, dword [0x10233e00]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x30], 0
je 0x1014f0fe
test byte [esi + 4], 1
je 0x1014f0fe
or dword [esi + 0x24], 0x8000000
call fcn.10151400
mov edx, 0xf60c4582
mov ecx, 0x102013ad
call fcn.10083900
mov dword [ebp - 0x24], eax
mov ecx, 0x10233e0c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.101777d0
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
jne 0x1014f16c
mov ecx, dword [0x10236de0]
push str.sv_cheats
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edx, 0xf60c4582
mov ecx, 0x102013ad
mov esi, eax
call fcn.10083900
mov dword [ebp - 0x20], eax
mov ecx, 0x10233e0c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.101777d0
mov eax, dword [eax]
mov dword [eax + 0xc], esi
mov edx, 0xf60c4582
mov ecx, 0x102013ad
call fcn.10083900
mov dword [ebp - 0x2c], eax
mov ecx, 0x10233e0c
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.101777d0
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1014f32c
cmp byte [0x102f4048], 0
je 0x1014f312
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 1
call dword [eax]
mov byte [0x102ee508], 1
jmp 0x1014f32c
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f7688], eax
je 0x1014f0d4
mov esi, dword fs:[0x2c]
mov edx, dword [0x10236a90]
mov eax, dword [0x10236f08]
mov ecx, dword [esi + edx*4]
mov esi, dword [ebx + 8]
cmp eax, dword [ecx + 4]
jle 0x1014f23f
push 0x10236f08
call fcn.1017dd04
add esp, 4
cmp dword [0x10236f08], 0xffffffff
jne 0x1014f23f
push str.m_hActiveWeapon
push str.DT_BaseCombatCharacter
mov dword [ebp - 4], 7
call fcn.1006a3a0
push 0x10236f08
mov dword [0x10236ed0], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x10236ed0]
mov ecx, dword [0x10236ef0]
mov edx, dword [eax + edi]
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
mov edi, dword [0x10236a90]
cmp eax, 0x3b
jne 0x1014f0da
mov edx, dword fs:[0x2c]
or dword [esi + 0x24], 1
mov eax, dword [0x102f7680]
mov ecx, dword [edx + edi*4]
cmp eax, dword [ecx + 4]
jle 0x1014f2c0
push 0x102f7680
call fcn.1017dd04
add esp, 4
cmp dword [0x102f7680], 0xffffffff
jne 0x1014f2c0
mov eax, dword [0x10236e60]
push 0x102f7680
movss xmm0, dword [eax + 0xc]
movss dword [0x102f75f0], xmm0
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x10236e60]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [0x102f75f0]
andps xmm0, xmmword [0x1021ef10]
comiss xmm0, dword [0x1021e8ec]
jbe 0x1014f0da
mov ecx, dword [0x10236ddc]
push str.taunt
mov eax, dword [ecx]
mov eax, dword [eax + 0x1a8]
call eax
mov eax, dword [0x10236e60]
movss xmm0, dword [eax + 0xc]
movss dword [0x102f75f0], xmm0
jmp 0x1014f0da
cmp byte [0x102ee508], 0
je 0x1014f32c
mov eax, dword [ecx + 0x18]
add ecx, 0x18
push 0
call dword [eax]
mov byte [0x102ee508], 0
call fcn.101502b0
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi*4]
mov eax, dword [0x102f7690]
cmp eax, dword [esi + 4]
jle 0x1014f38c
push 0x102f7690
call fcn.1017dd04
add esp, 4
cmp dword [0x102f7690], 0xffffffff
jne 0x1014f38c
push str.cl_wpn_sway_interp
mov ecx, 0x10233dc8
mov dword [ebp - 4], 8
call fcn.101776e0
push 0x102f7690
mov dword [0x102f766c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x102f769c]
cmp eax, dword [esi + 4]
jle 0x1014f3de
push 0x102f769c
call fcn.1017dd04
add esp, 4
cmp dword [0x102f769c], 0xffffffff
jne 0x1014f3de
push str.cl_wpn_sway_scale
mov ecx, 0x10233dc8
mov dword [ebp - 4], 9
call fcn.101776e0
push 0x102f769c
mov dword [0x102f7618], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov ecx, dword [0x102f766c]
test ecx, ecx
jne 0x1014f3f0
cmp dword [0x102f7618], ecx
je 0x1014f449
mov eax, dword [ecx + 0x18]
add ecx, 0x18
cmp byte [0x102f1f5c], 0
push ecx
je 0x1014f429
movss xmm0, dword [0x102f1238]
movss dword [esp], xmm0
call dword [eax + 4]
mov ecx, dword [0x102f7618]
movss xmm0, dword [0x102f1eb8]
add ecx, 0x18
push ecx
movss dword [esp], xmm0
jmp 0x1014f444
mov dword [esp], 0
call dword [eax + 4]
mov ecx, dword [0x102f7618]
add ecx, 0x18
push ecx
mov dword [esp], 0
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.1014f980
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