Function at 0x437290
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49b3b8
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.00431880
add esp, 0x10
cmp byte [esi + 0x214], 0
je 0x437312
mov eax, dword [ebp - 0x3c]
cmp ax, 0x5b
je 0x4372fa
cmp ax, 0x5c
jne 0x437312
push 0x4b6120
push dword [esi + 0x210]
call fcn.00431880
add esp, 8
jmp 0x4375a8
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.00431880
add esp, 0xc
cmp byte [esi + 0x1aa], 0
jl 0x437351
cmp byte [esi + 0x1ab], 0
mov byte [ebp - 0x29], 0
jge 0x437355
mov byte [ebp - 0x29], 1
cmp byte [esi + 0x1ac], 0
jl 0x43736b
cmp byte [esi + 0x1ad], 0
jl 0x43736b
xor bh, bh
jmp 0x43736d
mov bh, 1
cmp byte [esi + 0x1a8], 0
mov byte [ebp - 0x2a], bh
jl 0x437386
cmp byte [esi + 0x1a9], 0
jl 0x437386
xor edi, edi
jmp 0x43738b
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.00431880
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 0x43756e
inc eax
cmp eax, 0x4b
jb 0x437420
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.00437680
cmp byte [ebp - 0x29], 0
mov byte [ebp - 0x2b], al
je 0x437486
cmp byte [ebp - 0x2a], 0
je 0x437486
test al, al
je 0x437486
push str.Release_the_ctrl_and_alt_modifiers_before_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.00431880
add esp, 8
mov ecx, esi
call fcn.00437a90
mov ebx, dword [ebp - 0x28]
xor edi, edi
cmp dword [ebp - 0x18], edi
jbe 0x4374e4
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.0043c3a0
test al, al
je 0x4374bd
push dword [ebp - 0x34]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x38]
call dword [eax + 4]
jmp 0x4374de
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.00431790
add esp, 0xc
inc edi
cmp edi, dword [ebp - 0x18]
jb 0x437490
cmp byte [ebp - 0x29], 0
je 0x437539
cmp byte [ebp - 0x2a], 0
je 0x437539
cmp byte [ebp - 0x2b], 0
je 0x437539
push str.Restore_the_ctrl_and_alt_modifiers_after_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.00431880
add esp, 8
mov ecx, esi
push 0xa2
call fcn.00437b30
push 0xa3
mov ecx, esi
call fcn.00437b30
push 0xa4
mov ecx, esi
call fcn.00437b30
push 0xa5
mov ecx, esi
call fcn.00437b30
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x4375a8
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x437562
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4375c6
push ecx
push ebx
call fcn.00471d21
add esp, 8
jmp 0x4375a8
mov edi, dword [eax*8 + 0x4abd2c]
cmp edi, 0xff0d
jne 0x437589
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.00431880
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.00471d10
mov esp, ebp
pop ebp
ret 8
call fcn.0047da11
int3