Function at 0x4d3050
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x67f864]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x10], ebx
push 0x27f
fldcw word [esp]
pop edx
mov esi, dword [ebp + 8]
mov eax, dword [esi + 4]
cmp eax, 0x201
je 0x4d340f
cmp eax, 0x203
je 0x4d340f
cmp eax, 0x415
jne 0x4d30c6
mov esi, ebx
call fcn.004d2be0
mov edi, ebx
call fcn.004d2d80
mov esi, dword [ebp + 8]
push esi
mov ecx, ebx
call fcn.004f58f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x4d3330
mov ecx, dword [esi + 8]
lea eax, [ecx - 9]
cmp eax, 0x25
ja case.0x4d30e7.10
movzx eax, byte [eax + 0x4d3508]
jmp dword [eax*4 + 0x4d34e0]
push 2
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 3
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 4
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 5
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 7
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 0xb
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 0xc
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov edx, ebx
call fcn.004d3f50
test eax, eax
je case.0x4d30e7.10
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov edx, ebx
call fcn.004d3f50
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call edi
test ax, ax
jge 0x4d30aa
push 0x12
call edi
test ax, ax
jl 0x4d30aa
cmp dword [esi + 8], 0x11
je 0x4d30aa
mov ax, word [esi + 8]
lea ecx, [esp + 0x10]
push ecx
call fcn.00516280
add esp, 4
test eax, eax
je 0x4d30aa
lea edi, [esp + 0x14]
mov eax, 0x2f
call fcn.004c54b0
test eax, eax
je 0x4d32aa
mov edx, dword [esp + 0x10]
movzx eax, word [esp + 0x14]
add edx, 0xffff7000
cmp eax, edx
jne 0x4d32aa
push 0xa
mov ecx, ebx
call fcn.004d3ee0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
lea edi, [esp + 0x14]
mov eax, 0x79
call fcn.004c54b0
test eax, eax
je 0x4d30aa
mov ecx, dword [esp + 0x10]
movzx edx, word [esp + 0x14]
add ecx, 0xffff7000
cmp edx, ecx
jne 0x4d30aa
lea esi, [esp + 0x10]
call fcn.00419760
test eax, eax
je 0x4d330c
mov esi, ebx
call fcn.004d2be0
mov edi, ebx
call fcn.004d2d80
push 0x483
mov ecx, ebx
call fcn.005720b1
mov eax, dword [eax + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0x10], 0
je 0x4d30a7
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x102
je 0x4d3342
cmp eax, 0x106
jne 0x4d30aa
mov ecx, dword [esi + 8]
cmp ecx, 8
je 0x4d33d6
cmp ecx, 0xd
je 0x4d33b1
cmp ecx, 0x1b
je 0x4d338c
cmp eax, 0x102
jne 0x4d336e
mov edx, ebx
call fcn.004d3f50
test eax, eax
jne 0x4d34af
push 0xe146
push ebx
mov ebx, esi
call fcn.004f57d0
test eax, eax
jne 0x4d34c8
mov ebx, dword [esp + 0x10]
jmp 0x4d30aa
mov edx, dword [ebx]
mov eax, dword [edx + 0x154]
mov ecx, ebx
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx]
mov eax, dword [edx + 0x150]
mov ecx, ebx
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
push 6
mov ecx, ebx
call fcn.004d3ee0
push 0x44a
mov ecx, ebx
call fcn.005720b1
test eax, eax
je 0x4d33f6
mov esi, eax
call fcn.004d2f90
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
push ecx
push edx
call dword [sym.imp.USER32.dll_WindowFromPoint]
push eax
call fcn.0056eb4e
mov edi, eax
mov ecx, edi
call fcn.005722e3
cmp eax, 0x483
jne 0x4d34c8
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
push edx
push eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov cx, word [esp + 0x18]
mov dx, word [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
mov eax, ebx
mov word [esp + 0x14], cx
mov word [esp + 0x16], dx
call fcn.004d4090
lea ecx, [esp + 0x20]
push ecx
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
xor edx, edx
test ax, ax
mov eax, dword [esp + 0x14]
setl dl
push edx
push eax
call fcn.00418a30
add esp, 0xc
call fcn.004d4120
mov ecx, dword [ebx + 0x20]
push 0
push 0
push 0x415
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4