Function at 0xf76aef2
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x224], edi
cmp dword [0xf7ae3ec], edi
je 0xf76af24
cmp dword [ebp + 0x20], edi
jne 0xf76af19
mov dword [0xf7ae3ec], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0xf76af33
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
mov eax, dword [ebp + 0x1c]
cmp eax, 0xffffffff
je 0xf76afb8
mov dword [ebp - 0x228], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x120], ecx
cmp eax, 0x100
jb 0xf76b017
cmp eax, 0x101
jbe 0xf76af83
cmp eax, 0x102
je 0xf76b121
cmp eax, 0x104
jb 0xf76b017
cmp eax, 0x105
ja 0xf76b017
cmp eax, 0x100
je 0xf76af96
cmp eax, 0x104
mov eax, 7
jne 0xf76af9b
mov eax, 5
mov ecx, dword [ebp - 0x120]
movzx edi, byte [ecx + eax + 0xc0]
cmp edi, 0xff
jne 0xf76b002
xor eax, eax
jmp 0xf76af1b
push 0x10
mov ebx, 0
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jge 0xf76afcf
mov ebx, 1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov eax, 0
jge 0xf76afe6
mov eax, 2
or ebx, eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
and eax, 0x20000000
shr eax, 0x1b
or ebx, eax
mov dword [ebp - 0x228], ebx
jmp 0xf76af41
lea eax, [ebp - 0x228]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], ecx
lea eax, [ebp - 0x240]
xor ebx, ebx
push eax
push edi
push dword [ebp + 8]
call fcn.0f72f6a9
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x224], ebx
je 0xf76b228
mov ax, word [ebp - 0x20]
cmp ax, word [ebp - 2]
je 0xf76b0fb
mov al, byte [ebp - 1]
test al, al
je 0xf76b1ef
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0xf76b1ef
xor edi, edi
push 3
push 0x102
lea eax, [ebp - 0x20]
push 0x102
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
movzx ecx, byte [ebp - 1]
mov eax, dword [ebp + 0x14]
push 3
push 0x102
push 0x102
push esi
mov dword [eax], ecx
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0xf76b0c6
mov al, byte [ebp - 0x18]
inc ebx
push 3
push 0x102
push 0x102
mov byte [ebp + ebx - 0x121], al
push esi
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0xf76b0a0
movzx eax, byte [ebp - 2]
push 1
push eax
push 0x102
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
test ebx, ebx
jle 0xf76b0fb
mov eax, edi
push 1
movzx ecx, byte [ebp + eax - 0x120]
inc edi
push ecx
push 0x102
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
cmp edi, ebx
jl 0xf76b0dd
cmp dword [ebp - 0x124], 0
jne 0xf76b116
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0xf76b116
mov dword [ebp - 0x124], 0xffffffff
mov eax, dword [ebp - 0x124]
jmp 0xf76af1b
mov ecx, dword [ebp - 0x120]
movzx edi, byte [ecx + 0xc6]
cmp edi, 0xff
jne 0xf76b13d
xor eax, eax
jmp 0xf76af1b
mov eax, dword [ebp + 0x14]
mov al, byte [eax]
push eax
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0xf76b1e1
mov ecx, dword [ebp - 0x120]
cmp dword [ebp + 0x20], 0
mov eax, dword [ecx]
mov ebx, dword [eax + 0x20]
jne 0xf76b1d5
test ebx, ebx
je 0xf76b186
push 0xf7b88b0
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0xf76b1d5
push 0xf7b88b8
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0xf76b1d5
mov dword [0xf7ae3ec], 1
push 2
lea eax, [ebp - 0x20]
push 0x102
push 0x102
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0xf76b1e1
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 2]
mov ax, word [eax]
mov dword [ebp - 0x240], ecx
shl ax, 8
mov dword [ebp - 0x224], ecx
add ax, word [ebp - 0x18]
mov word [ebp - 2], ax
mov word [ebp - 0x20], ax
jmp 0xf76b017
mov dword [0xf7ae3ec], 0
jmp 0xf76b190
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x240], eax
jmp 0xf76b017
cmp byte [ebp - 1], 0
jne 0xf76b0fb
push 3
lea eax, [ebp - 0x20]
push 0x102
push 0x102
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
movzx ecx, byte [ebp - 2]
mov edx, dword [ebp + 0x14]
mov dword [0xf7ae3ec], 0
mov dword [edx], ecx
jmp 0xf76b0fb
xor ebx, ebx
mov eax, dword [ebp + 0x14]
cmp byte [eax + 1], bl
je 0xf76b0fb
xor edi, edi
push 3
push 0x102
lea eax, [ebp - 0x20]
push 0x102
push esi
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0xf76b279
mov al, byte [ebp - 0x18]
inc edi
push 3
push 0x102
push 0x102
mov byte [ebp + edi - 0x225], al
push esi
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0xf76b253
push 1
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax]
push ecx
push 0x102
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
test edi, edi
jle 0xf76b2b0
mov eax, ebx
push 1
movzx ecx, byte [ebp + eax - 0x224]
inc ebx
push ecx
push 0x102
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
cmp ebx, edi
jl 0xf76b292
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x120]
mov cl, byte [eax + 1]
and ecx, 0xff
mov dword [eax], ecx
mov ecx, dword [edx]
cmp dword [ebp + 0x20], 0
mov esi, dword [ecx + 0x20]
jne 0xf76b302
test esi, esi
je 0xf76b2f3
push str.Edit
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0xf76b302
push str.ComboBox
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0xf76b302
mov dword [0xf7ae3ec], 1
jmp 0xf76b0fb
mov dword [0xf7ae3ec], 0
jmp 0xf76b0fb