Function at 0x5e8164
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
call fcn.005398a8
mov dword [ebp - 0x28], eax
xor edx, edx
push ebp
push 0x5e869b
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov edx, eax
cmp edx, 0x101
jg 0x5e81b9
je 0x5e83a4
sub edx, 7
je 0x5e81e2
dec edx
je 0x5e81f8
sub edx, 0xf8
je 0x5e8387
jmp 0x5e84b3
sub edx, 0x102
je 0x5e836a
add edx, 0xfffffffe
sub edx, 2
jb 0x5e83c1
sub edx, 0xfe
je 0x5e8302
jmp 0x5e84b3
mov eax, dword [ebp - 0x20]
call fcn.005e7a34
mov si, 0xffe7
call fcn.00403ba4
jmp 0x5e84b3
mov eax, dword [ebp - 0x20]
call fcn.005e7a34
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x5e82fb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x2c], 0
je 0x5e823e
push ebp
call fcn.005e8120
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
call fcn.004042ec
call fcn.004042ec
jmp 0x5e86a2
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [0x5b9c80]
call fcn.00403b34
test al, al
je 0x5e82e1
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
mov ebx, eax
call sub.USER32.DLL_GetFocus
cmp ebx, eax
jne 0x5e827c
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
mov ebx, eax
jmp 0x5e8289
call sub.USER32.DLL_GetFocus
push eax
call sub.USER32.DLL_GetParent
mov ebx, eax
mov eax, ebx
call fcn.0046d270
mov edx, dword [0x5b9c80]
call fcn.00403b34
test al, al
jne 0x5e82a7
push ebx
call sub.USER32.DLL_GetParent
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
cmp ebx, eax
je 0x5e82e1
push ebp
call fcn.005e8120
pop ecx
push ebp
call fcn.005e80f4
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
call fcn.004042ec
call fcn.004042ec
jmp 0x5e86a2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e84b3
mov eax, dword [ebp - 0x34]
mov si, 0xffe6
call fcn.00403ba4
ret
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
call fcn.00408284
push 1
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.USER32.DLL_MapWindowPoints
mov dx, word [ebp - 0x2c]
mov ax, word [ebp - 0x30]
call fcn.004082b8
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
push eax
call sub.USER32.DLL_SendMessageA
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.004042ec
jmp 0x5e86a2
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.005e7bfc
test al, al
je 0x5e84b3
call fcn.004042ec
jmp 0x5e86a2
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.005e7bcc
test al, al
je 0x5e84b3
call fcn.004042ec
jmp 0x5e86a2
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.005e7c2c
test al, al
je 0x5e84b3
call fcn.004042ec
jmp 0x5e86a2
mov edx, dword [ebp - 0x24]
cmp eax, 0x104
jne 0x5e83d3
mov eax, dword [ebp - 0x20]
inc dword [eax + 0x34]
jmp 0x5e83ee
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x34], 0
je 0x5e83e4
mov eax, dword [ebp - 0x20]
dec dword [eax + 0x34]
jmp 0x5e83ee
call fcn.004042ec
jmp 0x5e86a2
push 0x12
call sub.USER32.DLL_GetAsyncKeyState
test ax, ax
jl 0x5e84b3
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
jne 0x5e8416
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x105
jne 0x5e84b3
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x79
jne 0x5e844b
push 0x10
call sub.USER32.DLL_GetAsyncKeyState
test ax, ax
jge 0x5e844b
call fcn.004042ec
jmp 0x5e86a2
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
jne 0x5e845b
mov byte [0x744d89], 1
mov byte [0x744d8a], 1
xor eax, eax
push ebp
push 0x5e84ac
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
push 0
call fcn.005c4968
dec eax
jne 0x5e8497
call fcn.004042ec
call fcn.004042ec
jmp 0x5e86a2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e84b3
mov byte [0x744d8a], 0
ret
mov eax, dword [ebp - 0x28]
cmp dword [eax + 4], 0
jne 0x5e84c6
call fcn.004042ec
jmp 0x5e86a2
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x100
jne 0x5e857a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
sub eax, 9
je 0x5e8537
sub eax, 4
je 0x5e84ee
sub eax, 0xe
jne 0x5e856e
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x144]
push ebp
call fcn.005e80f4
pop ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x1b
jne 0x5e8524
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x154]
jmp 0x5e8685
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
jmp 0x5e8685
push ebp
call fcn.005e80f4
pop ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
push eax
call sub.USER32.DLL_SendMessageA
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
jmp 0x5e8685
push ebp
call fcn.005e8120
pop ecx
jmp 0x5e8685
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
cmp eax, 0x200
jb 0x5e861d
mov edx, dword [ebp - 0x24]
cmp eax, 0x20a
ja 0x5e861d
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
call fcn.00408284
push 1
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.00476d64
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.USER32.DLL_MapWindowPoints
call sub.USER32.DLL_GetCapture
mov edx, dword [ebp - 0x20]
cmp eax, dword [edx + 0x30]
je 0x5e861d
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x20]
call fcn.005e7a3c
lea eax, [ebp - 0x44]
push eax
call sub.USER32.DLL_PtInRect
test eax, eax
jne 0x5e861d
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0x20]
call fcn.005d8e4c
lea eax, [ebp - 0x44]
push eax
call sub.USER32.DLL_PtInRect
test eax, eax
je 0x5e861d
call fcn.004042ec
jmp 0x5e86a2
mov eax, dword [ebp - 0x24]
cmp dword [eax], 2
jne 0x5e8632
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x104
jne 0x5e8646
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
je 0x5e864d
push ebp
call fcn.005e8120
pop ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax], 2
jne 0x5e8685
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x38]
push eax
push 0xfffffffffffffffc
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.USER32.DLL_SetWindowLongA
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x28]
call fcn.0042c3f0
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x30], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5e86a2
mov eax, dword [ebp - 0x28]
call fcn.005398c0
ret
pop esi
pop ebx
mov esp, ebp
pop ebp
ret