Function at 0x1801f5ad0
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 [0x1804cd010]
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 0x1801f5b0f
lea r9d, [rbx - 0x6f]
lea r8, [0x1803c6d90]
jmp 0x1801f5b49
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x1801f5b22
mov r9d, ebx
lea r8, [0x1803d2548]
jmp 0x1801f5b49
lea eax, [rcx - 0x60]
cmp al, 9
ja 0x1801f5b36
lea r9d, [rbx - 0x60]
lea r8, str.Num_d
jmp 0x1801f5b49
sub cl, 0x30
cmp cl, 9
ja 0x1801f5b5d
lea r9d, [rbx - 0x30]
lea r8, [0x1803c5594]
mov ebx, 8
mov rcx, rdi
mov edx, ebx
call fcn.180184b50
jmp 0x1801f5e87
lea eax, [rbx - 0x25]
cmp eax, 0x98
ja case.0x1801f5b86.41
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x1f5f14]
mov ecx, dword [rdx + rax*4 + 0x1f5eec]
add rcx, rdx
jmp rcx
mov ebx, 8
lea r8, [0x1803c5490]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5ba0
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov eax, 0x8007007a
cmovne eax, esi
jmp 0x1801f5e87
mov ebx, 8
lea r8, [0x1803d12f8]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5bf2
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803c3570]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5c30
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803c28e0]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5c70
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803d2540]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5cc0
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803d2528]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5d10
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803d252c]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5d60
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803d2520]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5db0
jmp 0x1801f5bc3
mov ebx, 8
lea r8, [0x1803d2524]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5bc3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5bc3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5e00
jmp 0x1801f5bc3
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 0x1801f5ec2
mov ebx, 8
lea r8, [rsp + 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.1800c40c0
test eax, eax
je 0x1801f5e92
cmp eax, 0x8007007a
jne 0x1801f5ec2
test rdi, rdi
je 0x1801f5ebf
mov rax, rbx
nop word [rax + rax]
cmp word [rdi], si
je 0x1801f5eaf
add rdi, 2
sub rax, 1
jne 0x1801f5ea0
test rax, rax
je 0x1801f5ebf
sub rbx, rax
mov rbp, rbx
test rax, rax
jne 0x1801f5ec2
mov rbp, rsi
test ebp, ebp
cmovne esi, ebp
mov eax, esi
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.180388400
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret