Function at 0x417daa
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 [0x55d2cc], 0
je 0x41815c
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 [0x56cee0]
test ebx, ebx
je 0x417fda
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 0x417fcc
push dword [ebp - 4]
push dword [ebp - 8]
push esi
call sub.USER32.dll_PtInRect
test eax, eax
je 0x417fcc
cmp edi, 1
jne 0x417e8c
push 0
push dword [ebx]
call sub.USER32.dll_GetSystemMenu
mov esi, eax
test esi, esi
jne 0x417e47
push 0
call fcn.0042c4bf
jmp 0x417fda
lea eax, [ebp - 8]
push eax
push dword [0x55d2f8]
call sub.USER32.dll_ClientToScreen
mov dword [0x55d304], 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 0x417e7f
push 0
call fcn.0042c4bf
xor edx, edx
mov dword [0x55d304], edx
jmp 0x417fda
push 0x12
call sub.USER32.dll_GetKeyState
movsx ecx, ax
and ecx, 0x8000
cmp ecx, 0x8000
jne 0x417eaf
push ebx
call fcn.00417823
jmp 0x417fda
cmp dword [0x56cef4], 0
je 0x417f5d
push 0x10
call sub.USER32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
jne 0x417eea
push 0
push 0xf060
push 0x112
push dword [ebx]
call sub.USER32.dll_PostMessageA
jmp 0x417fda
push 0x11
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x417f2e
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417fda
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417fda
push 1
push dword [ebx]
call fcn.0040b765
jmp 0x417fda
mov ecx, dword [ebx]
cmp ecx, dword [0x56cef4]
jne 0x417fc1
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417fc1
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417fc1
push 1
push dword [ebx]
call fcn.0040b765
jmp 0x417fda
push 0x10
call sub.USER32.dll_GetKeyState
movsx eax, ax
and eax, 0x8000
cmp eax, 0x8000
jne 0x417f88
push 0
push 0xf060
push 0x112
push dword [ebx]
call sub.USER32.dll_PostMessageA
jmp 0x417fda
push 0x11
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
jne 0x417fc1
push dword [ebx]
call sub.USER32.dll_IsIconic
test eax, eax
jne 0x417fda
push dword [ebx]
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x417fda
push 1
push dword [ebx]
call fcn.0040b765
jmp 0x417fda
push 0
push dword [ebx]
call fcn.0040b4bc
jmp 0x417fda
mov ebx, dword [ebx + 0xd18]
test ebx, ebx
jne 0x417dec
test ebx, ebx
jne 0x41815c
test edi, edi
jne 0x418151
push dword [0x56ceec]
call sub.USER32.dll_UpdateWindow
push dword [0x56cee8]
call sub.USER32.dll_UpdateWindow
call fcn.00416d9a
xor ecx, ecx
mov dword [0x55d308], ecx
mov dword [0x55d300], 1
push 1
lea eax, [ebp - 8]
push eax
push dword [0x56cee8]
push dword [0x55d2f8]
call sub.USER32.dll_MapWindowPoints
jmp 0x418127
call sub.USER32.dll_GetActiveWindow
cmp eax, dword [0x56cee8]
je 0x41806e
mov eax, dword [0x55d308]
test eax, eax
jle 0x418062
push eax
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 4]
shl ecx, 0x10
or edx, ecx
push edx
call fcn.0041792a
jmp 0x418127
xor eax, eax
mov dword [0x55d300], eax
jmp 0x418127
push 0x209
push 0x100
push dword [0x56cee8]
lea edx, [ebp - 0x34]
push edx
call sub.USER32.dll_GetMessageA
dec eax
jne 0x418127
cmp dword [ebp - 0x30], 0x200
jne 0x4180c9
inc dword [0x55d308]
cmp dword [0x55d308], 1
jne 0x4180bd
push 0
movzx ecx, word [ebp - 8]
movzx eax, word [ebp - 4]
shl eax, 0x10
or ecx, eax
push ecx
call fcn.0041792a
jmp 0x418127
push 0
push dword [ebp - 0x28]
call fcn.0041792a
jmp 0x418127
cmp dword [ebp - 0x30], 0x202
jne 0x4180f0
mov eax, dword [0x55d308]
test eax, eax
jle 0x4180e6
push eax
push dword [ebp - 0x28]
call fcn.0041792a
jmp 0x418127
xor edx, edx
mov dword [0x55d300], edx
jmp 0x418127
mov eax, dword [ebp - 0x30]
cmp eax, 0x100
jb 0x418127
cmp eax, 0x108
ja 0x418127
mov eax, dword [0x55d308]
test eax, eax
jle 0x418120
push eax
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 4]
shl ecx, 0x10
or edx, ecx
push edx
call fcn.0041792a
jmp 0x418127
xor eax, eax
mov dword [0x55d300], eax
cmp dword [0x55d300], 0
jne 0x418033
push dword [0x56ceec]
call sub.USER32.dll_UpdateWindow
push dword [0x56cee8]
call sub.USER32.dll_UpdateWindow
call fcn.00416d9a
jmp 0x41815c
dec edi
jne 0x41815c
push dword [ebp + 8]
call fcn.004ce25c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8