Function at 0x140088980
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
sub rsp, 0x110
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rbp
mov rax, qword [0x1402ba4e0]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rbp, r8
mov r12d, edx
mov rsi, rcx
test rcx, rcx
jne 0x1400889c7
lea eax, [rcx + 2]
jmp 0x140088c4b
mov ebx, 1
cmp dword [0x1402c0964], 0
jne 0x140088a6d
cmp dword [0x1402c0a78], 0
je 0x140088a6d
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x20]
call fcn.14000db70
mov rdi, rax
test rax, rax
je 0x140088a18
mov rdx, rax
mov rcx, rsi
call fcn.140081fe0
cmp dword [rsp + 0x20], 0
je 0x140088a6d
mov rcx, rdi
call fcn.140085540
jmp 0x140088a6d
cmp dword [0x1402c0968], 0
je 0x140088a6d
mov rax, qword [0x1402b9cc8]
mov qword [rsp + 0x28], rax
lea rdx, [0x14024d112]
lea rcx, [rsp + 0x28]
call fcn.1400ca6a0
xor r8d, r8d
mov edx, 0xe00a
lea rcx, [rsp + 0x28]
call fcn.1400cc060
nop
xor r8d, r8d
lea edx, [r8 + 8]
mov rcx, qword [rsp + 0x28]
call fcn.14000a910
nop
lea rcx, [rsp + 0x28]
call fcn.1400ca400
mov rcx, rsi
call fcn.140081860
cmp dword [0x1402c0968], 0
je 0x140088a8b
cmp dword [0x1402c0964], 0
je 0x140088b99
cmp dword [0x1402b911c], 0
je 0x140088b99
mov rdx, rbp
mov rcx, rsi
call fcn.140081ca0
mov rax, qword [rsi + 0xb0]
cmp dword [rax + 0x6960], 0
je 0x140088ac6
cmp dword [rax + 0x7468], 1
jne 0x140088ac6
mov dword [rax + 0x7468], 2
mov ecx, 0x8d
call fcn.140088650
mov rdi, rax
test rax, rax
je 0x140088afc
mov r9, qword [rsi + 0xb0]
lea rcx, [rsi + 0x68]
mov r9, qword [r9 + 0x6730]
mov r8, rax
xor edx, edx
call fcn.1400283f0
mov rcx, rdi
call fcn.14010d304
cmp dword [0x1402c0964], 0
jne 0x140088b0f
cmp r12d, 1
je 0x140088b0f
xor edi, edi
jmp 0x140088b14
mov edi, 1
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r8, qword [0x1402c0418]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.14007fe50
nop
mov dword [rsp + 0xf8], edi
xor r8d, r8d
lea rdx, [0x1402c0528]
lea rcx, [rsp + 0x40]
call fcn.1400ce980
mov ebx, eax
cmp eax, 2
jne 0x140088b8f
call fcn.14000b060
mov ebx, eax
lea rcx, [rsp + 0x40]
call fcn.14007fef0
cmp ebx, 1
je 0x140088b14
jmp 0x140088b99
lea rcx, [rsp + 0x40]
call fcn.14007fef0
mov rcx, qword [rsi + 0xb0]
mov rax, qword [rcx + 0x14f0]
test rax, rax
je 0x140088bb5
cmp byte [rax], 0
jne 0x140088c49
mov rcx, rax
test rax, rax
je 0x140088bc2
call fcn.14010d304
mov rdi, qword [0x1402bfb28]
mov rax, qword [0x1402b9cc8]
mov qword [rsp + 0x20], rax
lea rdx, [0x14024d112]
lea rcx, [rsp + 0x20]
call fcn.1400ca6a0
mov r8, rdi
mov edx, 0x45b
lea rcx, [rsp + 0x20]
call fcn.1400cc060
nop
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, qword [rsp + 0x20]
repne scasb al, byte [rdi]
not rcx
call fcn.14010a204
mov rcx, qword [rsi + 0xb0]
mov qword [rcx + 0x14f0], rax
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsi + 0xb0]
mov rdx, qword [rax + 0x14f0]
nop
movzx eax, byte [rcx]
mov byte [rdx], al
inc rcx
inc rdx
test al, al
jne 0x140088c30
lea rcx, [rsp + 0x20]
call fcn.1400ca400
mov eax, ebx
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14010d170
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret