Function at 0x4301ae
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push edi
mov dword [ebp - 8], ecx
and dword [ebp - 0x10], 0
jmp 0x4301c5
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 8]
add ecx, 0xd4
call sym.microClientTemplate.exe_public:_struct_HWND______thiscall_DuiLib::CWindowWnd::operator_struct_HWND____void_const
cmp dword [ebp - 0x10], eax
jge 0x43021b
mov byte [ebp - 1], 0
push dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
add ecx, 0xd4
call sym.microClientTemplate.exe_public:_void____thiscall_DuiLib::CStdPtrArray::operator___int_const
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 1]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
call dword [eax]
mov dword [ebp - 0x24], eax
movzx eax, byte [ebp - 1]
test eax, eax
je 0x430219
mov al, 1
jmp 0x4303bf
jmp 0x4301be
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x100
je 0x430249
cmp dword [ebp - 0x14], 0x104
je 0x43035e
cmp dword [ebp - 0x14], 0x106
je 0x4302fb
jmp 0x4303bd
cmp dword [ebp + 0xc], 9
jne 0x4302f6
mov eax, dword [ebp - 8]
cmp dword [eax + 0x54], 0
je 0x4302cd
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x54]
call dword [eax + 0xc8]
movzx eax, al
test eax, eax
je 0x4302cd
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x54]
call dword [eax + 0xd4]
movzx eax, al
test eax, eax
je 0x4302cd
push str.RichEditUI
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x54]
call dword [eax + 0xc]
push eax
call fcn.004625e4
pop ecx
pop ecx
test eax, eax
je 0x4302cd
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x54]
call sym.microClientTemplate.exe_public:_bool___thiscall_DuiLib::CRichEditUI::IsWantTab_void_
movzx eax, al
test eax, eax
je 0x4302cd
xor al, al
jmp 0x4303bf
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, eax
jl 0x4302e0
mov byte [ebp - 0x20], 1
jmp 0x4302e4
mov byte [ebp - 0x20], 0
push dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
call sym.microClientTemplate.exe_public:_bool___thiscall_DuiLib::CPaintManagerUI::SetNextTabControl_bool_
mov al, 1
jmp 0x4303bf
jmp 0x4303bd
xor eax, eax
mov word [ebp - 0x18], ax
xor eax, eax
mov word [ebp - 0x16], ax
push dword [ebp + 0xc]
call fcn.00464ead
pop ecx
mov word [ebp - 0x18], ax
push reloc.OLEAUT32.dll_VariantCopyInd
lea eax, [ebp - 0x18]
push eax
push sym.microClientTemplate.exe_private:_static_class_DuiLib::CControlUI____stdcall_DuiLib::CPaintManagerUI::__FindControlFromShortcut_class_DuiLib::CControlUI___void__
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x50]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x50]
call dword [eax + 0xfc]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x43035c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
call dword [eax + 0xf0]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
call dword [eax + 0x18]
mov al, 1
jmp 0x4303bf
jmp 0x4303bd
mov eax, dword [ebp - 8]
cmp dword [eax + 0x54], 0
je 0x4303bd
and dword [ebp - 0x44], 0
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x40]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x44], 6
mov ax, word [ebp + 0xc]
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], eax
call fcn.0042dbe4
mov word [ebp - 0x2e], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x54]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x54]
call dword [eax + 0x108]
xor al, al
pop edi
mov esp, ebp
pop ebp
ret 0x10