Function at 0x14003cc70
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x18], r8
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rbx, qword [rbp + 0x50]
mov r12, r9
mov esi, edx
mov r13, rcx
mov r14, qword [rbx + 0x98]
test r14, r14
je case.0x14003d1dc.527
cmp edx, 0x200
ja 0x14003d1b2
je case.0x14003cd38.160
cmp edx, 7
ja 0x14003cd11
je 0x14003d01d
cmp edx, 2
jne case.0x14003d1dc.527
cmp qword [r14 + 8], rcx
jne case.0x14003d1dc.527
cmp dword [r14 + 0x10], 0
je case.0x14003d1dc.527
mov qword [rbp - 0x28], rcx
xor edi, edi
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x20], edi
mov dword [rbp - 0x30], 0x18
mov dword [rbp - 0x2c], 0x80000000
call qword [sym.imp.USER32.dll_TrackMouseEvent]
jmp 0x14003d1fd
lea eax, [rdx - 8]
cmp eax, 0xfd
ja case.0x14003d1dc.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x3d3d4]
mov ecx, dword [rdx + rax*4 + 0x3d3b8]
add rcx, rdx
jmp rcx
lea eax, [rsi - 0x100]
test eax, 0xfffffffb
sete dil
cmp r8, 0x100
jae case.0x14003d1dc.527
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x1000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.14000ea10
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x2000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.14000ea10
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x4000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.14000ea10
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x14003cde2
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x14003cde2
xor r8d, r8d
jmp 0x14003cde5
mov r8b, 1
mov edx, 0x8000
mov rcx, rbx
call fcn.14000ea10
mov r14, qword [rbp + 0x40]
mov rdx, r12
mov rcx, r14
call fcn.14003bc70
shr r12, 0x10
mov r15d, eax
movzx esi, r12b
cmp eax, 0x262
jne 0x14003ce2e
test dil, dil
jne 0x14003ce33
mov r9d, r14d
mov dword [rsp + 0x20], esi
mov r8b, 1
mov edx, eax
mov rcx, rbx
call fcn.14003b9b0
jmp 0x14003ce33
test r15d, r15d
je 0x14003ce49
mov r9d, r14d
mov dword [rsp + 0x20], esi
movzx r8d, dil
mov edx, r15d
mov rcx, rbx
call fcn.14003b9b0
cmp r14d, 0x10
jne 0x14003cee4
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x14003ce97
movzx r8d, dil
mov edx, 0x210
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x210
mov r8d, 0xa0
mov rcx, rbx
call fcn.14000e610
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x14003d1dc.527
movzx r8d, dil
mov edx, 0x214
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x214
mov r8d, 0xa1
mov rcx, rbx
call fcn.14000e610
jmp case.0x14003d1dc.527
cmp r14d, 0x11
jne 0x14003cf7f
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x14003cf32
movzx r8d, dil
mov edx, 0x20f
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x20f
mov r8d, 0xa2
mov rcx, rbx
call fcn.14000e610
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x14003d1dc.527
movzx r8d, dil
mov edx, 0x213
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x213
mov r8d, 0xa3
mov rcx, rbx
call fcn.14000e610
jmp case.0x14003d1dc.527
cmp r14d, 0x12
jne case.0x14003d1dc.527
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x14003cfcd
movzx r8d, dil
mov edx, 0x211
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x211
mov r8d, 0xa4
mov rcx, rbx
call fcn.14000e610
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x14003d1dc.527
movzx r8d, dil
mov edx, 0x215
mov rcx, rbx
call fcn.14000ea10
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x215
mov r8d, 0xa5
mov rcx, rbx
call fcn.14000e610
jmp case.0x14003d1dc.527
cmp esi, 7
sete dl
mov rcx, rbx
call fcn.14000e620
jmp case.0x14003d1dc.527
mov rcx, rbx
call fcn.14003ca60
jmp case.0x14003d1dc.527
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindowUnicode]
test eax, eax
je 0x14003d06b
mov rcx, qword [rbp + 0x40]
lea rax, [rcx - 1]
cmp rax, 0xfffe
ja case.0x14003d1dc.527
movzx edx, cx
mov rcx, rbx
call fcn.14000e740
jmp case.0x14003d1dc.527
mov ecx, dword [r14 + 0x2c]
lea rax, [rbp + 0x50]
mov r12d, 1
lea r8, [rbp + 0x40]
xor edi, edi
mov dword [rsp + 0x28], r12d
mov r9d, r12d
mov qword [rsp + 0x20], rax
mov edx, r12d
mov word [rbp + 0x50], di
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movzx edx, word [rbp + 0x50]
mov rcx, rbx
call fcn.14000e6d0
jmp case.0x14003d1dc.527
cmp r12w, 1
jne case.0x14003d1dc.527
mov edx, dword [r14 + 0x28]
mov rcx, rbx
call fcn.14003caa0
test al, al
je case.0x14003d1dc.527
mov eax, 1
jmp 0x14003d398
call fcn.14003ba00
mov ecx, dword [r14 + 0x10]
xor edi, edi
mov r15d, eax
mov dword [rbp - 0x40], eax
cmp esi, 0x200
mov qword [r14 + 8], r13
mov eax, edi
setne al
inc eax
mov dword [rbp + 0x50], eax
cmp ecx, eax
je 0x14003d15b
cmp esi, 0x200
mov dword [rbp - 0x30], 0x18
mov eax, 0x12
mov dword [rbp - 0x2c], 0x80000000
mov r15d, 2
mov qword [rbp - 0x28], r13
cmovne r15d, eax
mov dword [rbp - 0x20], edi
mov dword [rbp - 0x14], r15d
mov dword [rbp - 0x18], 0x18
mov qword [rbp - 0x10], r13
mov dword [rbp - 8], edi
test ecx, ecx
je 0x14003d146
lea rcx, [rbp - 0x30]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
lea rcx, [rbp - 0x18]
call qword [sym.imp.USER32.dll_TrackMouseEvent]
mov eax, dword [rbp + 0x50]
mov r15d, dword [rbp - 0x40]
mov dword [r14 + 0x10], eax
movsx eax, r12w
shr r12, 0x10
mov dword [rbp - 0x38], eax
movsx eax, r12w
mov dword [rbp - 0x34], eax
cmp esi, 0xa0
jne 0x14003d18a
lea rdx, [rbp - 0x38]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je case.0x14003d1dc.527
mov edx, r15d
mov rcx, rbx
call fcn.14000ed40
movd xmm2, dword [rbp - 0x34]
mov rcx, rbx
movd xmm1, dword [rbp - 0x38]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.14000ec00
jmp case.0x14003d1dc.527
lea eax, [rdx - 0x201]
cmp eax, 0xa2
ja case.0x14003d1dc.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x3d4f0]
mov ecx, dword [rdx + rax*4 + 0x3d4d4]
add rcx, rdx
jmp rcx
xor edi, edi
cmp esi, 0x2a3
mov eax, edi
setne al
inc eax
cmp dword [r14 + 0x10], eax
jne case.0x14003d1dc.527
cmp qword [r14 + 8], r13
jne 0x14003d201
mov qword [r14 + 8], rdi
movss xmm1, dword [0x1400502d0]
mov rcx, rbx
movaps xmm2, xmm1
mov dword [r14 + 0x10], edi
call fcn.14000ec00
jmp case.0x14003d1dc.527
call fcn.14003ba00
xor edi, edi
mov dword [rbp + 0x50], eax
cmp esi, 0x204
je 0x14003d23a
mov r12d, edi
cmp esi, 0x206
jne 0x14003d240
mov r12d, 1
lea ecx, [rsi - 0x207]
mov r15d, 2
test ecx, 0xfffffffd
lea eax, [rsi - 0x20b]
cmove r12d, r15d
test eax, 0xfffffffd
jne 0x14003d277
mov rax, qword [rbp + 0x40]
shr rax, 0x10
cmp ax, 1
setne dil
lea r12d, [rdi + 3]
cmp dword [r14 + 0x14], 0
jne 0x14003d292
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x14003d292
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov eax, dword [r14 + 0x14]
mov rcx, rbx
mov edx, dword [rbp + 0x50]
bts eax, r12d
mov dword [r14 + 0x14], eax
call fcn.14000ed40
mov r8b, 1
mov edx, r12d
mov rcx, rbx
call fcn.14000ea40
jmp case.0x14003d1dc.527
call fcn.14003ba00
xor edi, edi
mov r12d, eax
cmp esi, 0x205
mov r15d, edi
sete r15b
cmp esi, 0x208
jne 0x14003d2e1
lea r15d, [rdi + 2]
jmp 0x14003d300
cmp esi, 0x20c
jne 0x14003d300
mov rax, qword [rbp + 0x40]
mov r15d, edi
shr rax, 0x10
cmp ax, 1
setne r15b
add r15d, 3
mov eax, dword [r14 + 0x14]
btr eax, r15d
mov dword [r14 + 0x14], eax
test eax, eax
jne 0x14003d321
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x14003d321
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, r12d
mov rcx, rbx
call fcn.14000ed40
xor r8d, r8d
mov edx, r15d
mov rcx, rbx
call fcn.14000ea40
jmp case.0x14003d1dc.527
shr r8, 0x10
xorps xmm1, xmm1
movsx eax, r8w
mov rcx, rbx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x14004dca0]
call fcn.14000ed50
jmp case.0x14003d1dc.527
shr r8, 0x10
xorps xmm2, xmm2
movsx eax, r8w
mov rcx, rbx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x140050350]
divss xmm1, dword [0x14004dca0]
call fcn.14000ed50
jmp case.0x14003d1dc.527
cmp r8d, 7
jne case.0x14003d1dc.527
mov byte [r14 + 0x31], 1
xor eax, eax
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret