Function at 0x437370
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49b358
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.00431960
add esp, 0x10
cmp byte [esi + 0x214], 0
je 0x4373f2
mov eax, dword [ebp - 0x3c]
cmp ax, 0x5b
je 0x4373da
cmp ax, 0x5c
jne 0x4373f2
push 0x4b61b0
push dword [esi + 0x210]
call fcn.00431960
add esp, 8
jmp 0x437688
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.00431960
add esp, 0xc
cmp byte [esi + 0x1aa], 0
jl 0x437431
cmp byte [esi + 0x1ab], 0
mov byte [ebp - 0x29], 0
jge 0x437435
mov byte [ebp - 0x29], 1
cmp byte [esi + 0x1ac], 0
jl 0x43744b
cmp byte [esi + 0x1ad], 0
jl 0x43744b
xor bh, bh
jmp 0x43744d
mov bh, 1
cmp byte [esi + 0x1a8], 0
mov byte [ebp - 0x2a], bh
jl 0x437466
cmp byte [esi + 0x1a9], 0
jl 0x437466
xor edi, edi
jmp 0x43746b
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.00431960
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 0x43764e
inc eax
cmp eax, 0x4b
jb 0x437500
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.00437760
cmp byte [ebp - 0x29], 0
mov byte [ebp - 0x2b], al
je 0x437566
cmp byte [ebp - 0x2a], 0
je 0x437566
test al, al
je 0x437566
push str.Release_the_ctrl_and_alt_modifiers_before_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.00431960
add esp, 8
mov ecx, esi
call fcn.00437b70
mov ebx, dword [ebp - 0x28]
xor edi, edi
cmp dword [ebp - 0x18], edi
jbe 0x4375c4
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.0043c480
test al, al
je 0x43759d
push dword [ebp - 0x34]
mov eax, dword [esi]
mov ecx, esi
push dword [ebp - 0x38]
call dword [eax + 4]
jmp 0x4375be
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.00431870
add esp, 0xc
inc edi
cmp edi, dword [ebp - 0x18]
jb 0x437570
cmp byte [ebp - 0x29], 0
je 0x437619
cmp byte [ebp - 0x2a], 0
je 0x437619
cmp byte [ebp - 0x2b], 0
je 0x437619
push str.Restore_the_ctrl_and_alt_modifiers_after_send_the_key_event_s_
push dword [esi + 0x210]
call fcn.00431960
add esp, 8
mov ecx, esi
push 0xa2
call fcn.00437c10
push 0xa3
mov ecx, esi
call fcn.00437c10
push 0xa4
mov ecx, esi
call fcn.00437c10
push 0xa5
mov ecx, esi
call fcn.00437c10
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x437688
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x437642
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4376a6
push ecx
push ebx
call fcn.00471cb1
add esp, 8
jmp 0x437688
mov edi, dword [eax*8 + 0x4abd2c]
cmp edi, 0xff0d
jne 0x437669
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.00431960
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.00471ca0
mov esp, ebp
pop ebp
ret 8
call fcn.0047d9a1
int3