Function at 0x42c485
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x20
mov eax, 0x570562
call fcn.00548656
mov ebx, dword [ebp + 8]
xor edi, edi
test ebx, ebx
jne 0x42c49f
mov dword [ebp - 0x24], edi
jmp 0x42c4a5
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
mov dword [ebp - 0x28], eax
call fcn.0040ab6f
mov esi, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], esi
cmp eax, 0x100
jb 0x42c4d3
cmp eax, 0x109
jbe 0x42c4e1
add eax, 0xfffffe00
cmp eax, 9
ja 0x42c5fa
test esi, esi
je 0x42c5fa
cmp dword [esi + 0x74], edi
jne 0x42c516
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0040ab6f
cmp eax, ebx
je 0x42c516
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0040ab6f
mov esi, eax
test esi, esi
jne 0x42c4e9
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x42c54a
mov ecx, dword [esi + 0x74]
test ecx, ecx
je 0x42c54a
mov ecx, dword [ecx + 0x58]
test ecx, ecx
je 0x42c54a
mov eax, dword [ecx]
push dword [ebp + 0xc]
push ecx
mov esi, dword [eax + 0x14]
mov ecx, esi
call fcn.005485ae
call esi
test eax, eax
jne 0x42c547
inc eax
jmp 0x42c6a8
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, 0x101
je 0x42c562
cmp eax, 0x100
je 0x42c562
cmp eax, 0x102
jne 0x42c59d
test esi, esi
je 0x42c59d
mov edx, dword [esi + 0x74]
test edx, edx
je 0x42c59d
mov eax, dword [ebp + 0xc]
push 0xd
pop ecx
movzx esi, word [eax + 8]
cmp si, cx
jne 0x42c585
test byte [edx + 0x84], 1
jne 0x42c596
push 0x1b
pop ecx
cmp si, cx
jne 0x42c5a0
test byte [edx + 0x84], 2
je 0x42c5a0
xor eax, eax
jmp 0x42c6a8
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
push dword [eax]
call fcn.0040ab6f
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edi
sub ecx, 0x100
je 0x42c6b0
dec ecx
sub ecx, 1
je 0x42c5ff
sub ecx, 4
jne 0x42c800
test esi, esi
jne 0x42c5e8
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x42c800
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp + 0xc]
push 0x20
pop eax
cmp word [esi + 8], ax
je 0x42c803
jmp 0x42c602
mov eax, dword [ebp + 0xc]
jmp 0x42c5a3
mov esi, dword [ebp + 0xc]
push esi
push edx
call fcn.0042cf08
cmp dword [ebp - 0x18], 0x102
jne 0x42c61a
test al, 0x84
jne 0x42c803
movzx ecx, word [esi + 8]
push 9
pop edx
cmp cx, dx
jne 0x42c62e
test al, 2
jne 0x42c803
push 0x20
pop eax
cmp cx, ax
je 0x42c596
push esi
push dword [ebp - 0x1c]
push ebx
call fcn.0042cf38
test eax, eax
je 0x42c803
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x42c803
push esi
call fcn.0042ae98
xor edi, edi
inc edi
mov esi, dword [ebp - 0x14]
push dword [ebp - 0x28]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42c6a6
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0040ab6f
push eax
push esi
call fcn.0042cad6
pop ecx
pop ecx
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42c6a6
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0040ab6f
push eax
push esi
push ebx
call fcn.0042cb62
mov eax, edi
call fcn.005485b4
ret 8
push dword [ebp + 0xc]
push edx
call fcn.0042cf08
mov ecx, eax
mov eax, dword [ebp + 0xc]
movzx esi, word [eax + 8]
cmp esi, 0x1b
ja 0x42c783
je 0x42c7de
cmp esi, 3
je 0x42c7de
push 9
pop edx
cmp esi, edx
je 0x42c6f1
cmp esi, 0xd
je 0x42c7a9
mov esi, eax
jmp 0x42c803
test cl, 2
jne 0x42c6ea
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
test ax, ax
sets cl
push ecx
mov dword [ebp - 0x18], ecx
mov ecx, ebx
push edi
call fcn.0040fd78
mov ecx, eax
test ecx, ecx
je 0x42c800
mov eax, dword [ecx + 4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x42c742
mov eax, dword [eax]
push dword [ebp + 0xc]
mov esi, dword [eax + 0xac]
mov ecx, esi
call fcn.005485ae
mov ecx, dword [ebp - 0x20]
call esi
jmp 0x42c65d
cmp dword [ecx], 0
je 0x42c750
push dword [ecx]
call fcn.0040ab6f
jmp 0x42c75d
push dword [ebp - 0x18]
mov ecx, ebx
push dword [ebp - 0x1c]
call fcn.004079a6
mov esi, eax
test esi, esi
je 0x42c65d
mov eax, dword [ebx + 0x70]
push esi
mov dword [eax + 0x70], edi
call fcn.0042cc42
push esi
push dword [ebp - 0x14]
call fcn.0042cad6
pop ecx
pop ecx
jmp 0x42c65d
cmp esi, 0x25
jb 0x42c6ea
push 0x26
pop edx
cmp edx, esi
jae 0x42c898
cmp esi, 0x28
jbe 0x42c896
cmp esi, 0x2b
jne 0x42c6ea
test cl, 4
jne 0x42c6ea
mov esi, dword [ebp - 0x14]
push esi
call fcn.0042c43b
pop ecx
test al, 0x10
je 0x42c7cf
mov ecx, esi
mov dword [ebp - 0x20], esi
call fcn.0040fb7d
mov dword [ebp - 0x1c], eax
jmp 0x42c7d5
push ebx
call fcn.0042d120
mov esi, dword [ebp - 0x20]
test esi, esi
jne 0x42c7ee
jmp 0x42c7e1
push 2
pop eax
push eax
push ebx
call fcn.0042cc73
mov esi, eax
test esi, esi
je 0x42c800
mov ecx, esi
call fcn.00410144
test eax, eax
jne 0x42c853
push edi
call dword [sym.imp.USER32.dll_MessageBeep]
mov esi, dword [ebp + 0xc]
test dword [ebx + 0x60], 0x1000
jne 0x42c660
push esi
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
mov edi, eax
test edi, edi
je 0x42c660
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0040ab6f
mov esi, dword [ebp - 0x14]
cmp eax, esi
je 0x42c663
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0040ab6f
push eax
call fcn.0042ca5c
pop ecx
jmp 0x42c663
cmp dword [esi + 0x74], edi
je 0x42c800
push edi
push edi
push edi
mov dword [ebp - 4], edi
xor edi, edi
inc edi
push edi
push 0xfffffdd9
push esi
call fcn.00410090
add esp, 0x18
or dword [ebp - 4], 0xffffffff
jmp 0x42c660
cmp edx, esi
sbb ecx, ecx
push eax
push dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x1c], ecx
call fcn.0042cf08
test al, 1
jne 0x42c800
mov ecx, ebx
push edi
cmp esi, 0x26
ja 0x42c8be
call fcn.0040ff3d
jmp 0x42c8c3
call fcn.0040fd26
mov esi, eax
test esi, esi
je 0x42c800
cmp dword [esi + 8], edi
je 0x42c8da
push esi
mov ecx, ebx
call fcn.0041038c
mov eax, dword [esi + 4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x42c8fe
mov eax, dword [eax]
push dword [ebp + 0xc]
mov esi, dword [eax + 0xac]
mov ecx, esi
call fcn.005485ae
mov ecx, dword [ebp - 0x20]
jmp 0x42c73b
cmp dword [esi], 0
je 0x42c911
push dword [esi]
call fcn.0040ab6f
mov ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x42c923
push dword [ebp - 0x1c]
mov ecx, ebx
push dword [ebp - 0x14]
call fcn.0042c461
mov ecx, eax
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x42c800
mov eax, dword [ebx + 0x70]
push ecx
mov dword [eax + 0x70], edi
call fcn.0042cc42
cmp dword [esi + 8], edi
je 0x42c65d
mov eax, dword [ebp - 0x18]
push 0xfffffffffffffff4
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetWindowLongW]
push edi
xor edi, edi
mov esi, eax
mov eax, dword [ebp - 0x18]
inc edi
push edi
push 0xf1
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x18]
push dword [eax + 0x20]
movzx eax, si
push eax
push 0x111
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x18]
call fcn.0042cc42
jmp 0x42c660