Function at 0x417d7a
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
lea esi, [ebp - 0x18]
cmp dword [0x55f2c4], 0
je 0x41812c
movzx eax, word [ebp + 8]
mov dword [ebp - 8], eax
mov edx, dword [ebp + 8]
shr edx, 0x10
and dx, 0xffff
movzx ecx, dx
mov dword [ebp - 4], ecx
mov ebx, dword [0x56f010]
test ebx, ebx
je 0x417faa
push esi
push edi
mov edi, esi
lea esi, [ebx + 0x9dc]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc dword [esi + 8]
add dword [esi + 0xc], 2
cmp dword [ebx + 0x9ec], 0
je 0x417f9c
push dword [ebp - 4]
push dword [ebp - 8]
push esi
call sub.USER32.dll_PtInRect
test eax, eax
je 0x417f9c
cmp edi, 1
jne 0x417e5c
push 0
push dword [ebx]
call sub.USER32.dll_GetSystemMenu
mov esi, eax
test esi, esi
jne 0x417e17
push 0
call fcn.0042c6cc
jmp 0x417faa
lea eax, [ebp - 8]
push eax
push dword [0x55f2f0]
call sub.USER32.dll_ClientToScreen
mov dword [0x55f2fc], 1
push 0
push dword [ebx]
push 0
push dword [ebp - 4]
push dword [ebp - 8]
push 0
push esi
call sub.USER32.dll_TrackPopupMenu
test eax, eax
jne 0x417e4f
push 0
call fcn.0042c6cc
xor edx, edx
mov dword [0x55f2fc], edx
jmp 0x417faa
push 0x12
call sub.USER32.dll_GetKeyState
movsx ecx, ax
and ecx, 0x8000
cmp ecx, 0x8000
jne 0x417e7f
push ebx
call fcn.004177f3
jmp 0x417faa
cmp dword [0x56f024], 0
je 0x417f2d
push 0x10
call sub.USER32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
jne 0x417eba
push 0
push 0xf060
push 0x112
push dword [ebx]
call sub.USER32.dll_PostMessageA
jmp 0x417faa
push 0x11
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x417efe
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417faa
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417faa
push 1
push dword [ebx]
call fcn.0040b76d
jmp 0x417faa
mov ecx, dword [ebx]
cmp ecx, dword [0x56f024]
jne 0x417f91
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417f91
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417f91
push 1
push dword [ebx]
call fcn.0040b76d
jmp 0x417faa
push 0x10
call sub.USER32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
jne 0x417f58
push 0
push 0xf060
push 0x112
push dword [ebx]
call sub.USER32.dll_PostMessageA
jmp 0x417faa
push 0x11
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x417f91
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417faa
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417faa
push 1
push dword [ebx]
call fcn.0040b76d
jmp 0x417faa
push 0
push dword [ebx]
call fcn.0040b4c4
jmp 0x417faa
mov ebx, dword [ebx + 0xd3c]
test ebx, ebx
jne 0x417dbc
test ebx, ebx
jne 0x41812c
test edi, edi
jne 0x418121
push dword [0x56f01c]
call sub.USER32.dll_UpdateWindow
push dword [0x56f018]
call sub.USER32.dll_UpdateWindow
call fcn.00416d6a
xor ecx, ecx
mov dword [0x55f300], ecx
mov dword [0x55f2f8], 1
push 1
lea eax, [ebp - 8]
push eax
push dword [0x56f018]
push dword [0x55f2f0]
call sub.USER32.dll_MapWindowPoints
jmp 0x4180f7
call sub.USER32.dll_GetActiveWindow
cmp eax, dword [0x56f018]
je 0x41803e
mov eax, dword [0x55f300]
test eax, eax
jle 0x418032
push eax
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 4]
shl ecx, 0x10
or edx, ecx
push edx
call fcn.004178fa
jmp 0x4180f7
xor eax, eax
mov dword [0x55f2f8], eax
jmp 0x4180f7
push 0x209
push 0x100
push dword [0x56f018]
lea edx, [ebp - 0x34]
push edx
call sub.USER32.dll_GetMessageA
dec eax
jne 0x4180f7
cmp dword [ebp - 0x30], 0x200
jne 0x418099
inc dword [0x55f300]
cmp dword [0x55f300], 1
jne 0x41808d
push 0
movzx ecx, word [ebp - 8]
movzx eax, word [ebp - 4]
shl eax, 0x10
or ecx, eax
push ecx
call fcn.004178fa
jmp 0x4180f7
push 0
push dword [ebp - 0x28]
call fcn.004178fa
jmp 0x4180f7
cmp dword [ebp - 0x30], 0x202
jne 0x4180c0
mov eax, dword [0x55f300]
test eax, eax
jle 0x4180b6
push eax
push dword [ebp - 0x28]
call fcn.004178fa
jmp 0x4180f7
xor edx, edx
mov dword [0x55f2f8], edx
jmp 0x4180f7
mov eax, dword [ebp - 0x30]
cmp eax, 0x100
jb 0x4180f7
cmp eax, 0x108
ja 0x4180f7
mov eax, dword [0x55f300]
test eax, eax
jle 0x4180f0
push eax
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 4]
shl ecx, 0x10
or edx, ecx
push edx
call fcn.004178fa
jmp 0x4180f7
xor eax, eax
mov dword [0x55f2f8], eax
cmp dword [0x55f2f8], 0
jne 0x418003
push dword [0x56f01c]
call sub.USER32.dll_UpdateWindow
push dword [0x56f018]
call sub.USER32.dll_UpdateWindow
call fcn.00416d6a
jmp 0x41812c
dec edi
jne 0x41812c
push dword [ebp + 8]
call fcn.004cf008
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8