Function at 0x436b89
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0xc]
mov eax, 0x200
cmp ecx, eax
push edi
ja 0x436d38
je 0x436cea
mov eax, 0x100
cmp ecx, eax
ja 0x436c2a
je 0x436c68
cmp ecx, 2
je 0x436c1d
cmp ecx, 5
je 0x436c0c
cmp ecx, 6
jbe 0x436f10
cmp ecx, 8
jbe 0x436bfa
cmp ecx, 0xa
je 0x436bfa
cmp ecx, 0xf
je 0x436bec
cmp ecx, 0x14
jne 0x436f10
xor eax, eax
inc eax
jmp 0x436f22
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x64]
xor eax, eax
jmp 0x436f22
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x436f10
call fcn.0043f1b7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
jmp 0x436f10
and dword [ebp + 8], 0
mov byte [esi + 0x14], 0
jmp 0x436f10
mov eax, ecx
sub eax, 0x101
je 0x436cdb
dec eax
je 0x436ccc
dec eax
dec eax
je 0x436c68
dec eax
je 0x436cdb
sub eax, 0xc
jne 0x436f10
mov ecx, dword [ebp + 0x10]
mov eax, dword [esi]
shr ecx, 0x10
push ecx
push dword [ebp + 0x10]
mov ecx, esi
call dword [eax + 0x60]
jmp 0x436f10
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov ebx, dword [ebp + 0x10]
push 0x11
call edi
test ax, ax
jns 0x436c80
or ebx, 0x20000
push 0x12
call edi
test ax, ax
jns 0x436c8f
or ebx, 0x10000
push 0x10
call edi
test ax, ax
jns 0x436c9e
or ebx, 0x40000
test dword [ebp + 0x14], 0x40000000
jne 0x436cb7
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x4c]
test al, al
jne 0x436be4
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x50]
test al, al
je 0x436f10
jmp 0x436be4
push dword [ebp + 0x10]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x58]
jmp 0x436f10
push dword [ebp + 0x10]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
jmp 0x436f10
mov eax, dword [ebp + 0x14]
movsx edi, word [ebp + 0x14]
shr eax, 0x10
cmp byte [esi + 0x14], 0
movsx ebx, ax
jne 0x436d2a
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 0xc], 3
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov byte [esi + 0x14], 1
mov eax, dword [esi]
push ebx
push edi
mov ecx, esi
call dword [eax + 0x20]
jmp 0x436f10
mov eax, 0x207
cmp ecx, eax
ja 0x436e06
je 0x436deb
mov eax, ecx
sub eax, 0x201
je 0x436dd0
dec eax
je 0x436db5
dec eax
je 0x436d9a
dec eax
je 0x436d7f
dec eax
jne 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x30]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x34]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x48]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x2c]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x28]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x3c]
jmp 0x436f10
mov eax, ecx
sub eax, 0x208
je 0x436efa
dec eax
dec eax
je 0x436ec1
sub eax, 4
je 0x436e88
sub eax, 0x93
je 0x436e44
dec eax
dec eax
jne 0x436f10
cmp byte [esi + 0x14], al
je 0x436f10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
jmp 0x436c21
cmp byte [esi + 0x14], 0
je 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
push ecx
movzx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x24]
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 0xc], 3
call dword [sym.imp.COMCTL32.dll__TrackMouseEvent]
jmp 0x436f10
movsx eax, word [ebp + 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
movsx eax, ax
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [ebp + 0x10]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call dword [eax + 0x44]
jmp 0x436f10
movsx eax, word [ebp + 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x14]
shr eax, 0x10
movsx eax, ax
mov dword [ebp - 4], eax
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [ebp + 0x10]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
push dword [ebp - 4]
mov ecx, esi
push dword [ebp - 8]
call dword [eax + 0x40]
jmp 0x436f10
mov ecx, dword [ebp + 0x14]
mov eax, dword [esi]
shr ecx, 0x10
movsx ecx, cx
push ecx
movsx ecx, word [ebp + 0x14]
push ecx
mov ecx, esi
call dword [eax + 0x38]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
leave
ret 0x10