Function at 0x1009e940
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ee735
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x10114008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
vmovss dword [ebp - 0x1c], xmm1
mov dword [ebp - 4], 0
mov edi, dword [0x10118020]
test edi, edi
je 0x1009ed08
mov eax, dword fs:[0x2c]
mov esi, edi
mov ecx, dword [0x10117f54]
mov ebx, dword [eax + ecx*4]
mov eax, dword [0x10117ff0]
cmp eax, dword [ebx + 4]
jle 0x1009e9e8
push 0x10117ff0
call fcn.100e3eef
add esp, 4
cmp dword [0x10117ff0], 0xffffffff
jne 0x1009e9e2
push str.m_lifeState
push str.CBasePlayer
mov byte [ebp - 4], 1
call fcn.100e2fc0
push 0x10117ff0
mov dword [0x10117fb0], eax
mov byte [ebp - 4], 0
call fcn.100e3ea5
add esp, 4
mov edi, dword [0x10118020]
mov eax, dword [0x10117fb0]
cmp byte [eax + esi], 0
jne 0x1009ed08
mov eax, dword [0x1011984c]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x30]
cmp byte [ecx], 0
je 0x1009ed08
mov eax, dword [0x1011981c]
cmp dword [eax + 8], 0
jg 0x1009ed08
cmp dword [0x10117fa0], 0
je 0x1009ed08
mov eax, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
sub eax, 1
je 0x1009eb2e
sub eax, 1
je 0x1009eb24
sub eax, 1
jne 0x1009ea9f
mov eax, dword [0x1011a6b0]
cmp eax, dword [ebx + 4]
jle 0x1009ea90
push 0x1011a6b0
call fcn.100e3eef
add esp, 4
cmp dword [0x1011a6b0], 0xffffffff
jne 0x1009ea90
push str.RandomInt
push str.vstdlib.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x1011a6b0
mov dword [0x1011a6a4], eax
call fcn.100e3ea5
add esp, 4
push 4
push 0
call dword [0x1011a6a4]
add esp, 8
mov esi, eax
mov eax, 1
cmp esi, eax
cmovl esi, eax
mov eax, dword [0x1011984c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x30]
cmp dword [eax + 0x10], 2
jne 0x1009eae1
mov ecx, dword [0x10117f9c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x18], eax
call dword [ebp - 0x18]
vmovss xmm0, dword [0x10118238]
fstp dword [ebp - 0x18]
vcomiss xmm0, dword [ebp - 0x18]
ja 0x1009ecff
mov eax, dword [0x1011984c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x30]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1009ed08
cmp dword [0x101181c8], 0
jne 0x1009ebff
push str.Team_Fortress_2
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
mov dword [0x101181c8], eax
jmp 0x1009ed08
mov esi, 8
jmp 0x1009eaa9
mov eax, dword [0x10118084]
cmp eax, dword [ebx + 4]
jle 0x1009eb7a
push 0x10118084
call fcn.100e3eef
add esp, 4
cmp dword [0x10118084], 0xffffffff
jne 0x1009eb7a
push str.m_vecVelocity_0_
push str.CBasePlayer
mov byte [ebp - 4], 2
call fcn.100e2fc0
push 0x10118084
mov dword [0x10118098], eax
mov byte [ebp - 4], 0
call fcn.100e3ea5
add esp, 4
mov eax, dword [0x10118098]
vmovss xmm0, dword [eax + edi]
vmovss xmm2, dword [eax + edi + 4]
vmulss xmm1, xmm0, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
call fcn.10021260
mov eax, dword [0x10118044]
vmulss xmm1, xmm0, dword [eax + 0x1c]
vxorps xmm0, xmm0, xmm0
vcomiss xmm0, xmm1
jb 0x1009ebb7
vmovss xmm1, dword [0x10102c90]
vmovss xmm0, dword [0x10102dcc]
vdivss xmm0, xmm0, xmm1
call fcn.1002a130
vcvttss2si ecx, xmm0
cmp ecx, 0x16
jle 0x1009ebd8
mov ecx, 0x16
jmp 0x1009ebdf
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov eax, ecx
cdq
sub eax, edx
mov esi, eax
mov eax, dword [0x1011981c]
sar esi, 1
cmp dword [eax], ecx
jge 0x1009ea9f
mov esi, 1
jmp 0x1009eaa9
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x101181c8]
jne 0x1009ed08
mov ecx, dword [0x10118038]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x1009ed08
mov eax, dword [0x1011981c]
cmp dword [eax], esi
jl 0x1009ed08
xor edi, edi
mov byte [eax + 0x16], 1
test esi, esi
jle 0x1009ecff
mov bl, byte [ebp + 8]
nop word [eax + eax]
vmovss xmm0, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x30]
mov byte [ebp - 0x14], bl
vmovss dword [ebp - 0x18], xmm0
test ecx, ecx
je 0x1009ed40
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 0x18]
push edx
call dword [eax + 8]
mov eax, dword [0x1011981c]
dec dword [eax]
mov eax, dword [0x1011981c]
inc dword [eax + 4]
mov eax, dword [0x1011981c]
mov dword [eax + 0xc], 0x1a
lea eax, [esi - 1]
cmp edi, eax
mov eax, dword [0x1011981c]
sete cl
mov eax, dword [eax + 0x18]
mov byte [eax], cl
mov eax, dword [0x1011984c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x30]
cmp dword [eax + 0x10], 2
jne 0x1009ecf6
mov ecx, dword [0x10117f9c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x20], eax
call dword [ebp - 0x20]
mov eax, dword [0x10118044]
vmovss xmm0, dword [0x10102bfc]
fadd dword [0x10102c0c]
vdivss xmm0, xmm0, dword [eax + 0x1c]
mov eax, dword [0x1011981c]
vaddss xmm0, xmm0, dword [0x10102c68]
vcvttss2si ecx, xmm0
fstp dword [0x10118238]
mov dword [eax + 0xc], ecx
inc edi
cmp edi, esi
jl 0x1009ec50
mov eax, dword [0x1011981c]
mov byte [eax + 0x16], 0
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x1009ed20
mov edx, dword [ecx]
lea eax, [ebp + 0xc]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 0x2c
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3