Function at 0x43e3bd
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x497650]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, ecx
push esi
mov dword [ebp - 0x30], eax
mov eax, dword [ebx - 0x3b8]
push edi
lea ecx, [ebx - 0x3b8]
call dword [eax + 0xe4]
test al, al
je 0x43e43a
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0xf0]
test al, al
je 0x43e43a
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0xf8]
mov edi, dword [ebp + 8]
test al, al
jne 0x43e428
lea eax, [edi - 0x200]
cmp eax, 0xd
jbe 0x43e43a
cmp edi, 0x20a
jne 0x43e44d
test byte [ebp + 0xc], 8
jne 0x43e4c0
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045cc1a
leave
ret 0x10
cmp edi, 0x10f
jne 0x43e4c0
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00418b6c
push eax
call sub.IMM32.dll_ImmGetContext
mov edi, eax
test edi, edi
je 0x43e43a
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetCaretPos]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x20]
push eax
push edi
mov dword [ebp - 0x20], 2
call sub.IMM32.dll_ImmSetCompositionWindow
mov eax, dword [ebx - 0x3b8]
push edi
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00418b6c
push eax
call sub.IMM32.dll_ImmReleaseContext
jmp 0x43e43a
mov byte [ebp - 0x21], 1
cmp edi, 0x200
jb 0x43e4d4
cmp edi, 0x20d
jbe 0x43e4dd
cmp edi, 0x20
jne 0x43e5fe
mov ecx, dword [ebx + 4]
call fcn.0043bf9c
test eax, eax
jne 0x43e52c
cmp edi, 0x201
jb 0x43e52c
cmp edi, 0x205
ja 0x43e52c
mov ecx, dword [ebp + 0x10]
movsx eax, word [ebp + 0x10]
shr ecx, 0x10
movsx ecx, cx
push ecx
push eax
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0041b447
lea ecx, [ebx - 0x3b8]
cmp eax, ecx
jne 0x43e43a
mov ecx, dword [ebx + 4]
call fcn.0043bf9c
neg eax
sbb eax, eax
and eax, 3
jne 0x43e5b9
lea eax, [ebp - 0x14]
push eax
call fcn.0043c10c
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cwde
mov dword [ebp - 0x28], eax
cmp edi, 0x20a
jne 0x43e580
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00418b6c
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push dword [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x43e43a
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0041920d
test al, al
jne 0x43e43a
push 3
pop eax
cmp eax, 3
jne 0x43e43a
cmp edi, 0x20
je 0x43e691
cmp edi, 0x201
je 0x43e5e7
cmp edi, 0x203
je 0x43e5e7
cmp edi, 0x204
jne 0x43e6b1
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x10c]
jmp 0x43e6b1
cmp edi, 0x100
jb 0x43e612
cmp edi, 0x109
jbe 0x43e697
cmp edi, 0x102
je 0x43e697
cmp edi, 0x286
je 0x43e697
cmp edi, 0x7b
jne 0x43e688
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cwde
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00418b6c
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x28]
mov eax, dword [ebx - 0x3b8]
push dword [ebp - 0x2c]
lea ecx, [ebx - 0x3b8]
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0041b447
lea ecx, [ebx - 0x3b8]
cmp eax, ecx
je 0x43e712
jmp 0x43e43a
cmp edi, 0x53
jne 0x43e43a
mov byte [ebp - 0x21], 0
jmp 0x43e712
mov eax, dword [ebx - 0x3b8]
lea ecx, [ebx - 0x3b8]
call dword [eax + pe_nt_image_headers32]
test al, al
je 0x43e43a
cmp edi, 0x102
jne 0x43e712
lea ecx, [ebx - 0x3b8]
call fcn.0043de70
test al, al
je 0x43e712
push 0x15
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je 0x43e6e3
push 0
lea ecx, [ebx - 0x3b8]
call fcn.0043de60
jmp 0x43e70e
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x43e706
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x43e712
movzx eax, word [ebp + 0xc]
shl eax, 8
mov dword [ebx + 0x24], eax
jmp 0x43e43a
or dword [ebp + 0xc], eax
mov edi, 0x286
and dword [ebx + 0x24], 0
mov eax, dword [ebx - 0x3b8]
and dword [ebp - 0x34], 0
lea ecx, [ebp - 0x34]
push ecx
push dword [ebp + 0x10]
lea ecx, [ebx - 0x3b8]
push dword [ebp + 0xc]
push edi
call dword [eax + 0x1dc]
test eax, eax
je 0x43e76e
cmp edi, 0x100
jb 0x43e747
cmp edi, 0x109
jbe 0x43e76e
cmp edi, 0x102
je 0x43e76e
cmp edi, 0x286
je 0x43e76e
add edi, 0xfffffe00
cmp edi, 0xd
ja 0x43e776
mov ecx, dword [ebx + 4]
call fcn.0043bf9c
test eax, eax
je 0x43e776
mov ecx, dword [ebp - 0x30]
mov al, byte [ebp - 0x21]
mov byte [ecx], al
mov eax, dword [ebp - 0x34]
jmp 0x43e43c