Function at 0x55b5f8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [ebp - 0x4c]
mov byte [ebp - 5], 1
xor edx, edx
push ebp
push 0x55be58
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x45], 1
mov eax, dword [0x58798c]
mov eax, dword [eax]
xor edx, edx
call fcn.00491a28
push eax
call sub.user32.dll_SetCursor
xor eax, eax
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x30]
xor edx, edx
xor eax, eax
call fcn.0041b690
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
push 0
push 0x32
push 0
push 0
call sub.user32.dll_SetTimer
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00557bbc
test eax, eax
jle 0x55b72b
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov eax, ebx
call fcn.00557bbc
mov edx, eax
dec edx
mov eax, ebx
call fcn.00557bc4
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x30]
mov ebx, dword [esi + 0x8c]
test ebx, ebx
jl 0x55b717
mov eax, esi
call fcn.00557bbc
cmp ebx, eax
jge 0x55b717
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov edx, dword [ebx + 0x8c]
mov eax, ebx
call fcn.00557bc4
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp byte [eax + 0x78], 0
je 0x55b703
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov eax, ebx
call fcn.00557bbc
mov edx, dword [ebx + 0x8c]
inc edx
cmp eax, edx
jle 0x55b703
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x30]
mov edx, dword [ebx + 0x8c]
inc edx
mov eax, ebx
call fcn.00557bc4
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x55b717
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
lea eax, [ebp - 0xe]
push eax
call sub.user32.dll_GetCursorPos
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
call fcn.0055ab70
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x55b741
mov eax, ebx
call fcn.0047a20c
call fcn.00519170
mov byte [ebp - 6], 1
jmp 0x55be15
cmp byte [ebp - 6], 0
jne 0x55b755
call sub.user32.dll_WaitMessage
mov byte [ebp - 6], 0
jmp 0x55bdf4
mov eax, dword [edi + 4]
cmp eax, 0x113
jg 0x55b78d
je 0x55b88d
sub eax, 0x12
je 0x55b881
sub eax, 0x34
je 0x55b79e
add eax, 0xffffffa5
sub eax, 9
jb 0x55b881
jmp 0x55b90e
sub eax, 0x201
je 0x55b7af
sub eax, 3
je 0x55b7af
jmp 0x55b90e
push ebp
call fcn.0055b5a4
pop ecx
call fcn.00403d50
jmp 0x55be5f
lea edx, [ebp - 0xe]
mov eax, dword [edi + 0xc]
call fcn.004079b8
lea eax, [ebp - 0xe]
push eax
mov eax, dword [edi]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
mov dword [ebp - 0x16], eax
mov eax, dword [ebp - 0xa]
mov dword [ebp - 0x12], eax
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00473354
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xe], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xa], eax
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x40]
test ebx, ebx
je 0x55b82e
push dword [ebp - 0xa]
push dword [ebp - 0xe]
lea eax, [ebx + 0x95]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55b82e
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
jmp 0x55b90e
mov esi, dword [ebp - 4]
xor ebx, ebx
jmp 0x55b860
lea ecx, [ebp - 0xe]
lea edx, [ebp - 0x16]
mov eax, dword [esi + 0x3c]
call fcn.00473354
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [esi + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55b85d
mov bl, 1
mov esi, dword [esi + 0x68]
test esi, esi
je 0x55b868
test bl, bl
je 0x55b835
test bl, bl
jne 0x55b90e
push ebp
call fcn.0055b5a4
pop ecx
call fcn.00403d50
jmp 0x55be5f
push ebp
call fcn.0055b5a4
pop ecx
jmp 0x55bdf4
cmp dword [edi], 0
jne 0x55b90e
add dword [ebp - 0x1c], 0x32
lea edx, [ebp - 0x28]
mov eax, dword [0x587924]
mov eax, dword [eax]
call fcn.0047eb1c
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jne 0x55b8fd
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x2c]
jne 0x55b8fd
cmp dword [ebp - 0x1c], 0x1f4
jl 0x55b902
mov esi, dword [ebp - 4]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
lea edx, [ebp - 0x64]
mov eax, dword [esi + 0x3c]
call fcn.004731b0
lea eax, [ebp - 0x64]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55b8f6
push 0
push 0
push 0x46f
mov eax, dword [esi + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x55b902
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
push 3
push 0
push 0
push 0
push edi
call sub.user32.dll_PeekMessageA
test eax, eax
je 0x55bdf4
mov eax, dword [edi + 4]
mov edx, eax
sub edx, 0x7b
je 0x55bdf4
add edx, 0xffffff7b
sub edx, 9
jb 0x55b965
add edx, 0xffffff09
sub edx, 0xb
jb 0x55bc26
sub edx, 0x264
jne 0x55bdee
mov eax, dword [ebp - 4]
call fcn.0055b254
jmp 0x55bdf4
push 1
call sub.user32.dll_GetKeyState
test ax, ax
jl 0x55bdf4
mov eax, dword [edi + 4]
sub eax, 0x100
je 0x55b99b
sub eax, 2
je 0x55bbcd
sub eax, 2
je 0x55b99b
sub eax, 2
je 0x55bbcd
jmp 0x55bdf4
mov eax, dword [edi + 8]
cmp eax, 0x25
jg 0x55b9de
je 0x55ba90
cmp eax, 0x12
jg 0x55b9c7
je 0x55bbb6
sub eax, 9
je 0x55bdf4
sub eax, 4
je 0x55ba03
jmp 0x55bbc2
sub eax, 0x1b
je 0x55ba68
sub eax, 5
je 0x55bdf4
jmp 0x55bbc2
sub eax, 0x26
je 0x55bb79
dec eax
je 0x55bafa
dec eax
je 0x55bb93
sub eax, 0x51
je 0x55bbb6
jmp 0x55bbc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
test eax, eax
je 0x55ba16
mov si, 0xffef
call fcn.004036d4
mov eax, dword [ebp - 4]
call fcn.0055b254
test al, al
jne 0x55bdf4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x40], 0
je 0x55bdf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x30]
mov edx, 0x55be70
call fcn.00404ce8
je 0x55bdf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
cmp byte [eax + 0x35], 0
je 0x55bdf4
push ebp
call fcn.0055b5a4
pop ecx
jmp 0x55bdf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x55ba76
mov byte [eax + 0x44], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x38]
call fcn.00403d50
jmp 0x55be5f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x55baa6
mov eax, dword [ebp - 4]
call fcn.0055b464
jmp 0x55bdf4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x68]
test ebx, ebx
je 0x55bdf4
cmp byte [ebx + 0x34], 0
je 0x55badb
push 0
push 0x25
push pe_nt_image_headers32
mov eax, dword [ebx + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
call fcn.00403d50
jmp 0x55be5f
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
jmp 0x55bdf4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x55bb10
mov eax, dword [ebp - 4]
call fcn.0055b334
jmp 0x55bdf4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x68], 0
je 0x55bdf4
mov eax, dword [ebp - 4]
call fcn.0055b254
test al, al
jne 0x55bdf4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x68]
cmp byte [ebx + 0x34], 0
je 0x55bb5a
push 0
push 0x27
push pe_nt_image_headers32
mov eax, dword [ebx + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
call fcn.00403d50
jmp 0x55be5f
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
jmp 0x55bdf4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
jne 0x55bdf4
mov eax, dword [ebp - 4]
call fcn.0055b464
jmp 0x55bdf4
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
jne 0x55bba9
mov eax, dword [ebp - 4]
call fcn.0055b334
jmp 0x55bdf4
mov eax, dword [ebp - 4]
call fcn.0055b254
jmp 0x55bdf4
push ebp
call fcn.0055b5a4
pop ecx
jmp 0x55bdf4
push edi
call sub.user32.dll_TranslateMessage
jmp 0x55bdf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dl, byte [edi + 8]
call fcn.0055a0b0
test eax, eax
je 0x55bdf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dl, byte [edi + 8]
call fcn.0055a0b0
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x40], ebx
test ebx, ebx
je 0x55bc07
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
jmp 0x55bdf4
sub eax, 0x200
je 0x55bc3b
sub eax, 2
je 0x55bd2b
jmp 0x55bdf4
xor eax, eax
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0xe]
mov eax, dword [edi + 0xc]
call fcn.004079b8
lea eax, [ebp - 0xe]
push eax
mov eax, dword [edi]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
cmp eax, dword [0x58c91c]
jne 0x55bc71
mov eax, dword [ebp - 0xa]
cmp eax, dword [0x58c920]
je 0x55bdf4
mov esi, dword [ebp - 4]
push dword [ebp - 0xa]
push dword [ebp - 0xe]
lea edx, [ebp - 0x64]
mov eax, dword [esi + 0x3c]
call fcn.004731b0
lea eax, [ebp - 0x64]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55bc9e
lea edx, [ebp - 0xe]
mov eax, esi
call fcn.0055ab70
jmp 0x55bd14
mov esi, dword [ebp - 4]
jmp 0x55bca5
mov esi, eax
mov eax, dword [esi + 0x68]
test eax, eax
jne 0x55bca3
test esi, esi
je 0x55bd14
mov ebx, dword [esi + 0x40]
lea edx, [ebp - 0xe]
mov eax, esi
call fcn.0055ab70
cmp ebx, dword [esi + 0x40]
je 0x55bd0d
cmp esi, dword [ebp - 4]
je 0x55bd0d
mov ebx, dword [ebp - 4]
cmp esi, ebx
je 0x55bcec
push 0
push 0x1b
push pe_nt_image_headers32
mov eax, dword [ebx + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
mov ebx, dword [ebx + 0x68]
cmp esi, ebx
jne 0x55bcce
push 0
push 0
push 0x46f
mov eax, dword [esi + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
call fcn.00403d50
jmp 0x55be5f
mov esi, dword [esi + 0x6c]
test esi, esi
jne 0x55bcb0
mov eax, dword [ebp - 0xe]
mov dword [0x58c91c], eax
mov eax, dword [ebp - 0xa]
mov dword [0x58c920], eax
jmp 0x55bdf4
lea edx, [ebp - 0xe]
mov eax, dword [edi + 0xc]
call fcn.004079b8
lea eax, [ebp - 0xe]
push eax
mov eax, dword [edi]
push eax
call sub.user32.dll_ClientToScreen
mov eax, dword [ebp - 0xe]
mov dword [ebp - 0x16], eax
mov eax, dword [ebp - 0xa]
mov dword [ebp - 0x12], eax
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0xe]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00473354
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xe], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xa], eax
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x40]
test ebx, ebx
je 0x55bda7
push dword [ebp - 0xa]
push dword [ebp - 0xe]
lea eax, [ebx + 0x95]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55bda7
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0047a20c
push eax
call sub.user32.dll_PostMessageA
jmp 0x55bdf4
mov esi, dword [ebp - 4]
xor ebx, ebx
jmp 0x55bdd9
lea ecx, [ebp - 0xe]
lea edx, [ebp - 0x16]
mov eax, dword [esi + 0x3c]
call fcn.00473354
push dword [ebp - 0xa]
push dword [ebp - 0xe]
mov eax, dword [esi + 0x40]
add eax, 0x95
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x55bdd6
mov bl, 1
mov esi, dword [esi + 0x68]
test esi, esi
je 0x55bde1
test bl, bl
je 0x55bdae
test bl, bl
jne 0x55bdf4
push ebp
call fcn.0055b5a4
pop ecx
jmp 0x55bdf4
push edi
call sub.user32.dll_DispatchMessageA
push ebp
call fcn.0055b5d0
pop ecx
test al, al
je 0x55be15
push 0
push 0
push 0
push 0
push edi
call sub.user32.dll_PeekMessageA
test eax, eax
jne 0x55b75e
push ebp
call fcn.0055b5d0
pop ecx
test al, al
jne 0x55b74a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55be5f
mov eax, dword [ebp - 0x20]
push eax
push 0
call sub.user32.dll_KillTimer
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x55be4b
mov edx, dword [eax]
call dword [edx + 0x38]
mov eax, dword [ebp - 4]
mov byte [eax + 0x45], 0
call fcn.00519190
ret
mov al, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret