Function at 0x140045980
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov r14, r9
mov rbp, r8
mov r12d, edx
mov rdi, rcx
mov rax, qword [0x1400c1548]
xor rax, rsp
mov qword [rsp + 0x48], rax
call fcn.14000f1b0
test rax, rax
je 0x140045a8e
call fcn.140017480
mov r15, rax
call fcn.14000f1b0
test rax, rax
je 0x1400459d7
call fcn.140017480
mov rsi, qword [rax + 0x88]
jmp 0x1400459d9
xor esi, esi
xor ebx, ebx
cmp r12d, 0x1ff
jle 0x140045aaf
lea eax, [r12 - 0x200]
cmp eax, 0xa3
ja case.0x140045a09.527
lea rcx, [0x14004634c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, r12d
and eax, 0xfffffffd
xor ecx, ecx
cmp eax, 0x204
sete cl
lea eax, [r12 - 0x207]
test eax, 0xfffffffd
mov ebx, 2
cmovne ebx, ecx
cmp r12d, 0x20d
je 0x140045a42
cmp r12d, 0x20b
jne 0x140045a5a
and ebp, 0xffff0000
xor eax, eax
cmp ebp, 0x10000
sete al
mov ebx, 4
sub ebx, eax
cmp dword [rsi + 0x14], 0
jne 0x140045a74
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x140045a74
mov rcx, rdi
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, 1
shlx eax, eax, ebx
or dword [rsi + 0x14], eax
mov rcx, r15
mov edx, ebx
mov r8b, 1
call fcn.14000cee0
xor ebx, ebx
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140067310
mov rax, rbx
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea eax, [r12 - 0x100]
cmp eax, 5
ja 0x140045c33
mov ecx, 0x33
bt ecx, eax
jae 0x140045c0f
cmp rbp, 0xff
ja 0x140045a8e
and r12d, 0xfffffffb
call fcn.140017480
mov rdi, rax
mov rsi, qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x11
call rsi
movzx r8d, ax
shr r8d, 0xf
mov rcx, rdi
mov edx, 0x1000
call fcn.14000cd20
mov ecx, 0x10
call rsi
movzx r8d, ax
shr r8d, 0xf
mov rcx, rdi
mov edx, 0x2000
call fcn.14000cd20
mov ecx, 0x12
call rsi
movzx r8d, ax
shr r8d, 0xf
mov rcx, rdi
mov edx, 0x4000
call fcn.14000cd20
mov ecx, 0x5d
call rsi
movzx r8d, ax
shr r8d, 0xf
mov rcx, rdi
mov edx, 0x8000
call fcn.14000cd20
test r14d, 0x1000000
mov edi, 0x10d
cmove edi, ebp
cmp rbp, 0xd
cmovne edi, ebp
lea eax, [rdi - 8]
cmp eax, 0x105
ja case.0x140045b92.10
mov r15d, 0x200
lea rcx, [0x1400465dc]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov r15d, 0x20b
jmp case.0x140045b92.9
xor eax, eax
cmp r12d, 0x205
sete al
cmp r12d, 0x208
mov ecx, 2
cmovne ecx, eax
and ebp, 0xffff0000
xor eax, eax
cmp ebp, 0x10000
sete al
mov ebp, 4
sub ebp, eax
cmp r12d, 0x20c
cmovne ebp, ecx
mov eax, 0xfffffffe
mov ecx, ebp
rol eax, cl
and dword [rsi + 0x14], eax
jne 0x140045bfb
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, rdi
jne 0x140045bfb
call qword [sym.imp.USER32.dll_ReleaseCapture]
xor ebx, ebx
mov rcx, r15
mov edx, ebp
xor r8d, r8d
call fcn.14000cee0
jmp case.0x140045a09.527
cmp eax, 2
jne 0x140045c33
lea rax, [rbp - 1]
cmp rax, 0xfffe
ja 0x140045a8e
mov rcx, r15
mov edx, ebp
call fcn.14000c5e0
jmp 0x140045a8e
lea eax, [r12 - 7]
cmp eax, 2
jae 0x140045c51
cmp r12d, 7
sete dl
mov rcx, r15
call fcn.14000d090
jmp 0x140045a8e
cmp r12d, 0x20
jne case.0x140045a09.527
cmp r14w, 1
jne 0x140045a8e
mov ebx, 1
call fcn.1400458c0
test al, al
je 0x140045a8e
jmp case.0x140045a09.527
mov qword [rsi + 8], rdi
cmp byte [rsi + 0x10], 0
jne 0x140045cb2
movabs rax, 0x200000018
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], 0
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov byte [rsi + 0x10], 1
mov eax, r14d
sar eax, 0x10
vcvtsi2ss xmm2, xmm0, eax
movsx eax, r14w
vcvtsi2ss xmm1, xmm0, eax
mov rcx, r15
call fcn.14000cd80
jmp 0x140045a8e
sar ebp, 0x10
vcvtsi2ss xmm0, xmm0, ebp
vmulss xmm2, xmm0, dword [0x14007264c]
vxorps xmm1, xmm1, xmm1
jmp 0x140045cf9
sar ebp, 0x10
vcvtsi2ss xmm0, xmm0, ebp
vmulss xmm1, xmm0, dword [0x14007264c]
vxorps xmm2, xmm2, xmm2
mov rcx, r15
call fcn.14000cfe0
jmp 0x140045a8e
cmp ebp, 7
jne 0x140045a8e
mov byte [rsi + 0x2d], 1
jmp 0x140045a8e
cmp qword [rsi + 8], rdi
jne 0x140045d26
mov qword [rsi + 8], 0
mov byte [rsi + 0x10], 0
vmovss xmm1, dword [0x14006aa90]
mov rcx, r15
vmovaps xmm2, xmm1
call fcn.14000cd80
jmp 0x140045a8e
shr r14d, 0x10
movzx r14d, r14b
jmp 0x1400461be
mov r15d, 0x20d
jmp case.0x140045b92.9
mov r15d, 0x263
jmp case.0x140045b92.9
mov r15d, 0x25f
jmp case.0x140045b92.9
mov r15d, 0x20e
jmp case.0x140045b92.9
mov r15d, 0x20c
jmp case.0x140045b92.9
mov r15d, 0x205
jmp case.0x140045b92.9
mov r15d, 0x206
jmp case.0x140045b92.9
mov r15d, 0x208
jmp case.0x140045b92.9
mov r15d, 0x207
jmp case.0x140045b92.9
mov r15d, 0x201
jmp case.0x140045b92.9
mov r15d, 0x203
jmp case.0x140045b92.9
mov r15d, 0x202
jmp case.0x140045b92.9
mov r15d, 0x204
jmp case.0x140045b92.9
mov r15d, 0x262
jmp case.0x140045b92.9
mov r15d, 0x209
jmp case.0x140045b92.9
mov r15d, 0x20a
jmp case.0x140045b92.9
mov r15d, 0x218
jmp case.0x140045b92.9
mov r15d, 0x219
jmp case.0x140045b92.9
mov r15d, 0x21a
jmp case.0x140045b92.9
mov r15d, 0x21b
jmp case.0x140045b92.9
mov r15d, 0x21c
jmp case.0x140045b92.9
mov r15d, 0x21d
jmp case.0x140045b92.9
mov r15d, 0x21e
jmp case.0x140045b92.9
mov r15d, 0x21f
jmp case.0x140045b92.9
mov r15d, 0x220
jmp case.0x140045b92.9
mov r15d, 0x221
jmp case.0x140045b92.9
mov r15d, 0x222
jmp case.0x140045b92.9
mov r15d, 0x223
jmp case.0x140045b92.9
mov r15d, 0x224
jmp case.0x140045b92.9
mov r15d, 0x225
jmp case.0x140045b92.9
mov r15d, 0x226
jmp case.0x140045b92.9
mov r15d, 0x227
jmp case.0x140045b92.9
mov r15d, 0x228
jmp case.0x140045b92.9
mov r15d, 0x229
jmp case.0x140045b92.9
mov r15d, 0x22a
jmp case.0x140045b92.9
mov r15d, 0x22b
jmp case.0x140045b92.9
mov r15d, 0x22c
jmp case.0x140045b92.9
mov r15d, 0x22d
jmp case.0x140045b92.9
mov r15d, 0x22e
jmp case.0x140045b92.9
mov r15d, 0x22f
jmp case.0x140045b92.9
mov r15d, 0x230
jmp case.0x140045b92.9
mov r15d, 0x231
jmp case.0x140045b92.9
mov r15d, 0x232
jmp case.0x140045b92.9
mov r15d, 0x233
jmp case.0x140045b92.9
mov r15d, 0x234
jmp case.0x140045b92.9
mov r15d, 0x235
jmp case.0x140045b92.9
mov r15d, 0x236
jmp case.0x140045b92.9
mov r15d, 0x237
jmp case.0x140045b92.9
mov r15d, 0x238
jmp case.0x140045b92.9
mov r15d, 0x239
jmp case.0x140045b92.9
mov r15d, 0x23a
jmp case.0x140045b92.9
mov r15d, 0x23b
jmp case.0x140045b92.9
mov r15d, 0x212
jmp case.0x140045b92.9
mov r15d, 0x216
jmp case.0x140045b92.9
mov r15d, 0x217
jmp case.0x140045b92.9
mov r15d, 0x264
jmp case.0x140045b92.9
mov r15d, 0x265
jmp case.0x140045b92.9
mov r15d, 0x266
jmp case.0x140045b92.9
mov r15d, 0x267
jmp case.0x140045b92.9
mov r15d, 0x268
jmp case.0x140045b92.9
mov r15d, 0x269
jmp case.0x140045b92.9
mov r15d, 0x26a
jmp case.0x140045b92.9
mov r15d, 0x26b
jmp case.0x140045b92.9
mov r15d, 0x26c
jmp case.0x140045b92.9
mov r15d, 0x26d
jmp case.0x140045b92.9
mov r15d, 0x270
jmp case.0x140045b92.9
mov r15d, 0x272
jmp case.0x140045b92.9
mov r15d, 0x271
jmp case.0x140045b92.9
mov r15d, 0x26e
jmp case.0x140045b92.9
mov r15d, 0x26f
jmp case.0x140045b92.9
mov r15d, 0x23c
jmp case.0x140045b92.9
mov r15d, 0x23d
jmp case.0x140045b92.9
mov r15d, 0x23e
jmp case.0x140045b92.9
mov r15d, 0x23f
jmp case.0x140045b92.9
mov r15d, 0x240
jmp case.0x140045b92.9
mov r15d, 0x241
jmp case.0x140045b92.9
mov r15d, 0x242
jmp case.0x140045b92.9
mov r15d, 0x243
jmp case.0x140045b92.9
mov r15d, 0x244
jmp case.0x140045b92.9
mov r15d, 0x245
jmp case.0x140045b92.9
mov r15d, 0x246
jmp case.0x140045b92.9
mov r15d, 0x247
jmp case.0x140045b92.9
mov r15d, 0x261
jmp case.0x140045b92.9
mov r15d, 0x260
jmp case.0x140045b92.9
mov r15d, 0x210
jmp case.0x140045b92.9
mov r15d, 0x214
jmp case.0x140045b92.9
mov r15d, 0x20f
jmp case.0x140045b92.9
mov r15d, 0x213
jmp case.0x140045b92.9
mov r15d, 0x211
jmp case.0x140045b92.9
mov r15d, 0x215
jmp case.0x140045b92.9
mov r15d, 0x259
jmp case.0x140045b92.9
mov r15d, 0x25a
jmp case.0x140045b92.9
mov r15d, 0x255
jmp case.0x140045b92.9
mov r15d, 0x256
jmp case.0x140045b92.9
mov r15d, 0x257
jmp case.0x140045b92.9
mov r15d, 0x25e
jmp case.0x140045b92.9
mov r15d, 0x25b
jmp case.0x140045b92.9
mov r15d, 0x25c
jmp case.0x140045b92.9
mov r15d, 0x25d
jmp case.0x140045b92.9
mov r15d, 0x254
jmp case.0x140045b92.9
mov r15d, 0x273
jmp case.0x140045b92.9
mov r15d, 0x258
cmp r12d, 0x100
sete bl
shr r14d, 0x10
movzx r14d, r14b
call fcn.140017480
mov rbp, rax
mov rcx, rax
mov edx, r15d
mov r8d, ebx
call fcn.14000cd20
mov dword [rsp + 0x20], 0xffffffff
mov rcx, rbp
mov edx, r15d
mov r8d, edi
mov r9d, r14d
call fcn.14000cd50
cmp edi, 0x12
je 0x140046252
cmp edi, 0x11
je 0x1400462c8
cmp edi, 0x10
jne 0x140045a8e
cmp r12d, 0x100
sete bl
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x140046215
cmp r12d, 0x100
sete dl
mov ecx, 0x210
mov r8d, 0xa0
mov r9d, r14d
call fcn.140046a00
cmp r12d, 0x100
sete bl
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x140045a8e
cmp r12d, 0x100
sete dl
mov ecx, 0x214
mov r8d, 0xa1
jmp 0x14004633c
cmp r12d, 0x100
sete bl
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x14004628e
cmp r12d, 0x100
sete dl
mov ecx, 0x211
mov r8d, 0xa4
mov r9d, r14d
call fcn.140046a00
cmp r12d, 0x100
sete bl
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x140045a8e
cmp r12d, 0x100
sete dl
mov ecx, 0x215
mov r8d, 0xa5
jmp 0x14004633c
cmp r12d, 0x100
sete bl
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x140046304
cmp r12d, 0x100
sete dl
mov ecx, 0x20f
mov r8d, 0xa2
mov r9d, r14d
call fcn.140046a00
cmp r12d, 0x100
sete bl
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets al
xor al, bl
jne 0x140045a8e
cmp r12d, 0x100
sete dl
mov ecx, 0x213
mov r8d, 0xa3
mov r9d, r14d
call fcn.140046a00
jmp 0x140045a8e