Function at 0x100ea3a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101292b1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push edi
mov edi, dword [0x101c93a8]
test edi, edi
je 0x100ea663
cmp byte [0x101cf550], 0
jne 0x100ea3e1
cmp byte [0x101cf6f6], 0
jne 0x100ea3e1
mov eax, dword [ebp + 0xc]
mov cl, byte [eax]
jmp 0x100ea3ee
cmp dword [0x101cf58c], 1
mov eax, dword [ebp + 0xc]
sete cl
mov byte [eax], cl
mov ecx, edi
call fcn.10010a70
shr eax, 1
test al, 1
je 0x100ea407
movss xmm0, dword [0x10197824]
jmp 0x100ea40f
movss xmm0, dword [0x101976c8]
cmp byte [0x101cf589], 0
push esi
mov esi, dword [ebp + 8]
movss dword [ebp - 0x10], xmm0
jne 0x100ea4b9
cmp byte [0x101cf550], 0
jne 0x100ea4b9
cmp byte [0x102b7485], 0
jne 0x100ea4b9
movss xmm0, dword [esi + 0x18]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100ea4b9
movss xmm0, dword [esi + 0x1c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100ea4b9
movss xmm1, dword [edi + 0x120]
movss xmm0, dword [edi + 0x124]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1000f940
movss xmm1, dword [0x10197818]
comiss xmm1, xmm0
jbe 0x100ea4b9
cmp byte [0x102b7688], 0
je 0x100ea4b9
mov al, byte [0x101a741b]
movss xmm0, dword [ebp - 0x10]
test al, al
jne 0x100ea4a6
xorps xmm0, xmmword [0x10197f90]
test al, al
movss dword [esi + 0x18], xmm0
movss dword [esi + 0x1c], xmm0
sete byte [0x101a741b]
push edi
push esi
call fcn.100ec7a0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101cf110]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102ba0e8]
mov dword [ebp - 0x10], ecx
cmp eax, dword [ecx + 4]
jle 0x100ea516
push 0x102ba0e8
call fcn.10121ee8
add esp, 4
cmp dword [0x102ba0e8], 0xffffffff
jne 0x100ea516
push 0x102ba0e8
mov dword [0x102ba0f4], 0
mov dword [0x102ba0f0], 0x101a741c
call fcn.10121e9e
add esp, 4
cmp byte [0x102b765d], 0
je 0x100ea63d
cmp byte [0x101cf6b0], 0
je 0x100ea63d
mov eax, dword [0x102ba0f0]
cmp dword [0x102ba0f4], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100ea550
mov dword [0x102ba0f4], eax
jmp 0x100ea63d
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102ba0f4], eax
je 0x100ea63d
cmp byte [ebp + 0xb], 0
je 0x100ea63d
mov ecx, dword [0x101cf5b8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x100ea63d
mov ecx, dword [0x101cf678]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x100ea63d
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x101cf580]
cmp eax, dword [ecx + 4]
jle 0x100ea5fb
push 0x101cf580
call fcn.10121ee8
add esp, 4
cmp dword [0x101cf580], 0xffffffff
jne 0x100ea5fb
push str.m_iClass
push str.m_PlayerClass
push str.DT_TFPlayer
mov dword [ebp - 4], 0
call fcn.10014980
push 0x101cf580
mov dword [0x101cf590], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10121e9e
add esp, 4
mov eax, dword [0x101cf590]
cmp dword [eax + edi], 1
jne 0x100ea63d
mov eax, dword [0x101cf554]
cmp eax, 0x2d
je 0x100ea617
cmp eax, 0x436
jne 0x100ea63d
mov ecx, edi
call fcn.10010a70
shr eax, 1
test al, 1
jne 0x100ea63d
or dword [esi + 0x24], 0xb
mov dword [esi + 0x18], 0x41200000
mov dword [esi + 0xc], 0x41c80000
mov byte [0x102b7400], 1
mov ecx, dword [ebp + 0xc]
pop esi
cmp byte [ecx], 0
jne 0x100ea659
mov eax, dword [0x102b7818]
inc eax
mov dword [0x102b7818], eax
cmp eax, 0x16
jle 0x100ea663
mov byte [ecx], 1
mov dword [0x102b7818], 0
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8