Function at 0x18002a818
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 [0x180099380]
xor rax, rsp
mov qword [rbp + 7], rax
mov r15, r9
mov qword [rbp - 9], r8
mov edi, edx
mov r13, rcx
call fcn.18000ac84
xor ebx, ebx
test rax, rax
je 0x18002ae87
call fcn.18000ae60
mov rsi, qword [rax + 0x90]
test rsi, rsi
je 0x18002ae87
call fcn.18000ae60
mov r14, rax
lea r12d, [rbx + 2]
mov eax, 0x203
cmp edi, eax
ja 0x18002ac58
je 0x18002ad83
mov eax, 0x101
lea ebx, [r12 - 1]
cmp edi, eax
ja 0x18002a9b3
je 0x18002aab6
mov eax, edi
sub eax, r12d
je 0x18002a973
sub eax, 5
je 0x18002a960
sub eax, ebx
je 0x18002a960
sub eax, 0x18
je 0x18002a941
sub eax, 0x31
je 0x18002a937
sub eax, 0x4f
je 0x18002a9ed
cmp eax, 0x60
jne 0x18002ae87
mov dil, bl
cmp qword [rbp - 9], 0x100
jae 0x18002ae87
call fcn.18002a660
mov r14, qword [rbp - 9]
mov rdx, r15
mov rcx, r14
call fcn.180029864
shr r15, 0x10
mov ecx, 0x262
movzx esi, r15b
mov r12d, eax
cmp eax, ecx
jne 0x18002aac1
test dil, dil
jne 0x18002aac6
mov r9d, esi
mov r8d, r14d
mov dl, bl
call fcn.180029634
jmp 0x18002aac6
call fcn.18002a714
jmp 0x18002ae87
cmp r15w, bx
jne 0x18002ae87
call fcn.18002a768
test al, al
je 0x18002ae87
mov rax, rbx
jmp 0x18002ae89
cmp edi, 7
mov rcx, r14
sete dl
call fcn.180003d40
jmp 0x18002ae87
cmp qword [rsi + 8], r13
jne 0x18002ae87
xor ebx, ebx
cmp dword [rsi + 0x10], ebx
je 0x18002ae87
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 0x18002ae74
mov eax, edi
sub eax, 0x102
je 0x18002abf4
sub eax, r12d
je 0x18002aaaa
sub eax, ebx
je 0x18002aaaa
sub eax, 0xfb
je 0x18002a9ed
sub eax, ebx
je 0x18002ad83
cmp eax, ebx
je 0x18002acb0
jmp 0x18002ae87
call fcn.1800295fc
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 0x18002aa5b
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 0x18002aa4b
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 0x18002aa8a
lea rdx, [rbp - 1]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18002ae87
mov edx, dword [rbp - 0x49]
mov rcx, r14
call fcn.180004394
movd xmm2, dword [rbp + 3]
movd xmm1, dword [rbp - 1]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
jmp 0x18002ae7f
cmp edi, 0x104
je 0x18002a8df
xor r13d, r13d
mov dil, r13b
jmp 0x18002a8e2
test r12d, r12d
je 0x18002aad7
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, r12d
call fcn.180029634
cmp r14d, 0x10
jne 0x18002ab2f
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ab08
mov r9d, esi
mov r8d, 0xa0
mov dl, dil
mov ecx, 0x210
call fcn.180029634
mov r14d, 0xa1
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ae87
mov ecx, 0x214
jmp 0x18002abe1
cmp r14d, 0x11
jne 0x18002ab85
mov r14d, 0xa2
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ab61
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, 0x20f
call fcn.180029634
mov r14d, 0xa3
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ae87
mov ecx, 0x213
jmp 0x18002abe1
mov eax, 0x12
cmp r14d, eax
jne 0x18002ae87
mov r14d, 0xa4
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002abbf
mov r9d, esi
mov r8d, r14d
mov dl, dil
mov ecx, 0x211
call fcn.180029634
mov r14d, 0xa5
mov ecx, r14d
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, bl
cmp al, dil
jne 0x18002ae87
mov ecx, 0x215
mov r9d, esi
mov r8d, r14d
mov dl, dil
call fcn.180029634
jmp 0x18002ae87
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindowUnicode]
xor ecx, ecx
test eax, eax
je 0x18002ac24
mov rdx, qword [rbp - 9]
lea rax, [rdx - 1]
cmp rax, 0xfffe
ja 0x18002ae87
mov rcx, r14
call fcn.180003e44
jmp 0x18002ae87
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.180003de4
jmp 0x18002ae87
mov eax, 0x219
cmp edi, eax
ja 0x18002ae40
je 0x18002ae34
mov eax, 0x209
cmp edi, eax
ja 0x18002ad2b
je 0x18002ad83
mov eax, edi
sub eax, 0x204
je 0x18002ad83
sub eax, 1
je 0x18002acab
sub eax, 1
je 0x18002ad83
sub eax, 1
je 0x18002ad83
cmp eax, 1
jne 0x18002ae87
mov ebx, 1
call fcn.1800295fc
xor edx, edx
mov r15d, eax
cmp edi, 0x205
mov ecx, edx
sete cl
cmp edi, 0x208
je 0x18002acee
mov r12d, ecx
cmp edi, 0x20c
jne 0x18002acee
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 0x18002ad0d
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x18002ad0d
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, r15d
mov rcx, r14
call fcn.180004394
xor r8d, r8d
mov edx, r12d
mov rcx, r14
call fcn.1800040a4
jmp 0x18002ae87
mov eax, edi
sub eax, 0x20a
je 0x18002ae14
sub eax, 1
je 0x18002ad83
sub eax, 1
je 0x18002acab
sub eax, 1
je 0x18002ad83
cmp eax, 1
jne 0x18002ae87
mov rax, qword [rbp - 9]
xorps xmm2, xmm2
shr rax, 0x10
cwde
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x18007acf0]
divss xmm1, dword [0x18007af24]
mov rcx, r14
call fcn.1800043a4
jmp 0x18002ae87
call fcn.1800295fc
xor r8d, r8d
mov dword [rbp - 0x49], eax
mov ebx, 1
cmp edi, 0x204
je 0x18002ada6
mov r15d, r8d
cmp edi, 0x206
jne 0x18002ada9
mov r15d, ebx
mov edx, 0xfffffffd
lea ecx, [rdi - 0x207]
test edx, ecx
lea eax, [rdi - 0x20b]
cmove r15d, r12d
test edx, eax
jne 0x18002adda
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 0x18002adf4
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x18002adf4
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.180004394
mov r8b, bl
mov edx, r15d
jmp 0x18002ad1e
mov rax, qword [rbp - 9]
xorps xmm1, xmm1
shr rax, 0x10
cwde
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x18007af24]
jmp 0x18002ad76
cmp dword [rbp - 9], 7
jne 0x18002ae87
mov byte [rsi + 0x31], 1
jmp 0x18002ae87
mov eax, edi
sub eax, 0x2a2
je 0x18002ae4e
cmp eax, 1
jne 0x18002ae87
mov eax, ebx
cmp edi, 0x2a3
mov ebx, 1
setne al
add eax, ebx
cmp dword [rsi + 0x10], eax
jne 0x18002ae87
xor ecx, ecx
cmp qword [rsi + 8], r13
jne 0x18002ae71
mov qword [rsi + 8], rcx
mov dword [rsi + 0x10], ecx
movss xmm1, dword [0x18007ac78]
movaps xmm2, xmm1
mov rcx, r14
call fcn.18000425c
xor eax, eax
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.18004b080
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret