Function at 0x560780
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
push 0x70
mov esi, ecx
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp dword [esi + 0x21738], 1
je 0x560ac5
cmp dword [esi + 0x21738], 4
je 0x560ac5
cmp byte [esi + 0x215f8], 0
je 0x560817
cmp byte [esi + 0x21678], 0
je 0x560817
push ecx
mov ecx, 0x6eb2d0
call fcn.0055e0e0
add esp, 4
test al, al
je 0x560817
movss xmm3, dword [0x6b1c84]
lea eax, [ebp - 4]
movss xmm2, dword [0x6b1c88]
movss xmm1, dword [0x6b1c74]
push eax
push ecx
mov ecx, dword [0x8a9134]
mov dword [esp], 0x42900000
call fcn.00563cf0
cmp dword [0x8a9100], 0
je 0x560817
mov ecx, esi
call fcn.005675a0
movss xmm1, dword [0x6b1c80]
movss xmm0, dword [0x6b1c94]
call fcn.0055fce0
test al, al
je 0x560844
push 0
push str.Later
push str.Not_implemented_on_Extreme_server_yet
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
movd xmm1, dword [0x8a9108]
movss xmm2, dword [0x6eb2c0]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jb 0x5608e4
movss xmm0, dword [0x6eb2c8]
addss xmm0, xmm2
comiss xmm0, xmm1
jb 0x5608e4
movd xmm2, dword [0x8a9104]
movss xmm1, dword [0x6eb2c4]
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm1
jb 0x5608e4
movss xmm0, dword [0x6eb2cc]
addss xmm0, xmm1
comiss xmm0, xmm2
jb 0x5608e4
movss xmm3, dword [0x6b1c84]
lea eax, [ebp - 4]
movss xmm2, dword [0x6b1c98]
movss xmm1, dword [0x6b1c74]
push eax
push ecx
mov ecx, dword [0x8a912c]
mov dword [esp], 0x42900000
call fcn.00563cf0
mov ebx, dword [0x8a9100]
test ebx, ebx
je 0x5608ea
mov dword [esi + 0x20d84], 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [0x8a9100]
mov eax, dword [esi + 0x215f4]
cmp byte [eax], 0
je 0x560974
push 0
push 0
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x96000000
push eax
sub esp, 0x10
mov dword [esp + 0xc], 0x41c80000
mov dword [esp + 8], 0x43a58000
mov dword [esp + 4], 0x43910000
mov dword [esp], 0x43660000
call fcn.005c4c30
mov ecx, dword [0x8a9118]
lea eax, [ebp - 0xc]
add esp, 0x1c
mov dword [ebp - 0xc], 0xffff1a1a
push 1
push dword [esi + 0x215f4]
push eax
sub esp, 0x10
mov dword [esp + 0xc], 0x41c80000
mov dword [esp + 8], 0x43a58000
mov dword [esp + 4], 0x43910000
mov dword [esp], 0x43660000
call fcn.005bfcf0
mov ebx, dword [0x8a9100]
mov eax, dword [0x8b7ffc]
test al, 1
jne 0x560998
xor edx, edx
or eax, 1
cmp byte [esi + 0x215f8], dl
mov dword [0x8b7ffc], eax
setne dl
mov dword [0x8b8000], edx
jmp 0x56099e
mov edx, dword [0x8b8000]
test ebx, ebx
je 0x560a05
push ecx
mov ecx, 0x6eb2f0
call fcn.0055e0e0
add esp, 4
test al, al
je 0x5609d0
xor edx, edx
mov dword [0x8b8000], edx
mov dword [0x6ec1c4], 0x8a9810
mov dword [0x6ec1c0], 0x8a9810
test ebx, ebx
je 0x560a05
push ecx
mov ecx, 0x6eb2e0
call fcn.0055e0e0
add esp, 4
test al, al
je 0x560a05
mov edx, 1
mov dword [0x8b8000], edx
mov dword [0x6ec1c4], 0x8a9810
mov dword [0x6ec1c0], 0x8a9810
movss xmm1, dword [0x6eb2f4]
lea ecx, [esi + 0x215f8]
movss xmm0, dword [0x6eb2f0]
test edx, edx
push 0x40
push 0
sete dl
call fcn.0055f510
add esp, 8
cmp eax, 9
jne 0x560a38
mov eax, 1
jmp 0x560a51
cmp eax, 0xd
mov eax, dword [0x8b8000]
jne 0x560a56
cmp byte [esi + 0x215f8], 0
mov ecx, 1
cmovne eax, ecx
mov dword [0x8b8000], eax
movss xmm1, dword [0x6eb2e4]
lea ecx, [esi + 0x21678]
movss xmm0, dword [0x6eb2e0]
cmp eax, 1
push 0x20
push 1
sete dl
call fcn.0055f510
add esp, 8
cmp eax, 9
jne 0x560a94
mov dword [0x8b8000], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xd
jne 0x560bec
cmp byte [esi + 0x21678], 0
je 0x560bec
cmp byte [esi + 0x215f8], 0
je 0x560bec
mov ecx, esi
call fcn.005675a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [0x6eb2fc]
lea eax, [ebp - 0x10]
addss xmm0, dword [0x6b1c5c]
push 0
push 0
push eax
sub esp, 0x10
mov dword [ebp - 0x10], 0x64000000
movss dword [esp + 0xc], xmm0
movss xmm0, dword [0x6eb2f8]
addss xmm0, dword [0x6b1c5c]
movss dword [esp + 8], xmm0
movss xmm0, dword [0x6eb2f4]
subss xmm0, dword [0x6b1c58]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x6eb2f0]
subss xmm0, dword [0x6b1c58]
movss dword [esp], xmm0
call fcn.005c4c30
movss xmm0, dword [0x6eb2ec]
lea eax, [ebp - 0x14]
addss xmm0, dword [0x6b1c5c]
add esp, 0x1c
mov dword [ebp - 0x14], 0x64000000
push 0
push 0
push eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [0x6eb2e8]
addss xmm0, dword [0x6b1c5c]
movss dword [esp + 8], xmm0
movss xmm0, dword [0x6eb2e4]
subss xmm0, dword [0x6b1c58]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x6eb2e0]
subss xmm0, dword [0x6b1c58]
movss dword [esp], xmm0
call fcn.005c4c30
movss xmm1, dword [0x6eb2f4]
lea ecx, [esi + 0x215f8]
movss xmm0, dword [0x6eb2f0]
add esp, 0x1c
xor dl, dl
push 0x20
push 0
call fcn.0055f510
movss xmm1, dword [0x6eb2e4]
lea ecx, [esi + 0x21678]
movss xmm0, dword [0x6eb2e0]
xor dl, dl
push 0x20
push 1
call fcn.0055f510
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret