Function at 0x18002ab50
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 - 0x1f]
sub rsp, 0x98
mov rax, qword [0x1800993c0]
xor rax, rsp
mov qword [rbp + 7], rax
mov r15, r9
mov qword [rbp - 9], r8
mov edi, edx
mov r13, rcx
call fcn.18000afb0
xor ebx, ebx
test rax, rax
je 0x18002b1bf
call fcn.18000b18c
mov rsi, qword [rax + 0x90]
test rsi, rsi
je 0x18002b1bf
call fcn.18000b18c
mov r14, rax
lea r12d, [rbx + 2]
mov eax, 0x203
cmp edi, eax
ja 0x18002af90
je 0x18002b0bb
mov eax, 0x101
lea ebx, [r12 - 1]
cmp edi, eax
ja 0x18002aceb
je 0x18002adee
mov eax, edi
sub eax, r12d
je 0x18002acab
sub eax, 5
je 0x18002ac98
sub eax, ebx
je 0x18002ac98
sub eax, 0x18
je 0x18002ac79
sub eax, 0x31
je 0x18002ac6f
sub eax, 0x4f
je 0x18002ad25
cmp eax, 0x60
jne 0x18002b1bf
mov dil, bl
cmp qword [rbp - 9], 0x100
jae 0x18002b1bf
call fcn.18002a998
mov r14, qword [rbp - 9]
mov rdx, r15
mov rcx, r14
call fcn.180029b9c
shr r15, 0x10
mov ecx, 0x262
movzx esi, r15b
mov r12d, eax
cmp eax, ecx
jne 0x18002adf9
test dil, dil
jne 0x18002adfe
mov r9d, esi
mov r8d, r14d
mov dl, bl
call fcn.18002996c
jmp 0x18002adfe
call fcn.18002aa4c
jmp 0x18002b1bf
cmp r15w, bx
jne 0x18002b1bf
call fcn.18002aaa0
test al, al
je 0x18002b1bf
mov rax, rbx
jmp 0x18002b1c1
cmp edi, 7
mov rcx, r14
sete dl
call fcn.18000406c
jmp 0x18002b1bf
cmp qword [rsi + 8], r13
jne 0x18002b1bf
xor ebx, ebx
cmp dword [rsi + 0x10], ebx
je 0x18002b1bf
lea rcx, [rbp - 0x41]
mov dword [rbp - 0x41], 0x18
mov dword [rbp - 0x3d], 0x80000000
mov qword [rbp - 0x39], r13
mov dword [rbp - 0x31], ebx
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov qword [rsi + 8], rbx
mov dword [rsi + 0x10], ebx
jmp 0x18002b1ac
mov eax, edi
sub eax, 0x102
je 0x18002af2c
sub eax, r12d
je 0x18002ade2
sub eax, ebx
je 0x18002ade2
sub eax, 0xfb
je 0x18002ad25
sub eax, ebx
je 0x18002b0bb
cmp eax, ebx
je 0x18002afe8
jmp 0x18002b1bf
call fcn.180029934
xor ecx, ecx
mov dword [rbp - 0x49], eax
mov eax, ecx
mov qword [rsi + 8], r13
mov edx, 0x200
cmp edi, edx
setne al
add eax, ebx
mov dword [rbp - 0x11], eax
cmp dword [rsi + 0x10], eax
je 0x18002ad93
lea eax, [rcx + 0x18]
mov dword [rbp - 0x3d], 0x80000000
cmp edi, edx
mov dword [rbp - 0x41], eax
mov dword [rbp - 0x29], eax
lea eax, [rcx + 0x12]
cmovne r12d, eax
mov qword [rbp - 0x39], r13
mov dword [rbp - 0x25], r12d
mov dword [rbp - 0x31], ecx
mov qword [rbp - 0x21], r13
mov dword [rbp - 0x19], ecx
cmp dword [rsi + 0x10], ecx
je 0x18002ad83
lea rcx, [rbp - 0x41]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
lea rcx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov eax, dword [rbp - 0x11]
mov dword [rsi + 0x10], eax
movsx eax, r15w
shr r15, 0x10
mov dword [rbp - 1], eax
movsx eax, r15w
mov dword [rbp + 3], eax
cmp edi, 0xa0
jne 0x18002adc2
lea rdx, [rbp - 1]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18002b1bf
mov edx, dword [rbp - 0x49]
mov rcx, r14
call fcn.1800046c0
movd xmm2, dword [rbp + 3]
movd xmm1, dword [rbp - 1]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
jmp 0x18002b1b7
cmp edi, 0x104
je 0x18002ac17
xor r13d, r13d
mov dil, r13b
jmp 0x18002ac1a
test r12d, r12d
je 0x18002ae0f
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, r12d
call fcn.18002996c
cmp r14d, 0x10
jne 0x18002ae67
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ae40
mov r9d, esi
mov r8d, 0xa0
mov dl, dil
mov ecx, 0x210
call fcn.18002996c
mov r14d, 0xa1
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002b1bf
mov ecx, 0x214
jmp 0x18002af19
cmp r14d, 0x11
jne 0x18002aebd
mov r14d, 0xa2
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ae99
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, 0x20f
call fcn.18002996c
mov r14d, 0xa3
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002b1bf
mov ecx, 0x213
jmp 0x18002af19
mov eax, 0x12
cmp r14d, eax
jne 0x18002b1bf
mov r14d, 0xa4
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002aef7
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, 0x211
call fcn.18002996c
mov r14d, 0xa5
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002b1bf
mov ecx, 0x215
mov r9d, esi
mov r8d, r14d
mov dl, dil
call fcn.18002996c
jmp 0x18002b1bf
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindowUnicode]
xor ecx, ecx
test eax, eax
je 0x18002af5c
mov rdx, qword [rbp - 9]
lea rax, [rdx - 1]
cmp rax, 0xfffe
ja 0x18002b1bf
mov rcx, r14
call fcn.180004170
jmp 0x18002b1bf
mov word [rbp - 0x11], cx
lea rax, [rbp - 0x11]
mov ecx, dword [rsi + 0x2c]
lea r8, [rbp - 9]
mov dword [rsp + 0x28], ebx
mov r9d, ebx
mov edx, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx edx, word [rbp - 0x11]
mov rcx, r14
call fcn.180004110
jmp 0x18002b1bf
mov eax, 0x219
cmp edi, eax
ja 0x18002b178
je 0x18002b16c
mov eax, 0x209
cmp edi, eax
ja 0x18002b063
je 0x18002b0bb
mov eax, edi
sub eax, 0x204
je 0x18002b0bb
sub eax, 1
je 0x18002afe3
sub eax, 1
je 0x18002b0bb
sub eax, 1
je 0x18002b0bb
cmp eax, 1
jne 0x18002b1bf
mov ebx, 1
call fcn.180029934
xor edx, edx
mov r15d, eax
cmp edi, 0x205
mov ecx, edx
sete cl
cmp edi, 0x208
je 0x18002b026
mov r12d, ecx
cmp edi, 0x20c
jne 0x18002b026
mov rax, qword [rbp - 9]
mov r12d, edx
shr rax, 0x10
cmp ax, bx
setne r12b
add r12d, 3
mov eax, dword [rsi + 0x14]
btr eax, r12d
mov dword [rsi + 0x14], eax
test eax, eax
jne 0x18002b045
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x18002b045
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, r15d
mov rcx, r14
call fcn.1800046c0
xor r8d, r8d
mov edx, r12d
mov rcx, r14
call fcn.1800043d0
jmp 0x18002b1bf
mov eax, edi
sub eax, 0x20a
je 0x18002b14c
sub eax, 1
je 0x18002b0bb
sub eax, 1
je 0x18002afe3
sub eax, 1
je 0x18002b0bb
cmp eax, 1
jne 0x18002b1bf
mov rax, qword [rbp - 9]
xorps xmm2, xmm2
shr rax, 0x10
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x18007ad10]
divss xmm1, dword [0x18007af44]
mov rcx, r14
call fcn.1800046d0
jmp 0x18002b1bf
call fcn.180029934
xor r8d, r8d
mov dword [rbp - 0x49], eax
mov ebx, 1
cmp edi, 0x204
je 0x18002b0de
mov r15d, r8d
cmp edi, 0x206
jne 0x18002b0e1
mov r15d, ebx
mov edx, 0xfffffffd
lea ecx, [rdi - 0x207]
test edx, ecx
lea eax, [rdi - 0x20b]
cmove r15d, r12d
test edx, eax
jne 0x18002b112
mov rax, qword [rbp - 9]
mov r15d, r8d
shr rax, 0x10
cmp ax, bx
setne r15b
add r15d, 3
cmp dword [rsi + 0x14], r8d
jne 0x18002b12c
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x18002b12c
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [rsi + 0x14]
mov rcx, r14
mov edx, dword [rbp - 0x49]
bts eax, r15d
mov dword [rsi + 0x14], eax
call fcn.1800046c0
mov r8b, bl
mov edx, r15d
jmp 0x18002b056
mov rax, qword [rbp - 9]
xorps xmm1, xmm1
shr rax, 0x10
cwde
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x18007af44]
jmp 0x18002b0ae
cmp dword [rbp - 9], 7
jne 0x18002b1bf
mov byte [rsi + 0x31], 1
jmp 0x18002b1bf
mov eax, edi
sub eax, 0x2a2
je 0x18002b186
cmp eax, 1
jne 0x18002b1bf
mov eax, ebx
cmp edi, 0x2a3
mov ebx, 1
setne al
add eax, ebx
cmp dword [rsi + 0x10], eax
jne 0x18002b1bf
xor ecx, ecx
cmp qword [rsi + 8], r13
jne 0x18002b1a9
mov qword [rsi + 8], rcx
mov dword [rsi + 0x10], ecx
movss xmm1, dword [0x18007ac98]
movaps xmm2, xmm1
mov rcx, r14
call fcn.180004588
xor eax, eax
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.18004b680
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret