Function at 0x180093e10
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0x98
mov rax, qword [0x180352040]
xor rax, rsp
mov qword [rbp - 9], rax
mov r12, r9
mov r13, r8
mov r15, rdx
mov rdi, rcx
mov r14, qword [rbp + 0x77]
mov rax, qword [rbp + 0x7f]
mov qword [rbp - 0x11], rax
mov ecx, dword [0x18035313c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
add rax, rdx
mov qword [rbp - 0x69], rax
xor esi, esi
mov eax, dword [rax]
cmp dword [0x18035c758], eax
jle 0x180093ec0
lea rcx, [0x18035c758]
call fcn.1800ae288
cmp dword [0x18035c758], 0xffffffff
jne 0x180093ec0
movsxd rbx, dword [rdi + 0x34]
mov qword [0x18035c748], rsi
lea rcx, [rbp - 0x19]
call fcn.18009abd0
mov rcx, qword [rax]
mov qword [0x18035c748], rcx
mov qword [0x18035c750], rbx
lea rcx, [0x18035c758]
call fcn.1800ae21c
mov rax, qword [rbp - 0x69]
mov eax, dword [rax]
cmp dword [0x18035c75c], eax
jle 0x180093ef8
lea rcx, [0x18035c75c]
call fcn.1800ae288
cmp dword [0x18035c75c], 0xffffffff
jne 0x180093ef8
mov eax, dword [rdi + 0x34]
mov dword [0x18035c760], eax
lea rcx, [0x18035c75c]
call fcn.1800ae21c
cmp byte [rdi + 8], sil
je 0x1800941c3
mov ebx, 1
cmp byte [0x18035317c], sil
je 0x180093f21
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1800941c3
movzx eax, byte [rdi + 0x28]
test al, al
je 0x180094188
cmp qword [r14 + 8], rsi
je 0x1800941e2
lea rcx, [rbp - 0x69]
call fcn.18009abd0
mov rcx, qword [rbp - 0x69]
mov rdx, rcx
sub rdx, qword [0x18035c748]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, qword [0x18035c750]
je 0x1800941bc
mov r8d, 0xff
cmovl ebx, r8d
test bl, bl
jns 0x1800941bc
cmp byte [rdi + 0x30], sil
je 0x180093fa1
mov r8, r15
mov rdx, r14
call fcn.180094240
test al, al
jne 0x1800941c3
mov r8, r15
mov rdx, r14
mov rcx, rdi
call fcn.180094460
test al, al
je 0x1800941e2
mov rax, qword [rbp - 0x11]
mov byte [rax], 1
mov r9, qword [r13]
mov qword [rbp - 0x61], r9
movzx eax, byte [r13 + 0x10]
mov byte [rbp - 0x51], al
mov rcx, qword [r13 + 8]
test rcx, rcx
je 0x180093ffa
test al, al
je 0x180093ff4
mov rax, qword [r9]
mov r8, qword [rax + 0xa8]
mov rdx, rcx
mov rcx, r9
call r8
mov qword [rbp - 0x59], rax
jmp 0x180093ffe
mov qword [rbp - 0x59], rcx
jmp 0x180093ffe
mov qword [rbp - 0x59], rsi
mov qword [rbp - 0x41], rsi
mov r9, qword [r12]
mov qword [rbp - 0x49], r9
movzx eax, byte [r12 + 0x10]
mov byte [rbp - 0x39], al
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x180094040
test al, al
je 0x18009403a
mov rax, qword [r9]
mov r8, qword [rax + 0xa8]
mov rdx, rcx
mov rcx, r9
call r8
mov qword [rbp - 0x41], rax
jmp 0x180094044
mov qword [rbp - 0x41], rcx
jmp 0x180094044
mov qword [rbp - 0x41], rsi
mov qword [rbp - 0x29], rsi
mov r9, qword [r14]
mov qword [rbp - 0x31], r9
movzx eax, byte [r14 + 0x10]
mov byte [rbp - 0x21], al
mov rcx, qword [r14 + 8]
test rcx, rcx
je 0x180094083
test al, al
je 0x18009407d
mov rax, qword [r9]
mov r8, qword [rax + 0xa8]
mov rdx, rcx
mov rcx, r9
call r8
mov qword [rbp - 0x29], rax
jmp 0x180094087
mov qword [rbp - 0x29], rcx
jmp 0x180094087
mov qword [rbp - 0x29], rsi
lea rbx, [rdi + 0x38]
mov qword [rbp - 0x19], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1800940a8
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
jne 0x1800940c3
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rcx, [rdi + 0x88]
mov rax, qword [rdi + 0x90]
cmp rax, qword [rdi + 0x98]
je 0x1800940f0
lea rdx, [rbp - 0x61]
mov rcx, rax
call fcn.180092c50
add qword [rdi + 0x90], 0x48
jmp 0x1800940fd
lea r8, [rbp - 0x61]
mov rdx, rax
call fcn.180092800
nop
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
nop
cmp byte [rbp - 0x21], 0
je 0x180094132
cmp qword [0x1803570d0], 0
je 0x180094132
mov rdx, qword [rbp - 0x29]
test rdx, rdx
je 0x180094132
mov rcx, qword [rbp - 0x31]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
cmp byte [rbp - 0x39], 0
je 0x18009415d
cmp qword [0x1803570d0], 0
je 0x18009415d
mov rdx, qword [rbp - 0x41]
test rdx, rdx
je 0x18009415d
mov rcx, qword [rbp - 0x49]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
cmp byte [rbp - 0x51], 0
je 0x180094188
cmp qword [0x1803570d0], 0
je 0x180094188
mov rdx, qword [rbp - 0x59]
test rdx, rdx
je 0x180094188
mov rcx, qword [rbp - 0x61]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
movsxd rax, dword [rdi + 0x34]
cmp dword [0x18035c760], eax
je 0x1800941e2
mov rbx, rax
lea rcx, [rbp - 0x19]
call fcn.18009abd0
mov rcx, qword [rax]
mov qword [0x18035c748], rcx
mov qword [0x18035c750], rbx
mov eax, dword [rdi + 0x34]
mov dword [0x18035c760], eax
jmp 0x1800941e2
mov qword [0x18035c748], rcx
xchg byte [rdi + 0x28], sil
mov rax, qword [rdi + 0x90]
cmp qword [rdi + 0x88], rax
je 0x1800941e2
mov rdx, r15
mov rcx, rdi
call fcn.1800926f0
mov rcx, qword [rbp - 9]
xor rcx, rsp
call fcn.1800ae1c0
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret