Function at 0x410600
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x472f18
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x49c00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp byte [ebx + 4], 0
je 0x4108d7
mov esi, dword [ebp + 8]
cmp esi, 0x25
jne 0x410662
mov eax, dword [ebx + 0x138]
test eax, eax
jle 0x41064b
dec eax
mov dword [ebx + 0x138], eax
cmp dword [ebx + 0x12c], eax
jle 0x410811
mov dword [ebx + 0x12c], eax
jmp 0x410811
cmp esi, 0x27
jne 0x41068a
mov eax, dword [ebx + 0x130]
mov ecx, dword [ebx + 0x138]
cmp ecx, dword [eax - 0xc]
jge 0x410811
lea eax, [ecx + 1]
mov dword [ebx + 0x138], eax
jmp 0x410811
cmp esi, 0x2e
jne 0x4106ce
cmp dword [ebx + 0x150], 0
lea ecx, [ebx - 0x54]
jle 0x4106a5
call fcn.00411600
jmp 0x410811
mov eax, dword [ecx + 0x184]
lea edx, [ecx + 0x184]
mov ecx, dword [ecx + 0x18c]
cmp dword [eax - 0xc], ecx
jle 0x410811
push ecx
push ecx
mov ecx, edx
call fcn.00412650
jmp 0x410811
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x410811
cmp esi, 0x43
jne 0x410771
mov edx, dword [ebx + 0x150]
test edx, edx
jle 0x410811
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x14c]
cmp ecx, eax
push edx
cmovge ecx, eax
lea eax, [ebp - 0x10]
push ecx
push eax
lea ecx, [ebx + 0x130]
call fcn.00412580
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x10]
push esi
call sym.Install_adv.exe_int___cdecl_SetClipboard_wchar_t_const__
add esp, 4
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x410811
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4108eb
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x410811
cmp esi, 0x58
jne 0x4107bd
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x14c]
cmp ecx, eax
push dword [ebx + 0x150]
cmovge ecx, eax
lea eax, [ebp - 0x10]
push ecx
push eax
lea ecx, [ebx + 0x130]
call fcn.00412580
mov dword [ebp - 4], 1
mov esi, dword [ebp - 0x10]
push esi
call sym.Install_adv.exe_int___cdecl_SetClipboard_wchar_t_const__
add esp, 4
lea ecx, [ebx - 0x54]
call fcn.00411600
jmp 0x410730
cmp esi, 0x56
jne 0x4107cc
lea ecx, [ebx - 0x54]
call fcn.004103d0
jmp 0x410811
cmp esi, 0x41
jne 0x410811
mov eax, dword [ebx + 0x130]
lea ecx, [ebx - 0x54]
cmp dword [eax - 0xc], 0
je 0x410811
mov dword [ecx + 0x1a0], 0
mov eax, dword [eax - 0xc]
mov dword [ecx + 0x18c], eax
cdq
xor eax, edx
sub eax, edx
test eax, eax
jle 0x410811
cmp dword [ecx + 0x1a4], eax
je 0x410811
push 0
mov dword [ecx + 0x1a4], eax
call fcn.004051b0
lea edi, [ebx - 0x54]
push 0
mov ecx, edi
call fcn.004051b0
mov ecx, edi
call fcn.0040fea0
mov ecx, dword [ebx + 0x12c]
mov eax, dword [ebx + 0x138]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebx + 0x130]
call fcn.00412580
lea eax, [ebp - 0x10]
mov dword [ebp - 4], 2
push eax
mov ecx, edi
call fcn.0040f8b0
add eax, dword [ebx + 0x13c]
mov esi, dword [ebx - 0x48]
add esi, eax
call sym.Install_adv.exe_public:_static_class_CNsApp____cdecl_CNsApp::Instance_void_
mov dword [eax + 0x3a4], esi
push dword [ebx - 0x28]
call sym.Install_adv.exe_public:_static_class_CNsApp____cdecl_CNsApp::Instance_void_
mov ecx, eax
call sym.Install_adv.exe_public:_void___thiscall_CNsApp::DrawCaret_struct_HWND____
push edi
push dword [ebp + 8]
push 0xfb9
push dword [ebx - 0x28]
call dword [sym.imp.USER32.dll_PostMessageW]
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4108d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x4108f2
mov eax, dword [ecx + 4]
push 0
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call edx
jmp 0x410811
call esi
jmp 0x4108d7