Function at 0x140004050
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf00]
mov eax, 0x1000
call fcn.140008710
sub rsp, rax
mov rax, qword [0x14000f010]
xor rax, rsp
mov qword [rbp + 0xef0], rax
mov rax, r9
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rbp + 0xe70], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xe78], xmm0
xor r12d, r12d
mov qword [rbp + 0xe88], r12
mov esi, 0xf
mov r15d, esi
mov qword [rbp + 0xe90], rsi
mov byte [rbp + 0xe78], r12b
mov rdx, qword [r8]
cmp rdx, qword [r8 + 8]
je 0x1400041f3
add rdx, 0x20
cmp byte [rdx + 0x130], 1
jne 0x140004441
lea rax, [rbp + 0xe78]
cmp rax, rdx
je 0x140004116
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x1400040fc
mov rdx, qword [rdx]
lea rcx, [rbp + 0xe78]
call fcn.140005aa0
mov r15, qword [rbp + 0xe90]
mov r12, qword [rbp + 0xe88]
lea rdi, [rbp + 0xe78]
mov r14, qword [rbp + 0xe78]
cmp r15, 0x10
cmovae rdi, r14
lea r13, [rbp + 0xe78]
cmovae r13, r14
add r13, r12
cmp rdi, r13
je 0x1400041fa
nop dword [rax]
nop word [rax + rax]
movsx ebx, byte [rdi]
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
xorps xmm0, xmm0
movups xmmword [rbp + 0xea0], xmm0
movups xmmword [rbp + 0xeb0], xmm0
movups xmmword [rbp + 0xec0], xmm0
movups xmmword [rbp + 0xed0], xmm0
movups xmmword [rbp + 0xee0], xmm0
movzx ecx, bx
mov rdx, rax
call qword [sym.imp.USER32.dll_VkKeyScanExW]
mov dword [rbp + 0xea0], 1
mov word [rbp + 0xea8], ax
mov dword [rbp + 0xeac], 1
mov dword [rbp + 0xec8], 1
mov word [rbp + 0xed0], ax
mov dword [rbp + 0xed4], 2
mov r8d, 0x28
lea rdx, [rbp + 0xea0]
lea ecx, [r8 - 0x26]
call qword [sym.imp.USER32.dll_SendInput]
inc rdi
cmp rdi, r13
jne 0x140004150
jmp 0x1400041fa
mov r14, qword [rbp + 0xe78]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
lea rcx, [rbp + 0xea0]
mov qword [rsp + 0x60], rcx
lea rcx, [rbp + 0xea0]
call qword [sym.imp.dpp.dll_class_std::function_void____cdecl___struct_dpp::confirmation_callback_t_const____ptr64_____cdecl_dpp::utility::log_error_void_]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x2d0]
mov qword [rsp + 0x68], rax
mov rdi, qword [rsp + 0x30]
mov rdx, rdi
lea rcx, [rbp + 0x2d0]
call qword [sym.imp.dpp.dll_public:_void___cdecl_dpp::command_source::constructor_struct_dpp::command_source_const____ptr64____ptr64]
mov qword [rsp + 0x30], rax
movabs rax, 0x7fffffffffffffff
mov rcx, rax
sub rcx, r12
cmp rcx, 6
jb 0x140004447
lea rdx, [rbp + 0xe78]
cmp r15, 0x10
cmovae rdx, r14
mov qword [rsp + 0x20], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
lea r13, [r12 + 6]
lea rbx, [rsp + 0x38]
cmp r13, 0xf
jbe 0x140004325
mov rsi, r13
or rsi, 0xf
cmp rsi, rax
jbe 0x1400042af
mov rsi, rax
jmp 0x1400042bb
mov eax, 0x16
cmp rsi, rax
cmovb rsi, rax
mov rcx, rsi
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x14000430a
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000443b
mov rcx, rax
call fcn.140007810
test rax, rax
je 0x140004303
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov rdx, qword [rsp + 0x20]
jmp 0x140004320
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
test rcx, rcx
je 0x14000431e
call fcn.140007810
mov rbx, rax
mov rdx, qword [rsp + 0x20]
jmp 0x140004320
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], rsi
mov eax, dword [str.typed]
mov dword [rbx], eax
movzx eax, word [0x14000a8e0]
mov word [rbx + 4], ax
lea rcx, [rbx + 6]
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + r13], 0
xor r8d, r8d
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x70]
call qword [sym.imp.dpp.dll_public:_void___cdecl_dpp::message::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64__enum_dpp::message_type____ptr64]
nop
mov r9, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov rdx, rax
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.dpp.dll_public:_void___cdecl_dpp::commandhandler::reply_struct_dpp::message_const____ptr64__struct_dpp::command_source__class_std::function_void____cdecl___struct_dpp::confirmation_callback_t_const____ptr64______ptr64]
nop
lea rcx, [rsp + 0x70]
call qword [sym.imp.dpp.dll_public_virtual:_void___cdecl_dpp::message::destructor_void____ptr64]
nop
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
jb 0x1400043cd
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400043c7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400043c7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140007b74
nop
cmp r15, 0x10
jb 0x140004408
lea rdx, [r15 + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x1400043ff
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400043ff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r14
call fcn.140007b74
nop
mov rcx, rdi
call qword [sym.imp.dpp.dll_public:_void___cdecl_dpp::command_source::destructor_void____ptr64]
mov rcx, qword [rbp + 0xef0]
xor rcx, rsp
call fcn.1400077f0
mov rbx, qword [rsp + 0x1048]
add rsp, 0x1000
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400019d0
nop
call fcn.140001a80
nop
call fcn.140001b10
int3