Function at 0x1004fbf0
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ebp + 0x1c], 0
push ebx
push esi
push edi
mov edi, ecx
jne 0x100500d7
mov esi, dword [ebp + 0xc]
xor edx, edx
mov eax, dword [ebp + 0x14]
inc edx
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 4], eax
cmp esi, 0x3d
jne 0x1004fc42
lea ecx, [ebp - 8]
mov dword [ebp - 8], edx
push ecx
push eax
push dword [ebp + 0x10]
push ecx
lea ecx, [edi + 0x3c]
call fcn.10050f0f
cmp dword [ebp - 8], 0
mov dword [ebx], eax
je 0x1004fc3f
xor eax, eax
inc eax
jmp 0x100500d9
xor edx, edx
inc edx
and dword [ebx], 0
lea ecx, [edi + 0x24]
mov eax, esi
mov dword [ebp - 8], ecx
sub eax, 1
je 0x1004fc74
sub eax, 1
je 0x1004fc6c
sub eax, 5
je 0x1004fc64
sub eax, 1
jne 0x1004fc77
push eax
jmp 0x1004fc65
push edx
call fcn.1006b1d4
jmp 0x1004fc77
mov word [ecx + 8], 0
jmp 0x1004fc77
mov byte [ecx + 8], dl
and dword [ebx], 0
lea ecx, [edi + 0x30]
cmp esi, 0x200
je 0x1004fc93
cmp esi, 0x2a3
jne 0x1004fc98
mov byte [ecx + 8], 0
jmp 0x1004fc98
call fcn.1006afd4
push ecx
mov ecx, dword [ebp + 8]
mov edx, esi
push ebx
push dword [ebp - 4]
push dword [ebp + 0x10]
call fcn.1006b028
test eax, eax
jne 0x1004fc37
cmp esi, 0xf
jne 0x1004fcc4
sub esp, 0x10
mov ecx, edi
call fcn.1006e804
mov dword [ebx], eax
jmp 0x1004fc37
push ecx
push ebx
push dword [ebp - 4]
lea eax, [edi + 0x40]
push dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
push esi
push ecx
mov ecx, eax
call fcn.10050d82
test eax, eax
jne 0x1004fc37
cmp esi, 0x55
jne 0x1004fcf3
mov dword [ebx], 2
jmp 0x1004fc37
xor edx, edx
inc edx
cmp esi, edx
jne 0x1004fd06
sub esp, 0x10
mov ecx, edi
call fcn.1006e77f
jmp 0x1004fcbd
mov eax, 0x201
cmp esi, eax
jne 0x1004fd3e
cmp byte [edi + 0x15c], 0
je 0x1004fd20
lea ecx, [edi + 0x24]
call fcn.1006b1a4
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetCapture]
xor esi, esi
mov ecx, edi
inc esi
push esi
call fcn.1006fbc9
and dword [ebx], 0
mov eax, esi
jmp 0x100500d9
cmp esi, 0x202
jne 0x1004fd58
push ecx
push dword [ebp - 4]
push ecx
push ecx
mov ecx, edi
call fcn.1006e883
jmp 0x1004fcbd
cmp esi, 0x200
jne 0x1004fd72
push ecx
push dword [ebp - 4]
push ecx
push ecx
mov ecx, edi
call fcn.1006e912
jmp 0x1004fcbd
cmp esi, 0x2a3
jne 0x1004fdab
push 0
mov ecx, edi
call fcn.1006fb02
push 0
push 0
push 0x41c
push dword [edi + 0x5c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
xor esi, esi
inc esi
push esi
push 0x401
push dword [edi + 0x5c]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1004fd34
cmp esi, 7
jne 0x1004fdc2
push edx
push 6
mov ecx, edi
call fcn.1006fc09
and dword [ebx], 0
jmp 0x100500c1
cmp esi, 8
jne 0x1004fdd6
push 0
mov ecx, edi
call fcn.1006fbc9
push 1
push 7
jmp 0x1004fdb3
cmp esi, 0x100
jne 0x1004fe21
cmp dword [ebp + 0x10], 0x20
je 0x1004fdfc
call dword [sym.imp.USER32.dll_GetCapture]
cmp dword [edi + 4], eax
je 0x1004fdf8
push 0
mov ecx, edi
call fcn.1006fbc9
xor edi, edi
jmp 0x1004fe07
push edx
mov ecx, edi
call fcn.1006fbc9
xor edi, edi
inc edi
mov ecx, dword [ebp - 8]
push 1
call fcn.1006b1d4
and dword [ebx], 0
test edi, edi
je 0x100500c1
jmp 0x1004fc37
cmp esi, 0x102
jne 0x1004fe33
and dword [ebx], 0
mov eax, edx
jmp 0x100500d9
cmp esi, 0x101
jne 0x1004fe67
cmp dword [ebp + 0x10], 0x20
jne 0x1004fe29
call dword [sym.imp.USER32.dll_GetCapture]
cmp dword [edi + 4], eax
je 0x1004fe62
cmp byte [edi + 0x55], 0
je 0x1004fe62
push 0
mov ecx, edi
call fcn.1006fbc9
mov ecx, edi
call fcn.1006e721
xor edx, edx
inc edx
jmp 0x1004fe29
cmp esi, 0x215
jne 0x1004fe80
push 0
mov ecx, edi
call fcn.1006fbc9
and dword [ebx], 0
jmp 0x1004fc37
cmp esi, 0xa
jne 0x1004fe94
push 0
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1004fe78
cmp esi, 5
je 0x1004fe85
cmp esi, 0x87
jne 0x1004fedd
push 0xfffffffffffffff0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov esi, eax
xor edi, edi
not esi
inc edi
and esi, edi
inc esi
shl esi, 4
push 0x12
or esi, 0x2000
call dword [sym.imp.USER32.dll_GetKeyState]
xor ecx, ecx
cmp cx, ax
jg 0x1004fed4
or esi, 0x80
mov dword [ebx], esi
mov eax, edi
jmp 0x100500d9
cmp esi, 0x128
jne 0x1004ff03
lea eax, [ebp - 4]
mov dword [ebp - 4], edx
push eax
push ecx
push dword [ebp + 0x10]
push ecx
mov ecx, edi
call fcn.1006e988
cmp dword [ebp - 4], 0
mov dword [ebx], eax
jmp 0x1004fe16
cmp esi, 0x1f
jne 0x1004ff1b
lea eax, [ebp - 4]
mov dword [ebp - 4], edx
push eax
sub esp, 0xc
mov ecx, edi
call fcn.1006e9d8
jmp 0x1004fef8
cmp esi, 0x113
jne 0x1004ff38
lea eax, [ebp - 4]
mov dword [ebp - 4], edx
push eax
push ecx
push dword [ebp + 0x10]
push ecx
mov ecx, edi
call fcn.1006ea4e
jmp 0x1004fef8
cmp esi, 0x30
jne 0x1004ff5b
mov eax, dword [ebp + 0x10]
lea ecx, [edi + 0x7c]
mov dword [edi + 0x78], eax
call fcn.1004a01d
cmp word [ebp - 4], 0
je 0x1004fe78
jmp 0x1004fe85
cmp esi, 0x31
jne 0x1004ff6a
mov eax, dword [edi + 0x78]
mov dword [ebx], eax
jmp 0x1004fe2c
cmp esi, 0xc
jne 0x1004ff98
push dword [ebp - 4]
push dword [ebp + 0x10]
push esi
push dword [edi + 4]
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_CallWindowProcW]
push 0
push 0
push dword [edi + 4]
mov esi, eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov dword [ebx], esi
jmp 0x1004fc37
cmp esi, 0x1601
je 0x1004fe29
cmp esi, 0x1603
je 0x1004fe29
cmp esi, 0x1605
je 0x1004fe29
cmp esi, 0x1602
je 0x1004fe29
cmp esi, 0x1604
je 0x1004fe29
cmp esi, 0xf0
je 0x1004fe29
cmp esi, 0xf1
je 0x1004fe29
cmp esi, 0xf2
jne 0x10050018
call dword [sym.imp.USER32.dll_GetFocus]
cmp dword [edi + 4], eax
jne 0x10050004
push 8
pop ecx
jmp 0x10050006
xor ecx, ecx
movzx eax, byte [edi + 0x55]
neg eax
sbb eax, eax
and eax, 4
or eax, ecx
jmp 0x1004fcbd
cmp esi, 0xf3
jne 0x10050030
cmp dword [ebp + 0x10], 0
setne al
movzx eax, al
push eax
jmp 0x1004fe71
cmp esi, 0xf4
jne 0x1005004d
mov eax, dword [ebp + 0x10]
push ecx
and eax, edx
lea ecx, [edi + 4]
push eax
push edx
call fcn.10046bec
jmp 0x1004ff4b
cmp esi, 0xf5
jne 0x10050075
push 0
push edx
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
xor esi, esi
inc esi
push esi
push 0x202
push dword [edi + 4]
jmp 0x1004fda3
cmp esi, 0xf6
je 0x1004fe29
cmp esi, 0xf7
je 0x1004fe29
cmp esi, 0x4e
jne 0x100500c1
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0xfffffdee
jne 0x100500c1
mov eax, dword [edi + 0x84]
cmp dword [eax - 0xc], 0
jne 0x100500b3
xor edx, edx
lea eax, [ecx + 0x10]
mov word [eax], dx
inc edx
mov dword [ecx + 0xc], eax
and dword [ebx], 0
test edx, edx
jne 0x1004fe2c
push ecx
push ebx
push ecx
push ecx
push esi
push ecx
mov ecx, dword [ebp - 0xc]
call fcn.1004fb9a
test eax, eax
jne 0x1004fc37
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18