Function at 0x1014f470
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10185781
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, dword [0x10234298]
test esi, esi
je 0x1014f775
cmp byte [0x10236f14], 0
jne 0x1014f4b1
cmp byte [0x10237100], 0
jne 0x1014f4b1
mov eax, dword [ebp + 0xc]
mov cl, byte [eax]
jmp 0x1014f4be
cmp dword [0x10236f3c], 1
mov eax, dword [ebp + 0xc]
sete cl
mov byte [eax], cl
mov ecx, esi
push edi
call fcn.10066ca0
mov edi, dword [ebp + 8]
test al, al
je 0x1014f5cb
mov ecx, esi
call fcn.100743b0
shr eax, 0x12
test al, 1
jne 0x1014f5cb
mov ecx, esi
call fcn.100743b0
shr eax, 0xd
test al, 1
jne 0x1014f5cb
mov ecx, esi
call fcn.10066980
test al, al
jne 0x1014f5cb
mov ecx, esi
call fcn.100668f0
shr eax, 1
test al, 1
je 0x1014f51d
movss xmm0, dword [0x1021ea84]
jmp 0x1014f525
movss xmm0, dword [0x1021e948]
cmp byte [0x10236f3a], 0
movss dword [ebp + 8], xmm0
jne 0x1014f5cb
cmp byte [0x10236f14], 0
jne 0x1014f5cb
cmp byte [0x102ee3a5], 0
jne 0x1014f5cb
movss xmm0, dword [edi + 0x18]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1014f5cb
movss xmm0, dword [edi + 0x1c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1014f5cb
movss xmm1, dword [esi + 0x120]
movss xmm0, dword [esi + 0x124]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10063f20
movss xmm1, dword [0x1021ea78]
comiss xmm1, xmm0
jbe 0x1014f5cb
cmp byte [0x102f2ac0], 0
je 0x1014f5cb
mov al, byte [0x102300c8]
movss xmm0, dword [ebp + 8]
test al, al
jne 0x1014f5b8
xorps xmm0, xmmword [0x1021ef40]
test al, al
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm0
sete byte [0x102300c8]
push esi
push edi
call fcn.10151710
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10236a90]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102f76c8]
mov dword [ebp - 0x10], ecx
cmp eax, dword [ecx + 4]
jle 0x1014f628
push 0x102f76c8
call fcn.1017dd04
add esp, 4
cmp dword [0x102f76c8], 0xffffffff
jne 0x1014f628
push 0x102f76c8
mov dword [0x102f76d4], 0
mov dword [0x102f76d0], 0x102300cc
call fcn.1017dcb3
add esp, 4
cmp byte [0x102f3af0], 0
je 0x1014f74f
cmp byte [0x10237054], 0
je 0x1014f74f
mov eax, dword [0x102f76d0]
cmp dword [0x102f76d4], 0
sete byte [ebp + 0xb]
mov eax, dword [eax]
test eax, eax
jne 0x1014f662
mov dword [0x102f76d4], eax
jmp 0x1014f74f
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x102f76d4], eax
je 0x1014f74f
cmp byte [ebp + 0xb], 0
je 0x1014f74f
mov ecx, dword [0x10236f60]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x1014f74f
mov ecx, dword [0x10237018]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x1014f74f
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x10236f30]
cmp eax, dword [ecx + 4]
jle 0x1014f70d
push 0x10236f30
call fcn.1017dd04
add esp, 4
cmp dword [0x10236f30], 0xffffffff
jne 0x1014f70d
push str.m_iClass
push str.m_PlayerClass
push str.DT_TFPlayer
mov dword [ebp - 4], 0
call fcn.1006a490
push 0x10236f30
mov dword [0x10236f40], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1017dcb3
add esp, 4
mov eax, dword [0x10236f40]
cmp dword [eax + esi], 1
jne 0x1014f74f
mov eax, dword [0x10236f18]
cmp eax, 0x2d
je 0x1014f729
cmp eax, 0x436
jne 0x1014f74f
mov ecx, esi
call fcn.100668f0
shr eax, 1
test al, 1
jne 0x1014f74f
or dword [edi + 0x24], 0xb
mov dword [edi + 0x18], 0x41200000
mov dword [edi + 0xc], 0x41c80000
mov byte [0x102370e0], 1
mov ecx, dword [ebp + 0xc]
pop edi
cmp byte [ecx], 0
jne 0x1014f76b
mov eax, dword [0x102ee4fc]
inc eax
mov dword [0x102ee4fc], eax
cmp eax, 0x16
jle 0x1014f775
mov byte [ecx], 1
mov dword [0x102ee4fc], 0
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8