Function at 0x140020fc0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [0x1401b4a40]
xor rax, rsp
mov qword [rbp + 0x1f], rax
movdqa xmm6, xmmword [0x14010b9e0]
xorps xmm0, xmm0
movss xmm7, dword [0x14010b7e8]
xor edi, edi
movss xmm8, dword [0x14010b7ac]
movups xmmword [0x1401b5730], xmm0
movups xmmword [0x1401b5740], xmm0
movups xmmword [0x1401b5750], xmm0
nop word [rax + rax]
mov rdx, qword [0x1401b5760]
lea rcx, [0x1401b5730]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x140021070
lea rcx, [0x1401b5730]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [0x1401b5730]
call qword [sym.imp.USER32.dll_DispatchMessageW]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x1401b5768]
cmp rax, rcx
jne 0x1400210bd
mov edx, 3
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindow]
mov rcx, qword [0x1401b5760]
xor r9d, r9d
mov dword [rsp + 0x30], 3
mov rdx, rax
mov dword [rsp + 0x28], edi
xor r8d, r8d
mov dword [rsp + 0x20], edi
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, qword [0x1401b5768]
xorps xmm0, xmm0
mov qword [rbp - 1], rdi
lea rdx, [rbp + 7]
movups xmmword [rbp + 7], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [0x1401b5768]
lea rdx, [rbp - 1]
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [rbp - 1]
mov dword [rbp + 7], eax
mov eax, dword [rbp + 3]
mov dword [rbp + 0xb], eax
call fcn.140031920
mov rcx, qword [0x1401b5768]
mov rbx, rax
mov qword [rax + 0xc8], rcx
lea rcx, [rbp + 0x17]
mov dword [rax + 0x10], 0x3c888889
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [rbp + 0x17]
sub ecx, dword [rbp - 1]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xdf4], xmm0
mov ecx, dword [rbp + 0x1b]
sub ecx, dword [rbp + 3]
movd xmm0, ecx
mov ecx, 1
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xdf8], xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14002116c
mov byte [rbx + 0xdfc], 1
mov eax, dword [rbx + 0xdf8]
mov dword [rbx + 0x36e0], eax
mov byte [rbx + 0x3730], 1
jmp 0x140021173
mov byte [rbx + 0xdfc], dil
mov eax, dword [0x1401b5bb0]
mov ecx, dword [rbp + 0x13]
mov edx, dword [rbp + 0xf]
cmp dword [rbp + 7], eax
jne 0x14002119f
cmp edx, dword [0x1401b5bb8]
jne 0x14002119f
mov eax, dword [0x1401b5bb4]
cmp dword [rbp + 0xb], eax
jne 0x14002119f
cmp ecx, dword [0x1401b5bbc]
je 0x140021200
movups xmm0, xmmword [rbp + 7]
mov r9d, dword [rbp + 3]
mov r8d, dword [rbp - 1]
mov dword [rsp + 0x30], 8
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov dword [0x1401b5b40], edx
mov dword [0x1401b5b44], ecx
mov dword [0x1401b56f0], edx
xor edx, edx
mov dword [0x1401b56f4], ecx
mov rcx, qword [0x1401b5760]
movups xmmword [0x1401b5bb0], xmm0
call qword [sym.imp.USER32.dll_SetWindowPos]
mov rcx, qword [0x1401b56e8]
lea rdx, [0x1401b56f0]
mov rax, qword [rcx]
call qword [rax + 0x80]
call fcn.1400515a0
call fcn.1400522c0
call fcn.140037280
call fcn.140021520
cmp byte [0x1401b5b50], dil
je 0x140021239
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140021239
mov rcx, qword [0x1401b5ba0]
call fcn.140017890
cmp byte [0x1401b5b51], dil
je 0x14002129c
call fcn.1400315e0
lea rcx, [rbp - 0x31]
mov rbx, rax
movups xmmword [rbp - 0x31], xmm6
call fcn.14002f060
movd xmm0, dword [0x1401b5b48]
lea rdx, [rbp - 0x59]
movd xmm1, dword [0x1401b5b4c]
mov r9d, eax
movss xmm2, dword [0x1401b39dc]
mov rcx, rbx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rsp + 0x28], xmm7
movss dword [rbp - 0x59], xmm0
movss dword [rbp - 0x55], xmm1
mov dword [rsp + 0x20], 0x64
call fcn.140041bd0
cmp byte [0x1401b5b52], dil
je 0x140021377
call fcn.1400315e0
lea rcx, [rbp - 0x21]
mov rbx, rax
movups xmmword [rbp - 0x21], xmm6
call fcn.14002f060
mov edx, dword [0x1401b5b48]
lea r8, [rbp - 0x51]
movd xmm1, dword [0x1401b5b4c]
mov r9d, eax
cvtdq2ps xmm1, xmm1
lea ecx, [rdx + 6]
movss dword [rsp + 0x20], xmm7
movd xmm0, ecx
lea ecx, [rdx - 6]
cvtdq2ps xmm0, xmm0
lea rdx, [rbp - 0x49]
movss dword [rbp - 0x4d], xmm1
movss dword [rbp - 0x51], xmm0
movd xmm0, ecx
mov rcx, rbx
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x45], xmm1
movss dword [rbp - 0x49], xmm0
call fcn.140043250
call fcn.1400315e0
lea rcx, [rbp - 0x11]
mov rbx, rax
movups xmmword [rbp - 0x11], xmm6
call fcn.14002f060
mov edx, dword [0x1401b5b4c]
lea r8, [rbp - 0x41]
movd xmm1, dword [0x1401b5b48]
mov r9d, eax
cvtdq2ps xmm1, xmm1
lea ecx, [rdx + 6]
movss dword [rsp + 0x20], xmm7
movd xmm0, ecx
lea ecx, [rdx - 6]
cvtdq2ps xmm0, xmm0
lea rdx, [rbp - 0x39]
movss dword [rbp - 0x41], xmm1
movss dword [rbp - 0x3d], xmm0
movd xmm0, ecx
mov rcx, rbx
cvtdq2ps xmm0, xmm0
movss dword [rbp - 0x39], xmm1
movss dword [rbp - 0x35], xmm0
call fcn.140043250
call fcn.140016a80
call fcn.14002fec0
mov rcx, qword [0x1401b56e8]
xor r8d, r8d
mov edx, 7
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x1401b56e8]
xor r8d, r8d
mov edx, 0x1b
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x1401b56e8]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x1401b56e8]
mov r9d, 1
mov dword [rsp + 0x30], edi
xor r8d, r8d
movss dword [rsp + 0x28], xmm8
xor edx, edx
mov dword [rsp + 0x20], edi
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x1401b56e8]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x140021429
call fcn.140038ee0
call fcn.1400315b0
mov rcx, rax
call fcn.140051600
mov rcx, qword [0x1401b56e8]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x1401b56e8]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x140021482
mov rcx, qword [0x1401b56e8]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x140021482
call fcn.140051510
mov rcx, qword [0x1401b56e8]
lea rdx, [0x1401b56f0]
mov rax, qword [rcx]
call qword [rax + 0x80]
call fcn.140051250
cmp dword [0x1401b5738], 0x12
jne 0x140021030
call fcn.140052050
call fcn.1400525e0
xor ecx, ecx
call fcn.14002fab0
mov rcx, qword [0x1401b56e8]
test rcx, rcx
je 0x1400214c2
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x1401b56e8]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [0x1401b56e0]
test rcx, rcx
je 0x1400214d4
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [0x1401b5760]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rax, qword [0x1401b5740]
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.140102cf0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rbp
ret