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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0xd0
mov rax, qword [0x1804cc010]
xor rax, rsp
mov qword [rsp + 0xc0], rax
xor esi, esi
movzx ebx, cl
lea eax, [rcx - 0x70]
mov rdi, rdx
mov ebp, esi
cmp al, 0xb
ja 0x1801f542f
lea r9d, [rbx - 0x6f]
lea r8, [0x1803c5c90]
jmp 0x1801f5469
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x1801f5442
mov r9d, ebx
lea r8, [0x1803d14e8]
jmp 0x1801f5469
lea eax, [rcx - 0x60]
cmp al, 9
ja 0x1801f5456
lea r9d, [rbx - 0x60]
lea r8, str.Num_d
jmp 0x1801f5469
sub cl, 0x30
cmp cl, 9
ja 0x1801f547d
lea r9d, [rbx - 0x30]
lea r8, [0x1803c4540]
mov ebx, 8
mov rcx, rdi
mov edx, ebx
call fcn.1801844a0
jmp 0x1801f57a7
lea eax, [rbx - 0x25]
cmp eax, 0x98
ja case.0x1801f54a6.41
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x1f5834]
mov ecx, dword [rdx + rax*4 + 0x1f580c]
add rcx, rdx
jmp rcx
mov ebx, 8
lea r8, [0x1803c4460]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f54c0
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov eax, 0x8007007a
cmovne eax, esi
jmp 0x1801f57a7
mov ebx, 8
lea r8, [0x1803d006c]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5512
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803c2520]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5550
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803c1880]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5590
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803d14e0]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f55e0
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803d14c8]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5630
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803d14cc]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5680
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803d14c0]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f56d0
jmp 0x1801f54e3
mov ebx, 8
lea r8, [0x1803d14c4]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f54e3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f54e3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5720
jmp 0x1801f54e3
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
xor edx, edx
mov ecx, ebx
mov r8, rax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0xa0
mov ebx, eax
call sub.VCRUNTIME140.dll_memset
shl ebx, 0x10
lea rdx, [rsp + 0x20]
mov ecx, ebx
mov r8d, 0x50
call qword [sym.imp.USER32.dll_GetKeyNameTextW]
test eax, eax
jle 0x1801f57e2
mov ebx, 8
lea r8, [rsp + 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.1800c3a10
test eax, eax
je 0x1801f57b2
cmp eax, 0x8007007a
jne 0x1801f57e2
test rdi, rdi
je 0x1801f57df
mov rax, rbx
nop word [rax + rax]
cmp word [rdi], si
je 0x1801f57cf
add rdi, 2
sub rax, 1
jne 0x1801f57c0
test rax, rax
je 0x1801f57df
sub rbx, rax
mov rbp, rbx
test rax, rax
jne 0x1801f57e2
mov rbp, rsi
test ebp, ebp
cmovne esi, ebp
mov eax, esi
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1803868f0
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret