Function at 0x4373f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49b3e8
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x4cc06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
movzx eax, word [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
movzx eax, ax
push ebx
push eax
push str.processKeyEvent___function_called:_virtKey___4.4x__addKeyData___x
push dword [esi + 0x210]
mov dword [ebp - 0x38], eax
call fcn.004319e0
add esp, 0x10
cmp byte [esi + 0x214], 0
je 0x437472
mov eax, dword [ebp - 0x3c]
cmp ax, 0x5b
je 0x43745a
cmp ax, 0x5c
jne 0x437472
push str.Ignoring_the_Win_key_event
push dword [esi + 0x210]
call fcn.004319e0
add esp, 8
jmp 0x437708
mov eax, ebx
shr eax, 0x1f
not al
and eax, 0xffffff01
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x34], al
movzx eax, al
push eax
push str.down___u
push dword [esi + 0x210]
call fcn.004319e0
add esp, 0xc
cmp byte [esi + 0x1aa], 0
jl 0x4374b1
cmp byte [esi + 0x1ab], 0
mov byte [ebp - 0x29], 0
jge 0x4374b5
mov byte [ebp - 0x29], 1
cmp byte [esi + 0x1ac], 0
jl 0x4374cb
cmp byte [esi + 0x1ad], 0
jl 0x4374cb
xor bh, bh
jmp 0x4374cd
mov bh, 1
cmp byte [esi + 0x1a8], 0
mov byte [ebp - 0x2a], bh
jl 0x4374e6
cmp byte [esi + 0x1a9], 0
jl 0x4374e6
xor edi, edi
jmp 0x4374eb
mov edi, 1
push 0x14
call dword [sym.imp.USER32.dll_GetKeyState]
mov bl, al
and bl, 1
movzx ecx, bl
push ecx
push edi
movzx ecx, bh
push ecx
movzx ecx, byte [ebp - 0x29]
push ecx
push str.ctrl___u__alt___u__shift___u__caps_toggled___u
push dword [esi + 0x210]
call fcn.004319e0
mov eax, dword [ebp - 0x38]
add esp, 0x18
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
movzx eax, al
shl cl, 7
mov dword [ebp - 0x30], ecx
mov byte [eax + esi + 8], cl
mov byte [esi + 0x1c], bl
mov ebx, dword [ebp + 0xc]
shr ebx, 0x18
and bl, 1
mov al, bl
mov dword [ebp + 0xc], ebx
sub al, 0x5e
cmp dl, 0x11
movzx ecx, al
movzx eax, dl
cmovne ecx, eax
mov al, bl
sub al, 0x5c
cmp cl, 0x12
movzx edx, al
movzx eax, cl
mov ecx, dword [ebp - 0x30]
cmovne edx, eax
mov al, bl
sub al, 0x60
cmp dl, 0x10
movzx ebx, al
movzx eax, dl
cmovne ebx, eax
movzx edx, bl
mov eax, edx
mov byte [eax + esi + 0x108], cl
xor eax, eax
nop
cmp byte [eax*8 + 0x4abd28], bl
je 0x4376ce
inc eax
cmp eax, 0x4b
jb 0x437580
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], eax
mov ecx, esi
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x34]
push edx
call fcn.004377e0
cmp byte [ebp - 0x29], 0
mov byte [ebp - 0x2b], al
je 0x4375e6
cmp byte [ebp - 0x2a], 0
je 0x4375e6
test al, al
je 0x4375e6
push str.Release_the_ctrl_and_alt_modifiers_before_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.004319e0
add esp, 8
mov ecx, esi
call fcn.00437bf0
mov ebx, dword [ebp - 0x28]
xor edi, edi
cmp dword [ebp - 0x18], edi
jbe 0x437644
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
cmp edx, 8
lea ecx, [ebp - 0x38]
push ecx
cmovae eax, ebx
movzx eax, word [eax + edi*2]
push eax
call fcn.0043c520
test al, al
je 0x43761d
push dword [ebp - 0x34]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x38]
call dword [eax + 4]
jmp 0x43763e
cmp edx, 8
lea eax, [ebp - 0x28]
cmovae eax, ebx
movzx eax, word [eax + edi*2]
push eax
push str.Cant_translate_the__4.4x_unicode_character_to_an_rfb_symbol_to_send_it
push dword [esi + 0x210]
call fcn.004318f0
add esp, 0xc
inc edi
cmp edi, dword [ebp - 0x18]
jb 0x4375f0
cmp byte [ebp - 0x29], 0
je 0x437699
cmp byte [ebp - 0x2a], 0
je 0x437699
cmp byte [ebp - 0x2b], 0
je 0x437699
push str.Restore_the_ctrl_and_alt_modifiers_after_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.004319e0
add esp, 8
mov ecx, esi
push 0xa2
call fcn.00437c90
push 0xa3
mov ecx, esi
call fcn.00437c90
push 0xa4
mov ecx, esi
call fcn.00437c90
push 0xa5
mov ecx, esi
call fcn.00437c90
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x437708
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x4376c2
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x437726
push ecx
push ebx
call fcn.00471b16
add esp, 8
jmp 0x437708
mov edi, dword [eax*8 + 0x4abd2c]
cmp edi, 0xff0d
jne 0x4376e9
cmp byte [ebp + 0xc], 0
mov eax, 0xff8d
cmovne edi, eax
push edi
push str.The_key_has_been_mapped_to_the__4.4x_rfb_symbol
push dword [esi + 0x210]
call fcn.004319e0
mov eax, dword [esi]
add esp, 0xc
mov ecx, esi
push dword [ebp - 0x34]
push edi
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00471b05
mov esp, ebp
pop ebp
ret 8
call fcn.0047da31
int3