Function at 0x467283
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x20
mov eax, 0x589993
call fcn.005664e2
mov ebx, dword [ebp + 8]
xor edi, edi
test ebx, ebx
jne 0x46729d
mov dword [ebp - 0x20], edi
jmp 0x4672a3
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
mov dword [ebp - 0x28], eax
call fcn.00429f8d
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], esi
cmp eax, 0x100
jb 0x4672d1
cmp eax, 0x109
jbe 0x4672df
add eax, 0xfffffe00
cmp eax, 9
ja 0x4673ac
test esi, esi
je 0x4673ac
mov eax, esi
mov dword [ebp - 0x18], esi
cmp dword [eax + 0x74], edi
jne 0x467321
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00429f8d
cmp eax, ebx
mov eax, dword [ebp - 0x18]
je 0x46731d
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00429f8d
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x4672ec
test eax, eax
je 0x467352
mov ecx, dword [eax + 0x74]
test ecx, ecx
je 0x467352
mov ecx, dword [ecx + 0x58]
test ecx, ecx
je 0x467352
mov eax, dword [ecx]
push dword [ebp + 0xc]
push ecx
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x5959e4]
call esi
test eax, eax
jne 0x46734c
inc eax
jmp 0x4674ad
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x101
je 0x46736d
cmp ecx, 0x100
je 0x46736d
cmp ecx, 0x102
jne 0x4673ac
test eax, eax
je 0x4673ac
mov edx, dword [eax + 0x74]
test edx, edx
je 0x4673ac
mov eax, dword [ebp + 0xc]
push 0xd
movzx ecx, word [eax + 8]
mov dword [ebp - 0x18], ecx
pop ecx
cmp word [ebp - 0x18], cx
jne 0x46739a
test byte [edx + 0x84], 1
jne 0x46743a
jmp 0x4673af
push 0x1b
pop ecx
cmp word [ebp - 0x18], cx
jne 0x4673af
test byte [edx + 0x84], 2
jmp 0x467392
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.00429f8d
mov ecx, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x18], edx
sub ecx, 0x100
je 0x4674b5
dec ecx
sub ecx, 1
je 0x467403
sub ecx, 4
jne 0x4674fc
test esi, esi
jne 0x4673f1
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x4674fc
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp + 0xc]
push 0x20
pop eax
cmp word [esi + 8], ax
je 0x4674ff
jmp 0x467406
mov esi, dword [ebp + 0xc]
push esi
push edx
call fcn.00467d1a
cmp dword [ebp - 0x1c], 0x102
jne 0x46741e
test al, 0x84
jne 0x4674ff
movzx ecx, word [esi + 8]
push 9
pop edx
cmp cx, dx
jne 0x467432
test al, 2
jne 0x4674ff
push 0x20
pop eax
cmp cx, ax
jne 0x46743e
xor eax, eax
jmp 0x4674ad
mov eax, dword [ebp - 0x18]
push esi
push eax
push ebx
call fcn.00467d4a
test eax, eax
je 0x4674ff
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4674ff
push esi
call fcn.00465c1f
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 0x4674ab
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00429f8d
push eax
push esi
call fcn.004678fb
pop ecx
pop ecx
push dword [ebp - 0x20]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4674ab
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00429f8d
push eax
push esi
push ebx
call fcn.00467988
mov eax, edi
call fcn.00566440
ret 8
push dword [ebp + 0xc]
push edx
call fcn.00467d1a
mov edx, eax
mov eax, dword [ebp + 0xc]
push 0x1b
movzx ecx, word [eax + 8]
movzx esi, cx
mov dword [ebp - 0x24], ecx
pop ecx
cmp si, cx
ja 0x4675ea
je 0x46763f
cmp esi, 3
je 0x46763f
push 9
pop eax
cmp si, ax
je 0x46754f
push 0xd
pop eax
cmp si, ax
je 0x467613
mov esi, dword [ebp + 0xc]
test dword [ebx + 0x60], 0x1000
jne 0x467465
push esi
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
mov edi, eax
test edi, edi
je 0x467465
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00429f8d
mov esi, dword [ebp - 0x14]
cmp eax, esi
je 0x467468
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.00429f8d
push eax
call fcn.00467880
pop ecx
jmp 0x467468
test dl, 2
jne 0x4674fc
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
test ax, ax
sets cl
push ecx
mov dword [ebp - 0x24], ecx
mov ecx, ebx
push edi
call fcn.0045ea19
mov ecx, eax
test ecx, ecx
je 0x4674fc
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x46759d
mov eax, dword [eax]
push dword [ebp + 0xc]
mov esi, dword [eax + 0xac]
mov ecx, esi
call dword [0x5959e4]
mov ecx, dword [ebp - 0x1c]
call esi
jmp 0x467462
mov eax, dword [ecx]
test eax, eax
jne 0x4675be
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4675ae
mov eax, edi
jmp 0x4675b1
mov eax, dword [eax + 0x20]
push dword [ebp - 0x24]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetNextDlgTabItem]
push eax
call fcn.00429f8d
mov esi, eax
test esi, esi
je 0x467462
mov ecx, dword [ebx + 0x70]
push esi
mov dword [ecx + 0x70], edi
call fcn.00467a66
push esi
push dword [ebp - 0x14]
call fcn.004678fb
pop ecx
pop ecx
jmp 0x467462
cmp esi, 0x25
jb 0x4677a9
push 0x26
pop ecx
cmp cx, si
jae 0x4676ad
cmp esi, 0x28
jbe 0x4676aa
cmp word [ebp - 0x24], 0x2b
jne 0x4677a9
test dl, 4
jne 0x4674fc
mov esi, dword [ebp - 0x14]
push esi
call fcn.0046725d
pop ecx
test al, 0x10
je 0x467637
mov ecx, esi
call fcn.0045e83d
test esi, esi
jne 0x467653
jmp 0x467642
push ebx
call fcn.00467f38
jmp 0x467642
push 2
pop eax
push eax
push ebx
call fcn.00467a97
mov esi, eax
test esi, esi
je 0x4674fc
mov ecx, esi
call fcn.0045edce
test eax, eax
jne 0x46766a
push edi
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4674fc
cmp dword [esi + 0x74], edi
je 0x4674fc
push edi
push edi
push edi
mov dword [ebp - 4], edi
xor edi, edi
inc edi
push edi
push 0xfffffdd9
push esi
call fcn.0045ed18
add esp, 0x18
jmp 0x4676a1
or dword [ebp - 4], 0xffffffff
jmp 0x467465
cmp cx, si
sbb ecx, ecx
push eax
push dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x1c], ecx
call fcn.00467d1a
test al, 1
jne 0x4674fc
push 0x26
pop eax
mov ecx, ebx
push edi
cmp si, ax
ja 0x4676d6
call fcn.0045ebc0
jmp 0x4676db
call fcn.0045e9c9
mov esi, eax
test esi, esi
je 0x4674fc
cmp dword [esi + 8], edi
je 0x4676f2
push esi
mov ecx, ebx
call fcn.0045f018
mov eax, dword [esi + 4]
mov dword [ebp - 0x24], eax
test eax, eax
je 0x467717
mov eax, dword [eax]
push dword [ebp + 0xc]
mov esi, dword [eax + 0xac]
mov ecx, esi
call dword [0x5959e4]
mov ecx, dword [ebp - 0x24]
jmp 0x467596
mov eax, dword [esi]
test eax, eax
jne 0x467738
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x467728
mov eax, edi
jmp 0x46772b
mov eax, dword [eax + 0x20]
push dword [ebp - 0x1c]
push eax
push dword [ebx + 0x20]
call dword [sym.imp.USER32.dll_GetNextDlgGroupItem]
push eax
call fcn.00429f8d
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4674fc
mov ecx, dword [ebx + 0x70]
push eax
mov dword [ecx + 0x70], edi
call fcn.00467a66
cmp dword [esi + 8], edi
je 0x467462
mov eax, dword [ebp - 0x1c]
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 - 0x1c]
inc edi
push edi
push 0xf1
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x1c]
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 - 0x1c]
call fcn.00467a66
jmp 0x467465
mov esi, eax
jmp 0x4674ff