Function at 0x140092dc0
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
movzx r15d, r8b
mov r12, rdx
mov r13, rcx
call fcn.140066660
mov rcx, rax
call fcn.14000a290
mov rdi, qword [rax]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x140093018
lea r9, [0x1401feba8]
lea r8, [0x1401fec00]
nop word [rax + rax]
lea r14, [rbx + 0x30]
mov rdx, qword [r14]
xor ecx, ecx
nop dword [rax]
movzx eax, word [rdx + rcx*2]
cmp ax, word [r9 + rcx*2]
jne 0x140092e56
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r9 + rcx*2 + 2]
jne 0x140092e56
add rcx, 2
cmp rcx, 0x14
jne 0x140092e30
xor eax, eax
jmp 0x140092e5b
sbb eax, eax
or eax, 1
test eax, eax
je 0x140092e9a
xor ecx, ecx
movzx eax, word [rdx + rcx*2]
cmp ax, word [r8 + rcx*2]
jne 0x140092e87
movzx eax, word [rdx + rcx*2 + 2]
cmp ax, word [r8 + rcx*2 + 2]
jne 0x140092e87
add rcx, 2
cmp rcx, 0x14
jne 0x140092e61
xor eax, eax
jmp 0x140092e8c
sbb eax, eax
or eax, 1
test eax, eax
je 0x140092e9a
test r15b, r15b
je 0x140092ea3
jmp 0x140092fba
test r15b, r15b
je 0x140092fba
mov rcx, qword [0x1402b7e88]
test rcx, rcx
jne 0x140092f14
lea rcx, [0x14029e168]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [0x1402b7e88], 0
jne 0x140092f00
mov ecx, 0x60
call fcn.1401606ac
mov rsi, rax
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140092ef4
xor edx, edx
lea r8d, [rdx + 0x60]
mov rcx, rax
call fcn.1401afc90
mov rcx, rsi
call fcn.14004f670
nop
lock or dword [rsp], 0
mov qword [0x1402b7e88], rax
lea rcx, [0x14029e168]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x1402b7e88]
mov rdx, r14
call fcn.140050fa0
test al, al
jne 0x140092fac
movzx r14d, byte [rbx + 0x38]
movzx ebp, byte [rbx + 0x39]
test r14b, r14b
jne 0x140092f37
test bp, bp
je 0x140092fac
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
xor esi, esi
test ax, ax
mov eax, 2
cmovs esi, eax
lea ecx, [rax + 0xe]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140092f60
or esi, 1
mov ecx, reloc.SHELL32.dll_ILClone
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x140092f73
or esi, 4
cmp esi, ebp
jne 0x140092fac
movzx eax, r14b
cmp qword [r12 + 0x10], rax
jne 0x140092fac
movsxd rsi, dword [rbx + 0x20]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x40]
mov rcx, rax
call fcn.1400592e0
xor r9d, r9d
mov r8, rsi
mov edx, 0x445
mov rcx, rax
call qword [sym.imp.USER32.dll_PostMessageW]
lea r9, [0x1401feba8]
lea r8, [0x1401fec00]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x140092fe8
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x140092fe3
nop
cmp rbx, qword [rax + 0x10]
jne 0x140092fe3
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x140092fd0
mov rbx, rax
jmp 0x14009300f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x14009300f
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x140093000
cmp rbx, rdi
jne 0x140092e20
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret