Function at 0x14002fcc0
Capabilities:
Get graphical window text
Log keystrokes via polling
Open clipboard
Write clipboard data

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x3d0
mov rax, qword [0x140077040]
xor rax, rsp
mov qword [rsp + 0x3c0], rax
xor r14d, r14d
mov rbx, r8
mov rdi, rdx
lea ecx, [r14 + 0x11]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400300ab
cmp bx, 0x43
jne 0x1400300ab
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1400300a4
mov qword [rsp + 0x3f0], rbp
mov ecx, 0x4000
mov qword [rsp + 0x400], rsi
call fcn.140039d3c
lea rcx, str.____________________________r_n
mov rdx, rax
sub rdx, rcx
mov rbx, rax
nop
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x14002fd40
mov rsi, 0xffffffffffffffff
mov rax, rsi
nop word [rax + rax]
cmp word [rbx + rax*2 + 2], r14w
lea rax, [rax + 1]
jne 0x14002fd60
lea rdx, [rbx + rax*2]
mov r8d, 0x3e8
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowTextW]
lea rcx, [rbx - 2]
cmp word [rcx + 2], r14w
lea rcx, [rcx + 2]
jne 0x14002fd83
mov eax, dword [0x1400694bc]
mov dword [rcx], eax
movzx eax, word [0x1400694c0]
mov word [rcx + 4], ax
lea rcx, [rbx - 2]
cmp word [rcx + 2], r14w
lea rcx, [rcx + 2]
jne 0x14002fda5
movups xmm0, xmmword [str.____________________________r_n]
mov edx, 0x3e9
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x14006c3b0]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [0x14006c3c0]
movups xmmword [rcx + 0x20], xmm0
movsd xmm0, qword [0x14006c3d0]
movsd qword [rcx + 0x30], xmm0
mov eax, dword [0x14006c3d8]
mov dword [rcx + 0x38], eax
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, rax
mov rbp, rax
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x14002fe96
mov rax, rsi
nop dword [rax + rax]
cmp word [rbx + rax*2 + 2], r14w
lea rax, [rax + 1]
jne 0x14002fe10
lea rdx, [rbx + rax*2]
mov r8d, 0xfa0
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowTextW]
lea rcx, [rbx - 2]
cmp word [rcx + 2], r14w
lea rcx, [rcx + 2]
jne 0x14002fe33
mov eax, dword [0x1400694bc]
lea rdx, [rbx - 2]
mov dword [rcx], eax
movzx eax, word [0x1400694c0]
mov word [rcx + 4], ax
cmp word [rdx + 2], r14w
lea rdx, [rdx + 2]
jne 0x14002fe55
movups xmm0, xmmword [str.____________________________r_n]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [0x14006c3b0]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [0x14006c3c0]
movups xmmword [rdx + 0x20], xmm0
movsd xmm0, qword [0x14006c3d0]
movsd qword [rdx + 0x30], xmm0
mov eax, dword [0x14006c3d8]
mov dword [rdx + 0x38], eax
mov edx, 5
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindow]
mov rbp, qword [rsp + 0x3f0]
mov rdi, rax
test rax, rax
je 0x14002ff94
nop dword [rax + rax]
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x14002ff7a
mov r8d, 0x102
lea rdx, [rsp + 0x1b0]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetClassNameW]
lea rdx, str.Button
lea rcx, [rsp + 0x1b0]
call fcn.140040c70
test eax, eax
jne 0x14002ff7a
mov r8d, 0xc7
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rbx + rax*2], r14w
jne 0x14002ff20
movzx ecx, word [rsp + 0x20]
lea rdx, [rsp + 0x20]
test cx, cx
je 0x14002ff5a
nop dword [rax]
cmp cx, 0x26
je 0x14002ff4d
mov word [rbx + rax*2], cx
inc rax
movzx ecx, word [rdx + 2]
add rdx, 2
test cx, cx
jne 0x14002ff40
mov word [rbx + rax*2], r14w
lea rax, [rbx - 2]
cmp word [rax + 2], r14w
lea rax, [rax + 2]
jne 0x14002ff63
movsd xmm0, qword [0x14006c3e0]
movsd qword [rax], xmm0
mov edx, 2
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindow]
mov rdi, rax
test rax, rax
jne 0x14002fec0
lea rcx, [rbx - 2]
nop dword [rax + rax]
cmp word [rcx + 2], r14w
lea rcx, [rcx + 2]
jne 0x14002ffa0
mov eax, dword [0x1400694bc]
mov dword [rcx], eax
movzx eax, word [0x1400694c0]
mov word [rcx + 4], ax
lea rcx, [rbx - 2]
cmp word [rcx + 2], r14w
lea rcx, [rcx + 2]
jne 0x14002ffc2
movups xmm0, xmmword [str.____________________________r_n]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x14006c3b0]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [0x14006c3c0]
movups xmmword [rcx + 0x20], xmm0
movsd xmm0, qword [0x14006c3d0]
movsd qword [rcx + 0x30], xmm0
mov eax, dword [0x14006c3d8]
mov dword [rcx + 0x38], eax
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14003008d
call qword [sym.imp.USER32.dll_EmptyClipboard]
nop word [rax + rax]
cmp word [rbx + rsi*2 + 2], r14w
lea rsi, [rsi + 1]
jne 0x140030020
lea rdx, [rsi*2 + 2]
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rdi, rax
test rax, rax
je 0x140030087
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rdx, rax
test rax, rax
je 0x140030087
mov rcx, rbx
sub rdx, rbx
nop
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x140030060
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rdx, rdi
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_SetClipboardData]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rcx, rbx
call fcn.140039910
mov rsi, qword [rsp + 0x400]
mov eax, 1
jmp 0x1400300ae
mov eax, 1
jmp 0x1400300ae
mov eax, r14d
mov rcx, qword [rsp + 0x3c0]
xor rcx, rsp
call fcn.1400398f0
add rsp, 0x3d0
pop r14
pop rdi
pop rbx
ret