Function at 0x10168450
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1019aae1
push eax
mov dword fs:[0], esp
push esi
mov esi, dword [0x10253210]
push edi
test esi, esi
je 0x10168740
cmp byte [0x10316750], 0
mov eax, dword [ebp + 0xc]
jne 0x10168491
cmp byte [0x10316910], 0
jne 0x10168491
mov cl, byte [eax]
jmp 0x1016849b
cmp dword [0x10316764], 1
sete cl
mov byte [eax], cl
mov ecx, esi
call fcn.10079030
mov edi, dword [ebp + 8]
test al, al
je 0x101685af
push 0x52
mov ecx, esi
call fcn.10086220
test al, al
jne 0x101685af
push 0x4d
mov ecx, esi
call fcn.10086220
test al, al
jne 0x101685af
mov ecx, esi
call fcn.10078d00
test al, al
jne 0x101685af
mov ecx, esi
call fcn.10078c70
shr eax, 1
test al, 1
je 0x101684f7
movss xmm0, dword [0x1023d270]
jmp 0x101684ff
movss xmm0, dword [0x1023d120]
cmp byte [0x10316760], 0
movss dword [ebp + 0xc], xmm0
jne 0x101685af
cmp byte [0x10316750], 0
jne 0x101685af
push esi
call fcn.100bc310
test al, al
je 0x10168531
cmp byte [0x10252c70], 0
jmp 0x10168538
cmp byte [0x1031bcc8], 0
je 0x101685af
movss xmm0, dword [edi + 0x18]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101685af
movss xmm0, dword [edi + 0x1c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101685af
movss xmm1, dword [esi + 0x120]
movss xmm0, dword [esi + 0x124]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10076060
movss xmm1, dword [0x1023d264]
comiss xmm1, xmm0
jbe 0x101685af
mov al, byte [0x1024f540]
movss xmm0, dword [ebp + 0xc]
test al, al
jne 0x1016859c
xorps xmm0, xmmword [0x1023da60]
test al, al
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm0
sete byte [0x1024f540]
push esi
push edi
call fcn.1016a810
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10255374]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10320af8]
mov dword [ebp + 8], ecx
cmp eax, dword [ecx + 4]
jle 0x1016860c
push 0x10320af8
call fcn.101987e8
add esp, 4
cmp dword [0x10320af8], 0xffffffff
jne 0x1016860c
push 0x10320af8
mov dword [0x10320b04], 0
mov dword [0x10320b00], 0x1024f544
call fcn.10198797
add esp, 4
cmp byte [0x1031cdc8], 0
je 0x10168740
cmp byte [0x10316864], 0
je 0x10168740
mov eax, dword [0x10320b00]
cmp dword [0x10320b04], 0
sete byte [ebp + 0xf]
mov eax, dword [eax]
test eax, eax
jne 0x10168653
mov dword [0x10320b04], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x10320b04], eax
je 0x10168740
cmp byte [ebp + 0xf], 0
je 0x10168740
mov ecx, dword [0x10316784]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x10168740
mov ecx, dword [0x10316830]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x10168740
mov ecx, dword [ebp + 8]
mov eax, dword [0x103166f4]
cmp eax, dword [ecx + 4]
jle 0x101686fe
push 0x103166f4
call fcn.101987e8
add esp, 4
cmp dword [0x103166f4], 0xffffffff
jne 0x101686fe
push str.m_iClass
push str.m_PlayerClass
push str.DT_TFPlayer
mov dword [ebp - 4], 0
call fcn.1007c680
push 0x103166f4
mov dword [0x10316704], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10198797
add esp, 4
mov eax, dword [0x10316704]
cmp dword [eax + esi], 1
jne 0x10168740
mov eax, dword [0x10316700]
cmp eax, 0x2d
je 0x1016871a
cmp eax, 0x436
jne 0x10168740
mov ecx, esi
call fcn.10078c70
shr eax, 1
test al, 1
jne 0x10168740
or dword [edi + 0x24], 0xb
mov dword [edi + 0x18], 0x41200000
mov dword [edi + 0xc], 0x41c80000
mov byte [0x103168e5], 1
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 8