Function at 0x14000a410
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov r13, rcx
mov r12d, edx
mov rsi, r8
mov rdi, r9
mov edx, 0xffffffeb
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
mov rbx, rax
cmp r12d, 0x101
ja 0x14000a488
cmp r12d, 0xff
ja 0x14000a500
cmp r12d, 0xf
je 0x14000a590
cmp r12d, 0x10
jne 0x14000a4d0
mov rcx, r13
call qword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r12d, 0x200
je 0x14000a720
lea eax, [r12 - 0x201]
cmp eax, 1
jbe 0x14000a4e0
mov r9, rdi
mov r8, rsi
mov edx, r12d
mov rcx, r13
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.USER32.dll_DefWindowProcA]
cmp r12d, 2
jne 0x14000a4a2
xor ecx, ecx
call qword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x14000a46c
xor eax, eax
cmp r12d, 0x201
sete al
mov dword [rbx + 0x424], eax
jmp 0x14000a46c
mov r13, qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x11
call r13
mov ecx, 0x10
movsx esi, ax
call r13
shr esi, 0x1f
mov ecx, 0x12
shr eax, 0xe
and eax, 2
or esi, eax
call r13
mov ecx, 0x5b
mov r12d, eax
call r13
shr r12d, 0xd
mov ecx, 0x5c
and r12d, 4
or r12d, esi
mov esi, eax
call r13
lea rdx, [0x140021560]
or esi, eax
mov rax, rdi
shr rdi, 0x1f
shr rax, 0x10
shr esi, 0xc
mov r9, rdi
and eax, 0x1ff
and esi, 8
xor r9, 1
movzx eax, byte [rdx + rax]
or esi, r12d
and r9d, 1
mov dword [rbx + 0x418], esi
mov dword [rbx + rax*4 + 0x18], r9d
jmp 0x14000a46c
lea rdi, [rsp + 0xa0]
mov rcx, r13
mov rdx, rdi
call qword [sym.imp.USER32.dll_BeginPaint]
mov r14, rax
mov rcx, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r14
mov r12, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rbp, qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, r12
mov r15, rax
mov rdx, rax
call rbp
lea rdx, [rsp + 0x60]
xor r8d, r8d
mov rcx, r12
mov qword [rsp + 0x60], 0
mov rsi, rax
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x70], 0
mov dword [rsp + 0x90], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov eax, dword [rbx + 0xc]
movd xmm0, dword [rbx + 8]
mov byte [rsp + 0x8a], 0xff
neg eax
mov byte [rsp + 0x8d], 0xff
movd xmm1, eax
mov byte [rsp + 0x90], 0xff
movabs rax, 0x300200001
punpckldq xmm0, xmm1
mov qword [rsp + 0x6c], rax
mov eax, dword [rbx + 0xc]
movq qword [rsp + 0x64], xmm0
mov r9d, dword [rbx + 8]
mov dword [rsp + 0x58], 0
mov qword [rsp + 0x50], rdx
mov rdx, qword [rbx + 0x10]
mov dword [rsp + 0x60], 0x34
mov qword [rsp + 0x48], rdx
xor edx, edx
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_SetDIBitsToDevice]
mov r9d, dword [rbx + 8]
mov qword [rsp + 0x28], r12
xor edx, edx
mov dword [rsp + 0x40], 0xcc0020
xor r8d, r8d
mov rcx, r14
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov eax, dword [rbx + 0xc]
mov dword [rsp + 0x20], eax
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, rsi
mov rcx, r12
call rbp
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, r12
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.USER32.dll_EndPaint]
jmp 0x14000a46c
mov r9d, edi
movzx eax, di
shr r9d, 0x10
movd xmm0, eax
movd xmm2, r9d
punpckldq xmm0, xmm2
movq qword [rbx + 0x41c], xmm0
jmp 0x14000a46c