Function at 0x590c60
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 + 0x22004], 1
je 0x591000
cmp dword [esi + 0x22004], 4
je 0x591000
cmp byte [esi + 0x215f8], 0
je 0x590cf7
cmp byte [esi + 0x21678], 0
je 0x590cf7
push ecx
mov ecx, 0x79d954
call fcn.0058e5f0
add esp, 4
test al, al
je 0x590cf7
movss xmm3, dword [0x6eee6c]
lea eax, [ebp - 4]
movss xmm2, dword [0x6eee70]
movss xmm1, dword [0x6eee5c]
push eax
push ecx
mov ecx, dword [0x8477fc]
mov dword [esp], 0x42900000
call fcn.00593610
cmp dword [0x847800], 0
je 0x590cf7
mov ecx, esi
call fcn.00596ef0
movss xmm1, dword [0x6eee68]
movss xmm0, dword [0x6eee7c]
call fcn.005901f0
test al, al
je 0x590d24
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 [0x8477e0]
movss xmm2, dword [0x79d910]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jb 0x590db8
movss xmm0, dword [0x79d918]
addss xmm0, xmm2
comiss xmm0, xmm1
jb 0x590db8
movd xmm2, dword [0x8477b8]
movss xmm1, dword [0x79d914]
cvtdq2ps xmm2, xmm2
comiss xmm2, xmm1
jb 0x590db8
movss xmm0, dword [0x79d91c]
addss xmm0, xmm1
comiss xmm0, xmm2
jb 0x590db8
movss xmm3, dword [0x6eee6c]
lea eax, [ebp - 4]
movss xmm2, dword [0x6eee80]
movss xmm1, dword [0x6eee5c]
push eax
push ecx
mov ecx, dword [0x847364]
mov dword [esp], 0x42900000
call fcn.00593610
cmp dword [0x847800], 0
je 0x590db8
mov dword [esi + 0x20d84], 2
mov eax, dword [esi + 0x215f4]
cmp byte [eax], 0
je 0x590e3c
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.00601830
mov ecx, dword [0x847824]
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.005fa1e0
mov eax, dword [0x849af0]
test al, 1
jne 0x590e5f
or eax, 1
mov dword [0x849af0], eax
xor eax, eax
cmp byte [esi + 0x215f8], al
setne al
mov dword [0x849ae4], eax
jmp 0x590e64
mov eax, dword [0x849ae4]
cmp dword [0x847800], 0
movss xmm1, dword [0x79d8f4]
movss xmm2, dword [0x79d8f0]
je 0x590f4d
movd xmm3, dword [0x8477e0]
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm2
jb 0x590edc
movaps xmm0, xmm2
addss xmm0, dword [0x79d8f8]
comiss xmm0, xmm3
jb 0x590edc
movd xmm3, dword [0x8477b8]
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm1
jb 0x590edc
movaps xmm0, xmm1
addss xmm0, dword [0x79d8fc]
comiss xmm0, xmm3
jb 0x590edc
xor eax, eax
mov dword [0x849ae4], eax
mov dword [0x79e96c], 0x847c70
mov dword [0x79e968], 0x847c70
cmp dword [0x847800], 0
je 0x590f4d
movd xmm3, dword [0x8477e0]
movss xmm0, dword [0x79d8e0]
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm0
jb 0x590f4d
addss xmm0, dword [0x79d8e8]
comiss xmm0, xmm3
jb 0x590f4d
movd xmm3, dword [0x8477b8]
movss xmm0, dword [0x79d8e4]
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm0
jb 0x590f4d
addss xmm0, dword [0x79d8ec]
comiss xmm0, xmm3
jb 0x590f4d
mov eax, 1
mov dword [0x849ae4], eax
mov dword [0x79e96c], 0x847c70
mov dword [0x79e968], 0x847c70
test eax, eax
lea ecx, [esi + 0x215f8]
push 0x40
push 0
sete dl
movaps xmm0, xmm2
call fcn.0058fa20
add esp, 8
cmp eax, 9
jne 0x590f73
mov eax, 1
jmp 0x590f8c
cmp eax, 0xd
mov eax, dword [0x849ae4]
jne 0x590f91
cmp byte [esi + 0x215f8], 0
mov ecx, 1
cmovne eax, ecx
mov dword [0x849ae4], eax
movss xmm1, dword [0x79d8e4]
lea ecx, [esi + 0x21678]
movss xmm0, dword [0x79d8e0]
cmp eax, 1
push 0x20
push 1
sete dl
call fcn.0058fa20
add esp, 8
cmp eax, 9
jne 0x590fcf
mov dword [0x849ae4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xd
jne 0x591127
cmp byte [esi + 0x21678], 0
je 0x591127
cmp byte [esi + 0x215f8], 0
je 0x591127
mov ecx, esi
call fcn.00596ef0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [0x79d8fc]
lea eax, [ebp - 0x10]
addss xmm0, dword [0x6eee44]
push 0
push 0
push eax
sub esp, 0x10
mov dword [ebp - 0x10], 0x64000000
movss dword [esp + 0xc], xmm0
movss xmm0, dword [0x79d8f8]
addss xmm0, dword [0x6eee44]
movss dword [esp + 8], xmm0
movss xmm0, dword [0x79d8f4]
subss xmm0, dword [0x6eee40]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x79d8f0]
subss xmm0, dword [0x6eee40]
movss dword [esp], xmm0
call fcn.00601830
movss xmm0, dword [0x79d8ec]
lea eax, [ebp - 0x14]
addss xmm0, dword [0x6eee44]
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 [0x79d8e8]
addss xmm0, dword [0x6eee44]
movss dword [esp + 8], xmm0
movss xmm0, dword [0x79d8e4]
subss xmm0, dword [0x6eee40]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x79d8e0]
subss xmm0, dword [0x6eee40]
movss dword [esp], xmm0
call fcn.00601830
movss xmm1, dword [0x79d8f4]
lea ecx, [esi + 0x215f8]
movss xmm0, dword [0x79d8f0]
add esp, 0x1c
xor dl, dl
push 0x20
push 0
call fcn.0058fa20
movss xmm1, dword [0x79d8e4]
lea ecx, [esi + 0x21678]
movss xmm0, dword [0x79d8e0]
xor dl, dl
push 0x20
push 1
call fcn.0058fa20
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret