Function at 0x48cab0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov eax, dword [edi + 0x120]
test eax, eax
je 0x48cadc
push esi
push eax
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
cmp eax, 1
je 0x48cb32
cmp dword [esi + 4], 0x100
jne case.0x48caff.14
mov eax, dword [esi + 8]
add eax, 0xfffffff3
cmp eax, 0x1b
ja case.0x48caff.14
movzx ecx, byte [eax + 0x48d000]
jmp dword [ecx*4 + 0x48cff4]
mov edx, dword [edi + 0x1a4]
mov ebx, dword [sym.imp.USER32.dll_IsWindowVisible]
push edx
call ebx
test eax, eax
je 0x48cb40
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push eax
mov eax, dword [edi + 0x1a4]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x248]
push ecx
call ebx
test eax, eax
mov eax, dword [esi + 8]
je 0x48cb74
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
push edx
mov edx, dword [edi + 0x248]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x26
je 0x48cb82
cmp eax, 0x28
jne case.0x48caff.14
mov eax, dword [0x5c36b8]
sub eax, 1
je 0x48cb9c
sub eax, 1
jne case.0x48caff.14
mov eax, 0x85fd
jmp 0x48cbae
mov eax, dword [edi + 0x2d8]
sub eax, 1
neg eax
sbb eax, eax
add eax, 0x859a
push 0
push 0x5bcff8
push 0x5baf34
push 0
push eax
mov ecx, edi
call fcn.004f3841
push eax
call fcn.00513d6d
add esp, 0x14
test eax, eax
je 0x48cbea
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [esi + 4]
push edx
push ecx
push eax
call fcn.004187e0
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [edi + 0x1a4]
mov ebx, dword [sym.imp.USER32.dll_IsWindowVisible]
push edx
call ebx
test eax, eax
jne 0x48cb19
mov ecx, dword [edi + 0x248]
push ecx
call ebx
test eax, eax
je 0x48cc5f
mov edx, dword [edi + 0x2b0]
cmp dword [edx + 0x94], 0
je 0x48cc5f
push 0
lea ecx, [edi + 0x228]
call fcn.004f3a53
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push eax
mov eax, dword [edi + 0x248]
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [edi + 0x248]
push ecx
call ebx
test eax, eax
je case.0x48caff.14
push 0
lea ecx, [edi + 0x228]
call fcn.004f3a53
mov eax, dword [esi + 4]
cmp eax, 0x201
je 0x48cf5f
cmp eax, 0xa1
je 0x48cf5f
cmp eax, 0x100
jne 0x48cd87
mov ebx, dword [esi + 8]
cmp ebx, 0xd
jne 0x48ccf7
cmp dword [0x5c36b8], 4
je 0x48ccf7
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
push 0
push 0
js 0x48ccda
mov edx, dword [edi + 0x20]
push 0xbe3
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebx - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x20]
push 0xbe4
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x48cfe0
cmp ebx, 0x56
je 0x48cd16
cmp ebx, 0x76
jne 0x48cfe0
push 0x814d
mov ecx, edi
call fcn.004f3841
mov ebx, eax
test ebx, ebx
je 0x48cfe0
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [ebx + 0x20]
je 0x48cfe0
cmp dword [0x5c36b8], 4
je 0x48cfe0
push 0x5660e8
mov ecx, ebx
call fcn.004f3996
mov ecx, ebx
call fcn.0045d1e0
mov ecx, ebx
call fcn.004f3ab0
mov ecx, dword [ebx + 0x20]
push 0
push 0xffffffffffffffff
push 0xb1
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebx + 0x20]
push 0
push 0
push 0xb7
push edx
jmp 0x48cfda
cmp eax, 0x102
jne 0x48ce51
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x48cfe0
push 0x814d
mov ecx, edi
call fcn.004f3841
mov ebx, eax
test ebx, ebx
je 0x48cfe0
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, dword [ebx + 0x20]
je 0x48cfe0
cmp dword [0x5c36b8], 4
je 0x48cfe0
mov ecx, ebx
call fcn.004f3ab0
mov eax, dword [esi + 4]
cmp eax, 0x102
jne 0x48cfcd
push 0x5660e8
mov ecx, ebx
mov dword [ebx + 0x1e8], 1
call fcn.004f3996
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.USER32.dll_VkKeyScanW]
movzx ecx, byte [esi + 0xe]
push 0
movzx eax, ax
push 0
push ecx
push eax
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_keybd_event]
movzx edx, byte [esi + 0xe]
mov eax, dword [esp + 0x1c]
push 0
push 2
push edx
push eax
call dword [sym.imp.USER32.dll_keybd_event]
push esi
mov ecx, edi
mov dword [ebx + 0x1e8], 0
call fcn.00494880
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x20a
jne 0x48cfe0
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov dword [esp + 0x10], eax
mov eax, dword [0x5c36b8]
xor ebx, ebx
sub eax, 1
je 0x48ce93
sub eax, 1
jne 0x48cec9
mov ebx, 0x85fd
jmp 0x48cea6
mov ebx, dword [edi + 0x2d8]
sub ebx, 1
neg ebx
sbb ebx, ebx
add ebx, 0x859a
push 0
push 0x5bcff8
push 0x5baf34
push 0
push ebx
mov ecx, edi
call fcn.004f3841
push eax
call fcn.00513d6d
add esp, 0x14
mov dword [esp + 0x14], eax
lea eax, [edi + 0x184]
test eax, eax
je 0x48cf0b
cmp dword [eax + 0x20], 0
je 0x48cf0b
lea ecx, [edi + 0x228]
test ecx, ecx
je 0x48cf0b
cmp dword [ecx + 0x20], 0
je 0x48cf0b
push 0x814e
call fcn.004f3841
push 0xc095
lea ecx, [edi + 0x184]
mov dword [esp + 0x1c], eax
call fcn.004f3841
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x48cf1f
mov eax, dword [esp + 0x14]
push eax
call fcn.004187e0
cmp dword [esp + 0x10], eax
je 0x48cf39
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp eax, dword [ecx + 0x20]
je 0x48cf39
mov edx, dword [esp + 0x1c]
cmp eax, dword [edx + 0x20]
jne 0x48cfe0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0x10]
push eax
push ecx
push 0x20a
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx eax, word [esi + 0xe]
movzx ebx, word [esi + 0xc]
push 0x4e220
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.004f3841
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
cmp ebx, dword [esp + 0x20]
jl 0x48cfa2
cmp ebx, dword [esp + 0x28]
jg 0x48cfa2
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x24]
jl 0x48cfa2
cmp eax, dword [esp + 0x2c]
jle 0x48cfe0
push 0
lea ecx, [edi + 0x184]
call fcn.004f3a53
push 0
lea ecx, [edi + 0x228]
call fcn.004f3a53
push esi
mov ecx, edi
call fcn.00494880
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push eax
mov eax, dword [ebx + 0x20]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov ecx, edi
call fcn.00494880
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4