Function at 0x100ec7a0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1012946d
push eax
mov dword fs:[0], esp
sub esp, 0x40
cmp byte [0x102b766a], 0
je 0x100ecd16
cmp byte [0x101cf6b0], 0
je 0x100ecd16
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x100ecd16
mov ecx, dword [0x101cf5b8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x100ecd16
mov ecx, dword [0x101cf678]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x100ecd16
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101cf110]
push esi
mov esi, dword [eax + ecx*4]
mov eax, dword [0x101cf580]
mov dword [ebp - 0x18], esi
cmp eax, dword [esi + 4]
jle 0x100ec87d
push 0x101cf580
call fcn.10121ee8
add esp, 4
cmp dword [0x101cf580], 0xffffffff
jne 0x100ec87d
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]
push edi
mov edi, dword [ebp + 0xc]
cmp dword [eax + edi], 3
jne 0x100ecd14
mov ecx, edi
call fcn.10010d70
test al, al
je 0x100ecd14
mov ecx, edi
call fcn.10010a70
shr eax, 1
test al, 1
jne 0x100ecd14
mov eax, dword [0x101cf69c]
cmp eax, dword [esi + 4]
jle 0x100ec902
push 0x101cf69c
call fcn.10121ee8
add esp, 4
cmp dword [0x101cf69c], 0xffffffff
jne 0x100ec902
push str.m_iHealth
push str.DT_BasePlayer
mov dword [ebp - 4], 1
call fcn.10014890
push 0x101cf69c
mov dword [0x101cf6c4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.10121e9e
add esp, 4
mov eax, dword [0x101cf6c4]
cmp dword [eax + edi], 0x3c
jge 0x100ec91a
cmp byte [0x101a72a8], 0
jne 0x100ecd14
mov eax, dword [0x101c93ac]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100ecd14
mov ecx, eax
call fcn.100e9330
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x24]
test al, al
je 0x100ec953
or ecx, 1
pop edi
mov dword [esi + 0x24], ecx
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
test cl, 1
je 0x100ec95e
and ecx, 0xfffffffe
mov dword [esi + 0x24], ecx
mov eax, dword [0x101cf554]
cmp eax, 0x2da
je 0x100ecd14
cmp eax, 0x1b9
je 0x100ecd14
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x528]
call eax
test eax, eax
jne 0x100ecd14
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
call fcn.10016660
movss xmm0, dword [0x1019788c]
movss xmm1, dword [eax + 8]
comiss xmm0, xmm1
mov eax, dword [esi + 0x24]
jbe 0x100ecd0e
mov ecx, dword [ebp - 0x18]
or eax, 3
mov dword [esi + 0x24], eax
mov eax, dword [0x101cf4ec]
cmp eax, dword [ecx + 4]
jle 0x100ec9ff
push 0x101cf4ec
call fcn.10121ee8
add esp, 4
cmp dword [0x101cf4ec], 0xffffffff
jne 0x100ec9ff
push str.55_8B_EC_83_EC___56_8B_F1_E8_________3B_F0
push str.client.dll
call fcn.101212a0
push 0x101cf4ec
mov dword [0x101cf4bc], eax
call fcn.10121e9e
add esp, 4
lea eax, [ebp - 0x34]
mov dword [ebp - 0x2c], 0
push eax
mov ecx, edi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
call dword [0x101cf4bc]
movss xmm1, dword [0x101979c4]
movss xmm2, dword [ebp - 0x34]
comiss xmm2, xmm1
jbe 0x100eca61
movss xmm0, dword [0x101975fc]
comiss xmm0, xmm2
jbe 0x100eca61
movss xmm2, dword [ebp - 0x30]
comiss xmm2, xmm1
jbe 0x100eca61
comiss xmm0, xmm2
jbe 0x100eca61
movss xmm2, dword [ebp - 0x2c]
comiss xmm2, xmm1
jbe 0x100eca61
comiss xmm0, xmm2
jbe 0x100eca61
mov al, 1
jmp 0x100eca63
xor al, al
test al, al
je 0x100eca71
movss xmm0, dword [0x101978a4]
jmp 0x100eca79
movss xmm0, dword [0x10197870]
lea edx, [ebp - 0x34]
movss dword [ebp + 0xc], xmm0
lea ecx, [ebp - 0x4c]
movss dword [ebp - 0x40], xmm0
call fcn.1000fae0
cmp dword [0x101cf554], 0x201
mov dword [ebp - 0x38], 0
movss xmm3, dword [eax + 4]
subss xmm3, dword [0x101978e0]
movss dword [ebp - 0x3c], xmm3
je 0x100ecccf
movss xmm1, dword [0x101979c4]
movss xmm2, dword [ebp - 0x34]
comiss xmm2, xmm1
jbe 0x100ecaf8
movss xmm0, dword [0x101975fc]
comiss xmm0, xmm2
jbe 0x100ecaf8
movss xmm2, dword [ebp - 0x30]
comiss xmm2, xmm1
jbe 0x100ecaf8
comiss xmm0, xmm2
jbe 0x100ecaf8
movss xmm2, dword [ebp - 0x2c]
comiss xmm2, xmm1
jbe 0x100ecaf8
comiss xmm0, xmm2
jbe 0x100ecaf8
mov al, 1
jmp 0x100ecafa
xor al, al
test al, al
jne 0x100ecccf
movss xmm1, dword [ebp + 0xc]
lea eax, [ebp - 0x10]
movss xmm0, dword [0x10197608]
mulss xmm1, xmm0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], eax
movss dword [ebp + 0xc], xmm1
fld dword [ebp + 0xc]
fsincos
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
fstp dword [edx]
fstp dword [eax]
lea eax, [ebp + 8]
mulss xmm3, xmm0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x1c], eax
movss dword [ebp + 0xc], xmm3
fld dword [ebp + 0xc]
fsincos
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
fstp dword [edx]
fstp dword [eax]
lea eax, [ebp - 0x18]
mov dword [ebp + 0xc], 0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x1c], eax
fld dword [ebp + 0xc]
fsincos
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [ebp - 0x10]
mulss xmm0, dword [ebp + 8]
movss xmm6, dword [ebp - 0x18]
movss xmm4, dword [ebp - 0x28]
movaps xmm3, xmm6
mulss xmm3, dword [0x101979e4]
movaps xmm1, xmm4
movss xmm5, dword [ebp - 0x24]
movss dword [ebp - 0x20], xmm0
movaps xmm2, xmm5
movss xmm0, dword [ebp - 0x10]
mulss xmm0, dword [ebp - 0x14]
xorps xmm2, xmmword [0x10197f90]
mulss xmm1, xmm5
movss dword [ebp + 0xc], xmm3
movss xmm3, dword [ebp - 0x14]
xorps xmm3, xmmword [0x10197f90]
movss dword [ebp - 0x1c], xmm0
movaps xmm7, xmm3
mulss xmm7, dword [ebp + 0xc]
movaps xmm0, xmm1
mulss xmm0, dword [ebp + 8]
mulss xmm1, dword [ebp - 0x14]
subss xmm7, xmm0
movss dword [ebp - 0x24], xmm2
movss xmm0, dword [ebp + 0xc]
mulss xmm0, dword [ebp + 8]
mulss xmm6, xmm5
movaps xmm2, xmm0
mulss xmm3, xmm4
movss xmm0, dword [0x101977a4]
subss xmm2, xmm1
movaps xmm1, xmm4
movss xmm5, dword [ebp - 0x10]
mulss xmm4, dword [ebp + 8]
mulss xmm1, dword [0x101979e4]
movss dword [ebp + 0xc], xmm2
movaps xmm2, xmm6
mulss xmm2, dword [ebp + 8]
mulss xmm1, dword [ebp - 0x10]
mulss xmm6, dword [ebp - 0x14]
subss xmm2, xmm3
movss xmm3, dword [0x10197840]
mulss xmm5, dword [ebp - 0x18]
subss xmm6, xmm4
movss dword [ebp - 0x28], xmm1
movss xmm4, dword [ebp - 0x20]
movss xmm1, dword [0x10197800]
mulss xmm4, xmm3
mulss xmm7, xmm1
mulss xmm2, xmm0
subss xmm4, xmm7
subss xmm4, xmm2
movss xmm2, dword [ebp + 0xc]
mulss xmm2, xmm1
movss dword [ebp - 0x4c], xmm4
movss xmm4, dword [ebp - 0x1c]
mulss xmm4, xmm3
subss xmm4, xmm2
movss xmm2, dword [ebp - 0x28]
lea edx, [ebp - 0x40]
mulss xmm6, xmm0
lea ecx, [ebp - 0x4c]
mulss xmm2, xmm1
subss xmm4, xmm6
mulss xmm5, xmm0
movss dword [ebp - 0x48], xmm4
movss xmm4, dword [ebp - 0x24]
mulss xmm4, xmm3
subss xmm4, xmm2
subss xmm4, xmm5
movss dword [ebp - 0x44], xmm4
call fcn.1002c110
lea ecx, [ebp - 0x40]
call fcn.1002f820
movss xmm0, dword [ebp - 0x40]
movss dword [esi + 0xc], xmm0
movss xmm0, dword [ebp - 0x3c]
movss dword [esi + 0x10], xmm0
movss xmm0, dword [ebp - 0x38]
pop edi
movss dword [esi + 0x14], xmm0
mov byte [0x102b7400], 1
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
or eax, 4
mov dword [esi + 0x24], eax
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8