Function at 0x5c7950
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x5c7bce
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
call fcn.005c6acc
mov ebx, eax
test ebx, ebx
je 0x5c7b9b
push 0x10
call sub.user32.dll_GetKeyState
and ax, 0x80
cmp ax, 0x80
je 0x5c7a97
mov eax, ebx
call fcn.004da6f8
mov edi, eax
mov eax, ebx
call fcn.005c4ad0
mov eax, dword [eax + 0x3c]
call fcn.004dab64
dec eax
cmp edi, eax
jge 0x5c79cd
mov eax, ebx
call fcn.004da6f8
inc eax
push eax
mov eax, ebx
call fcn.005c4ad0
mov eax, dword [eax + 0x3c]
pop edx
call fcn.005c4f84
mov ebx, eax
jmp 0x5c7ba4
or edi, 0xffffffff
mov eax, ebx
call fcn.005c4ad0
call fcn.004da6f8
push eax
mov eax, dword [esi + 0x18]
call fcn.005c9388
call fcn.004dab64
dec eax
pop edx
cmp edx, eax
jge 0x5c7a0f
mov eax, ebx
call fcn.005c4ad0
call fcn.004da6f8
inc eax
push eax
mov eax, esi
call fcn.005c7fc4
mov cl, 1
pop edx
call fcn.005ccad0
mov edi, eax
cmp edi, 0xffffffff
jne 0x5c7a6e
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x258]
call fcn.00526bd0
test eax, eax
je 0x5c7a5c
push 0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x258]
call fcn.00526bd0
mov eax, dword [eax + 0x18]
lea edx, [ebp - 4]
call fcn.00542ec8
mov eax, dword [ebp - 4]
push eax
call fcn.0050acc8
mov dl, 1
pop ecx
call fcn.0055e894
xor ebx, ebx
jmp 0x5c7a6e
mov eax, esi
call fcn.005c7fc4
mov cl, 1
xor edx, edx
call fcn.005ccad0
mov edi, eax
cmp edi, 0xffffffff
je 0x5c7ba4
mov eax, dword [esi + 0x18]
call fcn.005c9388
mov edx, edi
call fcn.005c536c
mov eax, dword [eax + 0x3c]
xor edx, edx
call fcn.005c4f84
mov ebx, eax
jmp 0x5c7ba4
mov eax, ebx
call fcn.004da6f8
test eax, eax
jle 0x5c7ac2
mov eax, ebx
call fcn.004da6f8
dec eax
push eax
mov eax, ebx
call fcn.005c4ad0
mov eax, dword [eax + 0x3c]
pop edx
call fcn.005c4f84
mov ebx, eax
jmp 0x5c7ba4
or edi, 0xffffffff
mov eax, ebx
call fcn.005c4ad0
call fcn.004da6f8
test eax, eax
jle 0x5c7af4
mov eax, ebx
call fcn.005c4ad0
call fcn.004da6f8
dec eax
push eax
mov eax, esi
call fcn.005c7fc4
xor ecx, ecx
pop edx
call fcn.005ccad0
mov edi, eax
cmp edi, 0xffffffff
jne 0x5c7b61
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x258]
call fcn.00526c0c
test eax, eax
je 0x5c7b41
push 0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x258]
call fcn.00526c0c
mov eax, dword [eax + 0x18]
lea edx, [ebp - 8]
call fcn.00542ec8
mov eax, dword [ebp - 8]
push eax
call fcn.0050acc8
mov dl, 1
pop ecx
call fcn.0055e894
xor ebx, ebx
jmp 0x5c7b61
mov eax, dword [esi + 0x18]
call fcn.005c9388
call fcn.004dab64
dec eax
push eax
mov eax, esi
call fcn.005c7fc4
xor ecx, ecx
pop edx
call fcn.005ccad0
mov edi, eax
cmp edi, 0xffffffff
je 0x5c7ba4
mov eax, dword [esi + 0x18]
call fcn.005c9388
mov edx, edi
call fcn.005c536c
mov eax, dword [eax + 0x3c]
call fcn.004dab64
dec eax
push eax
mov eax, dword [esi + 0x18]
call fcn.005c9388
mov edx, edi
call fcn.005c536c
mov eax, dword [eax + 0x3c]
pop edx
call fcn.005c4f84
mov ebx, eax
jmp 0x5c7ba4
mov eax, esi
call fcn.005c7e6c
mov ebx, eax
mov edx, ebx
mov eax, esi
call fcn.005c6c28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c7bd5
lea eax, [ebp - 8]
mov edx, dword [0x4f9074]
dec edi
add byte [ecx + 2], bh