Function at 0x4b4b50
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d9208
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
lea edx, [ebp - 0x40]
push 4
push edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
call fcn.0040d3b0
mov eax, dword [0x52fe34]
add esp, 8
cmp byte [eax + 0x125fa], 4
jb 0x4b4bc2
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [0x52fe2c]
push esi
push edi
push ebx
call fcn.00411f10
lea ecx, [ebp - 0x24]
call fcn.004bc8c0
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp + 0xc], esi
cmp edi, 1
je 0x4b4c1d
cmp edi, 0x81
je 0x4b4c1d
cmp ebx, dword [0x532dd0]
je 0x4b4cac
push esi
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 8]
push eax
mov ecx, 0x52fdf8
call fcn.004b4390
test al, al
je 0x4b4c16
mov esi, dword [ebp + 0xc]
push esi
lea ecx, [ebp - 0x24]
call fcn.004bc8e0
test al, al
jne 0x4b4cac
xor esi, esi
jmp 0x4b4cac
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
push edx
lea ecx, [ebp - 0x24]
call fcn.004bc9b0
lea ecx, [ebp - 0x24]
call fcn.004bc9d0
mov esi, eax
mov dword [ebp + 0xc], esi
test esi, esi
je 0x4b4cac
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp + 8]
push ecx
mov ecx, 0x52fdf8
call fcn.0040d260
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
lea edx, [eax + eax*4]
add edx, edx
mov eax, 0x38e38e39
mul edx
shr edx, 1
push edx
push 0xc84
push ebx
lea ecx, [esi + 0x68]
call fcn.004c6e50
mov eax, dword [0x52fe30]
mov ecx, dword [eax + 0x11410]
push ecx
push 0xc81
push ebx
lea ecx, [esi + 0x8c]
call fcn.004c6e50
mov edx, dword [0x52fe30]
mov eax, dword [edx + 0x11414]
push eax
push 0xc82
push ebx
lea ecx, [esi + 0x9c]
call fcn.004c6e50
cmp edi, 0x106
jne 0x4b4cc0
mov dword [ebp - 0x10], 1
jmp case.0x4b4cef.1
test esi, esi
je case.0x4b4cef.24
cmp edi, 0x101
ja 0x4b4d9f
cmp edi, 0x100
jae case.0x4b4dcd.260
lea eax, [edi - 1]
cmp eax, 0x50
ja case.0x4b4dcd.262
movzx eax, byte [eax + 0x4b514c]
jmp dword [eax*4 + 0x4b5124]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
push edx
push edi
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
mov ecx, esi
call fcn.004bccb0
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.004bc960
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp - 0x10], 0
jmp case.0x4b4cef.1
lea ecx, [esi + 8]
call fcn.004b44f0
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
lea ecx, [esi + 8]
call fcn.004b35e0
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push edx
push eax
lea ecx, [esi + 8]
call fcn.004b3640
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
mov ecx, dword [0x52fe2c]
push edi
push ebx
call fcn.00423520
jmp case.0x4b4cef.1
cmp edi, 0x11a
ja 0x4b4ee6
cmp edi, 0x119
jae 0x4b4ebc
lea eax, [edi - 0x104]
cmp eax, 0x11
ja case.0x4b4dcd.262
movzx edx, byte [eax + 0x4b51b0]
jmp dword [edx*4 + 0x4b51a0]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
push ecx
push edi
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
mov eax, dword [ebp + 0x10]
sub eax, 0xc81
je 0x4b4e6d
sub eax, 1
je 0x4b4e3a
sub eax, 2
jne case.0x4b4cef.1
lea ecx, [esi + 0x68]
call fcn.004c6e30
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, 0x8000
and ax, dx
mov ecx, edx
cmp ax, cx
je case.0x4b4cef.1
mov ecx, esi
call fcn.004bcc80
mov ecx, eax
call fcn.00489ac0
jmp case.0x4b4cef.1
lea edi, [esi + 8]
push 0
mov ecx, edi
call fcn.004b3880
test al, al
jne 0x4b4e5b
push 1
mov ecx, edi
call fcn.004b3f20
add esi, 0x9c
jmp 0x4b4ea1
mov dword [esi + 0x80], 1
add esi, 0x9c
jmp 0x4b4ea1
lea edi, [esi + 8]
push 0
mov ecx, edi
call fcn.004b3880
test al, al
jne 0x4b4e92
cmp dword [esi + 0x84], 0
jne 0x4b4e92
mov dword [esi + 0x80], 0
jmp 0x4b4e9b
push 1
mov ecx, edi
call fcn.004b3c70
add esi, 0x8c
mov ecx, esi
call fcn.004c6df0
test al, al
je case.0x4b4cef.1
mov ecx, esi
call fcn.004c6e30
jmp case.0x4b4cef.1
mov ecx, dword [0x52fe2c]
mov edx, dword [ecx + 0xe8]
mov edx, dword [edx + 4]
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
add ecx, 0xe8
push edi
push ebx
call edx
jmp case.0x4b4cef.1
cmp edi, 0x282
ja 0x4b5045
je case.0x4b4cef.1
cmp edi, 0x200
jb case.0x4b4dcd.262
cmp edi, 0x20e
ja case.0x4b4dcd.262
mov ecx, esi
call fcn.004bcc80
mov ecx, eax
call fcn.00486eb0
test eax, eax
jne case.0x4b4cef.1
cmp edi, 0x115
je 0x4b4f42
cmp edi, 0x202
jne 0x4b4f7c
mov dword [esi + 0x88], 0
jmp 0x4b4f7c
mov ecx, dword [ebp + 0x10]
movzx eax, cx
cmp eax, 4
jl 0x4b4f6d
cmp eax, 5
jle 0x4b4f63
cmp eax, 8
jne 0x4b4f6d
mov dword [esi + 0x88], 0
jmp 0x4b4f6d
mov dword [esi + 0x88], 1
push ecx
mov ecx, esi
call fcn.004bcc80
mov ecx, eax
call fcn.00486fe0
cmp byte [0x532ddc], 0
mov eax, dword [0x52fe14]
mov dword [ebp + 8], eax
jne 0x4b4ff0
push ebx
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x52fe14]
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x4b4fc0
push ecx
push ebx
mov byte [0x532ddc], 1
call dword [sym.imp.USER32.dll_SetParent]
mov ecx, dword [0x52fe14]
mov byte [0x532ddc], 0
mov dword [ebp + 8], ecx
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, dword [esi + 0x10]
mov edx, esi
xor edx, eax
test edx, 0xff0000
je 0x4b4ff0
push esi
push 0xfffffffffffffff0
push ebx
mov byte [0x532ddc], 1
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov byte [0x532ddc], 0
lea eax, [edi - 0x200]
cmp eax, 0xe
mov eax, dword [ebp + 0x14]
ja 0x4b5028
movzx ecx, ax
shr eax, 0x10
push 1
lea edx, [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
push edx
push eax
push ebx
mov dword [ebp - 0x18], ecx
call dword [sym.imp.USER32.dll_MapWindowPoints]
movzx eax, word [ebp - 0x14]
movzx ecx, word [ebp - 0x18]
shl eax, 0x10
or eax, ecx
mov edx, dword [ebp + 0x10]
mov ecx, dword [0x52fe2c]
push eax
mov eax, dword [ebp + 8]
push edx
push edi
push eax
call fcn.00423520
mov dword [ebp - 0x10], eax
jmp case.0x4b4cef.1
cmp edi, 0x318
je 0x4b50e1
cmp edi, dword [esi + 0x28]
jne 0x4b507c
mov ecx, dword [0x52fe30]
cmp byte [ecx + 0x1133d], 0
je case.0x4b4cef.1
mov edx, dword [0x52fe2c]
mov ecx, dword [edx + 0x40a0]
call fcn.004a85a0
jmp case.0x4b4cef.1
cmp edi, dword [esi + 0x2c]
jne 0x4b508d
push 0
lea ecx, [esi + 8]
call fcn.004b36a0
jmp case.0x4b4cef.1
cmp edi, dword [esi + 0x30]
jne 0x4b509b
mov ecx, esi
call fcn.004c0130
jmp case.0x4b4cef.1
cmp edi, dword [esi + 0x34]
jne 0x4b50bd
cmp dword [ebp + 0x14], 1
sete al
movzx ecx, al
push ecx
push 1
mov ecx, esi
call fcn.004bcc80
mov ecx, eax
call fcn.004918d0
jmp case.0x4b4cef.1
cmp edi, dword [0x532dd8]
jne 0x4b50d8
mov edx, dword [ebp + 0x14]
push 1
push edx
call fcn.004b3120
add esp, 8
jmp 0x4b4d15
test edi, edi
je case.0x4b4cef.1
jmp case.0x4b4dcd.274
mov eax, dword [ebp + 0x10]
test eax, eax
je case.0x4b4cef.1
test byte [ebp + 0x14], 4
je case.0x4b4cef.1
push 0
push 0
push eax
mov ecx, esi
call fcn.004c4830
mov esi, dword [ebp - 0x10]
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.004bc960
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10