Function at 0x100547c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10073b19
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x1008d00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x10092dcd], 0
je 0x10054aae
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10091480]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x10091558]
cmp eax, dword [edi + 4]
jle 0x10054855
push 0x10091558
call fcn.1006d9de
add esp, 4
cmp dword [0x10091558], 0xffffffff
jne 0x10054855
push str.deadflag
push str.CBasePlayer
mov dword [ebp - 4], 0
call fcn.1006ca60
push 0x10091558
mov dword [0x10091540], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1006d994
add esp, 4
mov esi, dword [ebp + 8]
mov eax, dword [0x10091540]
cmp byte [eax + esi], 0
jne 0x10054aae
mov ecx, esi
call fcn.10067140
test al, al
jne 0x10054aae
mov ecx, esi
call fcn.10053b10
test al, al
jne 0x10054aae
mov ecx, esi
call fcn.10053a70
test al, al
jne 0x10054aae
mov ecx, esi
call fcn.100537b0
cmp dword [eax], 8
je 0x10054aae
mov ecx, esi
call fcn.100537b0
cmp dword [eax], 9
je 0x10054aae
mov ecx, esi
call fcn.100537b0
cmp dword [eax], 0xa
je 0x10054aae
cmp dword [0x1009161c], 0
push 0
jne 0x10054900
push 0x1007bebc
push 2
push 0x1007bdec
push 0x1007bdf8
call fcn.10007790
add esp, 0x14
mov dword [0x1009161c], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 0x1007be04
push 0x1007bdf8
call fcn.10007790
add esp, 0xc
cmp eax, dword [0x1009161c]
jne 0x10054aae
push dword [0x10092dd0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x10054aae
mov ecx, dword [0x100915fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0xd4]
call eax
test al, al
jne 0x10054aae
test esi, esi
je 0x10054aae
mov eax, dword [0x10091558]
cmp eax, dword [edi + 4]
jle 0x100549a4
push 0x10091558
call fcn.1006d9de
add esp, 4
cmp dword [0x10091558], 0xffffffff
jne 0x100549a4
push str.deadflag
push str.CBasePlayer
mov dword [ebp - 4], 1
call fcn.1006ca60
push 0x10091558
mov dword [0x10091540], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1006d994
add esp, 4
mov eax, dword [0x10091540]
cmp byte [eax + esi], 0
jne 0x10054aae
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x10054aae
mov eax, dword [0x100914d0]
cmp eax, dword [edi + 4]
jle 0x10054a18
push 0x100914d0
call fcn.1006d9de
add esp, 4
cmp dword [0x100914d0], 0xffffffff
jne 0x10054a18
push str.m_iClass
push str.CTFPlayer
mov dword [ebp - 4], 2
call fcn.1006ca60
push 0x100914d0
mov dword [0x100914cc], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1006d994
add esp, 4
mov eax, dword [0x100914cc]
cmp dword [eax + esi], 1
jne 0x10054aae
mov ecx, esi
call fcn.10005e70
test byte [eax], 1
je 0x10054aae
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.10007810
cmp dword [eax], 0x2d
je 0x10054a51
mov ecx, esi
call fcn.10007810
cmp dword [eax], 0x436
jne 0x10054aae
cmp byte [0x10092a28], 0
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x18], 0x42140000
mov dword [ebp - 0x10], 0
movss xmm0, dword [esi + 0x10]
movss dword [ebp + 8], xmm0
movss dword [ebp - 0x14], xmm0
mov byte [0x100930b8], 1
jne 0x10054a85
or dword [esi + 0x24], 3
lea eax, [ebp - 0x18]
mov byte [0x10092a28], 0
push eax
push esi
call fcn.10008150
movss xmm0, dword [ebp + 8]
mov dword [esi + 0xc], 0x42140000
movss dword [esi + 0x10], xmm0
mov dword [esi + 0x14], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc