Function at 0x10162270
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10194991
push eax
mov dword fs:[0], esp
push esi
mov esi, dword [0x1024d1e0]
push edi
test esi, esi
je 0x10162560
cmp byte [0x10310750], 0
mov eax, dword [ebp + 0xc]
jne 0x101622b1
cmp byte [0x10310910], 0
jne 0x101622b1
mov cl, byte [eax]
jmp 0x101622bb
cmp dword [0x10310764], 1
sete cl
mov byte [eax], cl
mov ecx, esi
call fcn.10071fe0
mov edi, dword [ebp + 8]
test al, al
je 0x101623cf
push 0x52
mov ecx, esi
call fcn.1007f840
test al, al
jne 0x101623cf
push 0x4d
mov ecx, esi
call fcn.1007f840
test al, al
jne 0x101623cf
mov ecx, esi
call fcn.10071cb0
test al, al
jne 0x101623cf
mov ecx, esi
call fcn.10071c20
shr eax, 1
test al, 1
je 0x10162317
movss xmm0, dword [0x102379a8]
jmp 0x1016231f
movss xmm0, dword [0x10237858]
cmp byte [0x10310760], 0
movss dword [ebp + 0xc], xmm0
jne 0x101623cf
cmp byte [0x10310750], 0
jne 0x101623cf
push esi
call fcn.100b59d0
test al, al
je 0x10162351
cmp byte [0x1024cc40], 0
jmp 0x10162358
cmp byte [0x10315cd0], 0
je 0x101623cf
movss xmm0, dword [edi + 0x18]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101623cf
movss xmm0, dword [edi + 0x1c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101623cf
movss xmm1, dword [esi + 0x120]
movss xmm0, dword [esi + 0x124]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1006f270
movss xmm1, dword [0x1023799c]
comiss xmm1, xmm0
jbe 0x101623cf
mov al, byte [0x10249138]
movss xmm0, dword [ebp + 0xc]
test al, al
jne 0x101623bc
xorps xmm0, xmmword [0x10237f00]
test al, al
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm0
sete byte [0x10249138]
push esi
push edi
call fcn.101646b0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1024f340]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1031ab00]
mov dword [ebp + 8], ecx
cmp eax, dword [ecx + 4]
jle 0x1016242c
push 0x1031ab00
call fcn.101928b8
add esp, 4
cmp dword [0x1031ab00], 0xffffffff
jne 0x1016242c
push 0x1031ab00
mov dword [0x1031ab0c], 0
mov dword [0x1031ab08], 0x1024913c
call fcn.10192867
add esp, 4
cmp byte [0x10316dd0], 0
je 0x10162560
cmp byte [0x10310868], 0
je 0x10162560
mov eax, dword [0x1031ab08]
cmp dword [0x1031ab0c], 0
sete byte [ebp + 0xf]
mov eax, dword [eax]
test eax, eax
jne 0x10162473
mov dword [0x1031ab0c], 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 [0x1031ab0c], eax
je 0x10162560
cmp byte [ebp + 0xf], 0
je 0x10162560
mov ecx, dword [0x10310784]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x10162560
mov ecx, dword [0x10310830]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x10162560
mov ecx, dword [ebp + 8]
mov eax, dword [0x103106f4]
cmp eax, dword [ecx + 4]
jle 0x1016251e
push 0x103106f4
call fcn.101928b8
add esp, 4
cmp dword [0x103106f4], 0xffffffff
jne 0x1016251e
push str.m_iClass
push str.m_PlayerClass
push str.DT_TFPlayer
mov dword [ebp - 4], 0
call fcn.100757e0
push 0x103106f4
mov dword [0x10310704], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10192867
add esp, 4
mov eax, dword [0x10310704]
cmp dword [eax + esi], 1
jne 0x10162560
mov eax, dword [0x10310700]
cmp eax, 0x2d
je 0x1016253a
cmp eax, 0x436
jne 0x10162560
mov ecx, esi
call fcn.10071c20
shr eax, 1
test al, 1
jne 0x10162560
or dword [edi + 0x24], 0xb
mov dword [edi + 0x18], 0x41200000
mov dword [edi + 0xc], 0x41c80000
mov byte [0x103108e5], 1
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 8