Function at 0x14003f750
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0xb8
mov rax, qword [0x140080fc0]
xor rax, rsp
mov qword [rsp + 0x80], rax
call fcn.140049950
mov rcx, rax
call fcn.140043450
test eax, eax
jne 0x14003fb5f
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rbp
xor ebp, ebp
mov qword [rsp + 0xd0], rsi
movabs rsi, 0x311cdad160000
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0xb0], r12
movabs r12, 0x7ffffffffff0bdbf
mov qword [rsp + 0xa8], r14
movabs r14, 0x112e0be826d694b3
mov qword [rsp + 0xa0], r15
movabs r15, 0x7fffffffffffffff
movaps xmmword [rsp + 0x90], xmm6
movsd xmm6, qword [0x140077a30]
mov ecx, 0x2e
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003fb1f
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14003f85a
cmp byte [0x140084899], bpl
jne 0x14003f861
cmp byte [0x140081012], bpl
mov rcx, qword [0x1400848a0]
sete al
mov byte [0x140084899], 1
mov byte [0x140081012], al
mov byte [rcx + 0xe2], al
movzx eax, byte [0x140081012]
mov byte [rcx + 0xe3], al
movzx eax, byte [0x140081012]
mov byte [rcx + 0x58], al
jmp 0x14003f861
mov byte [0x140084899], bpl
cmp byte [0x140081012], bpl
mov r8d, ebp
mov rcx, qword [0x1400848b8]
mov edx, 0x2000d
sete r8b
call fcn.140042f70
mov rbx, qword [0x140084aa8]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetWindowRect]
lea rdx, [rsp + 0x48]
mov rcx, rbx
call qword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [rsp + 0x50]
mov r10d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
sub ecx, dword [rsp + 0x48]
sub eax, r10d
mov dword [0x140081004], ecx
add eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x54]
cdq
sub ecx, r8d
sub eax, edx
sub r8d, dword [rsp + 0x54]
sar eax, 1
sub r8d, eax
mov dword [0x140081000], ecx
add r8d, dword [rsp + 0x6c]
mov rcx, qword [0x1400848b8]
lea edx, [r10 + rax]
mov dword [0x140084a9c], r8d
mov dword [0x140084a98], edx
call fcn.140043090
mov r8d, dword [0x140081000]
mov edx, dword [0x140081004]
mov rcx, qword [0x1400848b8]
call fcn.1400430c0
call fcn.140042f50
mov ecx, 0x4000
call qword [sym.imp.OPENGL32.dll_glClear]
mov rbx, qword [0x1400848a0]
test rbx, rbx
je 0x14003f942
mov rbx, qword [rbx + 0xa0]
jmp 0x14003f945
mov rbx, rbp
cmp dword [rbx + 0x30], ebp
jne 0x14003f94f
call fcn.140035c40
cmp dword [rbx + 0x2c], ebp
jne 0x14003f959
call fcn.140035700
call fcn.1400345f0
call fcn.14000cbc0
call fcn.140040380
cmp byte [0x14008489a], bpl
je 0x14003fad1
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003fad1
mov rdx, qword [0x140084ab0]
lea r8, [rsp + 0x58]
mov rcx, qword [0x140084ae8]
add rdx, 0x17ba518
mov r9d, 4
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [0x140084ab0]
lea r8, [rsp + 0x40]
mov rcx, qword [0x140084ae8]
add rdx, 0x17ba530
mov r9d, 4
mov dword [rsp + 0x40], 0x10001
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea rcx, [rsp + 0x38]
call fcn.140002db0
mov rdi, qword [rsp + 0x38]
cmp rdi, r12
jge 0x14003fa04
add rdi, 0xf4240
jmp 0x14003fa07
mov rdi, r15
lea rcx, [rsp + 0x30]
call fcn.140002db0
mov rbx, qword [rsp + 0x30]
cmp rbx, rdi
jge 0x14003fa9e
nop
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
imul rdx, rax, 0x64
xorps xmm0, xmm0
mov rax, rdi
sub rax, rbx
lea rcx, [rdx + rsi]
cvtsi2sd xmm0, rax
comisd xmm0, xmm6
seta r8b
test r8b, r8b
jne 0x14003fa4d
lea rcx, [rax + rdx]
add rax, rdx
add rdx, rsi
test r8b, r8b
cmove rdx, rax
mov rax, r14
imul rdx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul eax, edx, 0x3b9aca00
mov qword [rsp + 0x70], rdx
sub ecx, eax
mov dword [rsp + 0x78], ecx
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP140.dll__Thrd_sleep]
lea rcx, [rsp + 0x30]
call fcn.140002db0
mov rbx, qword [rsp + 0x30]
cmp rbx, rdi
jl 0x14003fa20
mov rdx, qword [0x140084ab0]
lea r8, [rsp + 0x40]
mov rcx, qword [0x140084ae8]
add rdx, 0x17ba530
mov r9d, 4
mov dword [rsp + 0x40], 0x1000100
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call fcn.140002f20
call fcn.14000eab0
mov rax, qword [0x1400848a0]
mov rcx, qword [rax + 0x4ba0]
mov rax, qword [rcx]
mov rcx, rbp
add rax, 0x50
cmp byte [rax], cl
cmovne rcx, rax
call fcn.1400350a0
mov rcx, qword [0x1400848b8]
call fcn.140049a20
call fcn.140049950
mov rcx, rax
call fcn.140043450
test eax, eax
je 0x14003f7f0
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140051cc0
add rsp, 0xb8
ret