Function at 0x1400f1510
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.0x1400f1a79.527
cmp edx, 0x200
ja 0x1400f1a4f
je case.0x1400f15d8.160
cmp edx, 7
ja 0x1400f15b1
je 0x1400f18bd
cmp edx, 2
jne case.0x1400f1a79.527
cmp qword [r14 + 8], rcx
jne case.0x1400f1a79.527
cmp dword [r14 + 0x10], 0
je case.0x1400f1a79.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 0x1400f1a9a
lea eax, [rdx - 8]
cmp eax, 0xfd
ja case.0x1400f1a79.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xf1c74]
mov ecx, dword [rdx + rax*4 + 0xf1c58]
add rcx, rdx
jmp rcx
lea eax, [rsi - 0x100]
test eax, 0xfffffffb
sete dil
cmp r8, 0x100
jae case.0x1400f1a79.527
mov ecx, select
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x1000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.1400ac9b0
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x2000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.1400ac9b0
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov edx, 0x4000
and al, 1
mov rcx, rbx
movzx r8d, al
call fcn.1400ac9b0
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400f1682
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
jne 0x1400f1682
xor r8d, r8d
jmp 0x1400f1685
mov r8b, 1
mov edx, 0x8000
mov rcx, rbx
call fcn.1400ac9b0
mov r14, qword [rbp + 0x40]
mov rdx, r12
mov rcx, r14
call fcn.1400f0510
shr r12, 0x10
mov r15d, eax
movzx esi, r12b
cmp eax, 0x262
jne 0x1400f16ce
test dil, dil
jne 0x1400f16d3
mov r9d, r14d
mov dword [rsp + 0x20], esi
mov r8b, 1
mov edx, eax
mov rcx, rbx
call fcn.1400f0250
jmp 0x1400f16d3
test r15d, r15d
je 0x1400f16e9
mov r9d, r14d
mov dword [rsp + 0x20], esi
movzx r8d, dil
mov edx, r15d
mov rcx, rbx
call fcn.1400f0250
cmp r14d, 0x10
jne 0x1400f1784
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x1400f1737
movzx r8d, dil
mov edx, 0x210
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x210
mov r8d, 0xa0
mov rcx, rbx
call fcn.140029e50
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x1400f1a79.527
movzx r8d, dil
mov edx, 0x214
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x214
mov r8d, 0xa1
mov rcx, rbx
call fcn.140029e50
jmp case.0x1400f1a79.527
cmp r14d, 0x11
jne 0x1400f181f
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x1400f17d2
movzx r8d, dil
mov edx, 0x20f
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x20f
mov r8d, 0xa2
mov rcx, rbx
call fcn.140029e50
mov ecx, 0xa3
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x1400f1a79.527
movzx r8d, dil
mov edx, 0x213
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x213
mov r8d, 0xa3
mov rcx, rbx
call fcn.140029e50
jmp case.0x1400f1a79.527
cmp r14d, 0x12
jne case.0x1400f1a79.527
mov ecx, 0xa4
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne 0x1400f186d
movzx r8d, dil
mov edx, 0x211
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x211
mov r8d, 0xa4
mov rcx, rbx
call fcn.140029e50
mov ecx, 0xa5
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
and al, 1
cmp al, dil
jne case.0x1400f1a79.527
movzx r8d, dil
mov edx, 0x215
mov rcx, rbx
call fcn.1400ac9b0
mov r9d, esi
mov dword [rsp + 0x20], 0xffffffff
mov edx, 0x215
mov r8d, 0xa5
mov rcx, rbx
call fcn.140029e50
jmp case.0x1400f1a79.527
cmp esi, 7
sete dl
mov rcx, rbx
call fcn.1400ac5c0
jmp case.0x1400f1a79.527
mov rcx, rbx
call fcn.1400f1300
jmp case.0x1400f1a79.527
mov rcx, r13
call qword [sym.imp.USER32.dll_IsWindowUnicode]
test eax, eax
je 0x1400f1908
mov rdx, qword [rbp + 0x40]
lea rax, [rdx - 1]
cmp rax, 0xfffe
ja case.0x1400f1a79.527
mov rcx, rbx
call fcn.1400ac6e0
jmp case.0x1400f1a79.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.1400ac670
jmp case.0x1400f1a79.527
cmp r12w, 1
jne case.0x1400f1a79.527
mov edx, dword [r14 + 0x28]
mov rcx, rbx
call fcn.1400f1340
test al, al
je case.0x1400f1a79.527
mov eax, 1
jmp 0x1400f1c37
call fcn.1400f02a0
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 0x1400f19f8
cmp esi, 0x200
mov dword [rbp - 0x30], 0x18
mov eax, reloc.WS2_32.dll_select
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 0x1400f19e3
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 0x1400f1a27
lea rdx, [rbp - 0x38]
mov rcx, r13
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je case.0x1400f1a79.527
mov edx, r15d
mov rcx, rbx
call fcn.1400accf0
movd xmm2, dword [rbp - 0x34]
mov rcx, rbx
movd xmm1, dword [rbp - 0x38]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.1400acbb0
jmp case.0x1400f1a79.527
lea eax, [rdx - 0x201]
cmp eax, 0xa2
ja case.0x1400f1a79.527
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xf1d90]
mov ecx, dword [rdx + rax*4 + 0xf1d74]
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.0x1400f1a79.527
cmp qword [r14 + 8], r13
jne 0x1400f1a9e
mov qword [r14 + 8], rdi
movss xmm1, dword [0x140194a48]
mov rcx, rbx
movaps xmm2, xmm1
mov dword [r14 + 0x10], edi
call fcn.1400acbb0
jmp case.0x1400f1a79.527
call fcn.1400f02a0
xor edi, edi
mov dword [rbp + 0x50], eax
cmp esi, 0x204
je 0x1400f1ad7
mov r12d, edi
cmp esi, 0x206
jne 0x1400f1add
mov r12d, 1
lea ecx, [rsi - 0x207]
mov r15d, 2
test ecx, 0xfffffffd
lea eax, [rsi - 0x20b]
cmove r12d, r15d
test eax, 0xfffffffd
jne 0x1400f1b14
mov rax, qword [rbp + 0x40]
shr rax, 0x10
cmp ax, 1
setne dil
lea r12d, [rdi + 3]
cmp dword [r14 + 0x14], 0
jne 0x1400f1b2f
call qword [sym.imp.USER32.dll_GetCapture]
test rax, rax
jne 0x1400f1b2f
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.1400accf0
mov r8b, 1
mov edx, r12d
mov rcx, rbx
call fcn.1400ac9e0
jmp case.0x1400f1a79.527
call fcn.1400f02a0
xor edi, edi
mov r12d, eax
cmp esi, 0x205
mov r15d, edi
sete r15b
cmp esi, 0x208
jne 0x1400f1b80
mov r15d, 2
jmp 0x1400f1b9f
cmp esi, 0x20c
jne 0x1400f1b9f
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 0x1400f1bc0
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, r13
jne 0x1400f1bc0
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, r12d
mov rcx, rbx
call fcn.1400accf0
xor r8d, r8d
mov edx, r15d
mov rcx, rbx
call fcn.1400ac9e0
jmp case.0x1400f1a79.527
shr r8, 0x10
xorps xmm1, xmm1
movsx eax, r8w
mov rcx, rbx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
divss xmm2, dword [0x14018e5b0]
call fcn.1400acd00
jmp case.0x1400f1a79.527
shr r8, 0x10
xorps xmm2, xmm2
movsx eax, r8w
mov rcx, rbx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmmword [0x140191530]
divss xmm1, dword [0x14018e5b0]
call fcn.1400acd00
jmp case.0x1400f1a79.527
cmp r8d, 7
jne case.0x1400f1a79.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