Function at 0x100fd660
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101329d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push edi
mov edi, dword [0x101d3580]
test edi, edi
je 0x100fd923
cmp byte [0x101d5f00], 0
jne 0x100fd6a1
cmp byte [0x101d60a4], 0
jne 0x100fd6a1
mov eax, dword [ebp + 0xc]
mov cl, byte [eax]
jmp 0x100fd6ae
cmp dword [0x101d5f3c], 1
mov eax, dword [ebp + 0xc]
sete cl
mov byte [eax], cl
mov ecx, edi
call fcn.10014390
shr eax, 1
test al, 1
je 0x100fd6c7
movss xmm0, dword [0x101beb64]
jmp 0x100fd6cf
movss xmm0, dword [0x101bea18]
cmp byte [0x101d5f3a], 0
push esi
mov esi, dword [ebp + 8]
movss dword [ebp - 0x10], xmm0
jne 0x100fd779
cmp byte [0x101d5f00], 0
jne 0x100fd779
cmp byte [0x10289a55], 0
jne 0x100fd779
movss xmm0, dword [esi + 0x18]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100fd779
movss xmm0, dword [esi + 0x1c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100fd779
movss xmm1, dword [edi + 0x120]
movss xmm0, dword [edi + 0x124]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10011780
movss xmm1, dword [0x101beb58]
comiss xmm1, xmm0
jbe 0x100fd779
cmp byte [0x10289c6c], 0
je 0x100fd779
mov al, byte [0x101cf8f8]
movss xmm0, dword [ebp - 0x10]
test al, al
jne 0x100fd766
xorps xmm0, xmmword [0x101bf2a0]
test al, al
movss dword [esi + 0x18], xmm0
movss dword [esi + 0x1c], xmm0
sete byte [0x101cf8f8]
push edi
push esi
call fcn.100ffa10
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101d5a74]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1028cd28]
mov dword [ebp - 0x10], ecx
cmp eax, dword [ecx + 4]
jle 0x100fd7d6
push 0x1028cd28
call fcn.1012b230
add esp, 4
cmp dword [0x1028cd28], 0xffffffff
jne 0x100fd7d6
push 0x1028cd28
mov dword [0x1028cd34], 0
mov dword [0x1028cd30], 0x101cf8fc
call fcn.1012b1df
add esp, 4
cmp byte [0x10289c31], 0
je 0x100fd8fd
cmp byte [0x101d6068], 0
je 0x100fd8fd
mov eax, dword [0x1028cd30]
cmp dword [0x1028cd34], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x100fd810
mov dword [0x1028cd34], eax
jmp 0x100fd8fd
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x1028cd34], eax
je 0x100fd8fd
cmp byte [ebp + 0xb], 0
je 0x100fd8fd
mov ecx, dword [0x101d5f68]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x100fd8fd
mov ecx, dword [0x101d602c]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x100fd8fd
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x101d5f30]
cmp eax, dword [ecx + 4]
jle 0x100fd8bb
push 0x101d5f30
call fcn.1012b230
add esp, 4
cmp dword [0x101d5f30], 0xffffffff
jne 0x100fd8bb
push str.m_iClass
push str.m_PlayerClass
push str.DT_TFPlayer
mov dword [ebp - 4], 0
call fcn.10018010
push 0x101d5f30
mov dword [0x101d5f40], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1012b1df
add esp, 4
mov eax, dword [0x101d5f40]
cmp dword [eax + edi], 1
jne 0x100fd8fd
mov eax, dword [0x101d5f04]
cmp eax, 0x2d
je 0x100fd8d7
cmp eax, 0x436
jne 0x100fd8fd
mov ecx, edi
call fcn.10014390
shr eax, 1
test al, 1
jne 0x100fd8fd
or dword [esi + 0x24], 0xb
mov dword [esi + 0x18], 0x41200000
mov dword [esi + 0xc], 0x41c80000
mov byte [0x102899d1], 1
mov ecx, dword [ebp + 0xc]
pop esi
cmp byte [ecx], 0
jne 0x100fd919
mov eax, dword [0x10289e14]
inc eax
mov dword [0x10289e14], eax
cmp eax, 0x16
jle 0x100fd923
mov byte [ecx], 1
mov dword [0x10289e14], 0
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8