Function at 0x4c3250
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55221b
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x5b2920]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov eax, dword [0x5b2920]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
cmp esi, 0x14
mov ebx, dword [ebp + 0xc]
mov edi, ecx
mov dword [esp + 0x14], ebx
je 0x4c3320
test byte [0x5c3484], 1
jne 0x4c32c1
or dword [0x5c3484], 1
push str.WM_FC_UISTONE_MESSAGE_FCLISTWINDOW_SETPARENTPANELITEM
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x5c3480], eax
cmp esi, dword [0x5c3480]
jne 0x4c32d9
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x108], eax
xor eax, eax
jmp 0x4c36d6
cmp esi, 0x100
jne 0x4c338e
cmp ebx, 0x41
je 0x4c32ef
cmp ebx, 0x61
jne 0x4c332a
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x4c332a
mov ecx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call esi
mov edx, dword [edi + 0x20]
push 0
push 0
push 0xb7
push edx
call esi
mov eax, 1
jmp 0x4c36d6
cmp ebx, 0xd
jne 0x4c3369
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4c36c9
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
mov eax, dword [edi + 0x20]
push 1
push 0x102
push 0x102
push eax
lea ecx, [esp + 0x38]
push ecx
call esi
cmp eax, 1
je 0x4c3346
xor eax, eax
jmp 0x4c36d6
cmp ebx, 0x26
je 0x4c3377
cmp ebx, 0x28
jne 0x4c36c9
cmp dword [edi + 0x8c], 0
je 0x4c36c9
mov eax, 1
jmp 0x4c36d6
cmp esi, 0xf
jne 0x4c3487
mov edx, dword [ebp + 0x10]
push edx
push ebx
push esi
mov ecx, edi
call fcn.00432970
mov ebx, eax
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.004edd60
test eax, eax
je 0x4c33cc
test edi, edi
mov eax, dword [eax + 0x20]
jne 0x4c33c1
xor ecx, ecx
jmp 0x4c33c4
mov ecx, dword [edi + 0x20]
cmp eax, ecx
je 0x4c3480
mov ecx, edi
call fcn.004f3fea
test eax, eax
jg 0x4c3480
mov eax, dword [edi + 0x80]
cmp dword [eax - 0xc], 0
je 0x4c3480
push edi
lea ecx, [esp + 0x2c]
call fcn.004ea297
mov ecx, edi
mov dword [esp + 0x298], 0
call fcn.00424ed0
push eax
lea ecx, [esp + 0x2c]
call fcn.004ea5a3
push 0xc8c6c5
lea ecx, [esp + 0x2c]
mov esi, eax
call fcn.004e9bfd
push 1
lea ecx, [esp + 0x2c]
call fcn.004e9ba1
mov edx, dword [edi + 0x20]
lea ecx, [esp + 0x18]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [edi + 0x80]
add dword [esp + 0x18], 4
mov eax, dword [edi - 0xc]
mov edx, dword [esp + 0x28]
push 0x824
lea ecx, [esp + 0x1c]
push ecx
push eax
mov eax, dword [edx + 0x68]
push edi
lea ecx, [esp + 0x38]
call eax
push esi
lea ecx, [esp + 0x2c]
call fcn.004ea5a3
lea ecx, [esp + 0x28]
mov dword [esp + 0x298], 0xffffffff
call fcn.004ea2eb
mov eax, ebx
jmp 0x4c36d6
cmp esi, 0x201
je 0x4c3750
cmp esi, 0x202
je 0x4c3750
cmp esi, 0x203
je 0x4c3750
cmp esi, 0x204
je 0x4c3750
cmp esi, 0x205
je 0x4c3750
cmp esi, 0x206
je 0x4c3750
cmp esi, 7
jne 0x4c34ec
cmp dword [edi + 0x78], 0
je 0x4c36c9
push ebx
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
jmp 0x4c36d6
cmp esi, 0x102
je 0x4c36fc
cmp esi, 0x286
je 0x4c36fc
cmp esi, 0x111
jne 0x4c3544
cmp bx, 0x100
jne 0x4c3526
mov ecx, dword [edi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4c36c9
cmp bx, 0x200
jne 0x4c36c9
mov edx, dword [edi + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4c36c9
cmp esi, 1
jne 0x4c35f6
mov eax, dword [ebp + 0x10]
push eax
push ebx
push esi
mov ecx, edi
call fcn.00432970
mov ebx, eax
mov eax, dword [edi + 0x70]
mov ecx, esi
mov edx, edi
call fcn.004242d0
mov eax, dword [edi + 0x74]
mov ecx, edi
call fcn.00440750
mov edx, dword [edi + 0x98]
mov eax, dword [edx + 0x134]
lea esi, [edi + 0x98]
push 1
push edi
mov ecx, esi
call eax
mov ecx, dword [edi + 0xb8]
push 0x1f4
push 0
push 0x418
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, esi
call fcn.00432a90
mov eax, esi
call fcn.00432a70
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x18]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [edi + 0x94]
xor eax, eax
cmp dword [ecx - 0xc], eax
mov ecx, esi
setne al
call fcn.00432ab0
mov eax, dword [edi + 0x94]
push 0x3e9
lea edx, [esp + 0x1c]
push edx
push eax
push edi
mov ecx, esi
call fcn.004f80b2
mov eax, ebx
jmp 0x4c36d6
cmp esi, 5
jne 0x4c36c9
mov ecx, dword [edi + 0x94]
cmp dword [ecx - 0xc], 0
lea ebx, [edi + 0x94]
je 0x4c369f
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x44]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [edi + 0xb8]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x401
push ecx
call esi
push 0x3e9
push edi
lea edx, [esp + 0x5c]
push edx
lea ecx, [edi + 0x98]
mov dword [esp + 0x60], 0x230
call fcn.004f8139
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ecx
mov ecx, ebx
mov dword [esp + 0x6c], eax
call fcn.00414f90
lea edx, [esp + 0x54]
push edx
push 0
mov dword [esp + 0x80], eax
mov eax, dword [edi + 0xb8]
push 0x436
push eax
call esi
mov ecx, dword [edi + 0xb8]
push 0
push 1
push 0x401
push ecx
call esi
mov eax, dword [edi + 0x108]
test eax, eax
je 0x4c36c2
cmp dword [edi + 0x90], 0
je 0x4c36c2
cmp dword [eax + 0x8c], 0
je 0x4c36c2
push 0
call fcn.004c2da0
mov ebx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
push edx
push ebx
push esi
mov ecx, edi
call fcn.00432970
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.0050fe87
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x78], 0
jne 0x4c32d2
cmp ebx, 0x3b
je 0x4c371f
cmp ebx, 0xff1b
jne 0x4c36c9
mov dword [esp + 0x14], 0x3b
mov ebx, dword [esp + 0x14]
mov ecx, edi
call fcn.004f39d7
movzx edx, word [ebp + 8]
movzx esi, ax
shl edx, 0x10
mov ecx, edi
or esi, edx
call fcn.00417360
mov eax, dword [eax + 0x20]
push 0xffffffffffffffff
push esi
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4c36c6
cmp dword [edi + 0x78], 0
je 0x4c3513
xor eax, eax
jmp 0x4c36d6