Function at 0x1801f5510
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 [0x1804ca010]
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 0x1801f554f
lea r9d, [rbx - 0x6f]
lea r8, [0x1803c4d90]
jmp 0x1801f5589
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x1801f5562
mov r9d, ebx
lea r8, [0x1803d053c]
jmp 0x1801f5589
lea eax, [rcx - 0x60]
cmp al, 9
ja 0x1801f5576
lea r9d, [rbx - 0x60]
lea r8, str.Num_d
jmp 0x1801f5589
sub cl, 0x30
cmp cl, 9
ja 0x1801f559d
lea r9d, [rbx - 0x30]
lea r8, [0x1803c3594]
mov ebx, 8
mov rcx, rdi
mov edx, ebx
call fcn.180184590
jmp 0x1801f58c7
lea eax, [rbx - 0x25]
cmp eax, 0x98
ja case.0x1801f55c6.41
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x1f5954]
mov ecx, dword [rdx + rax*4 + 0x1f592c]
add rcx, rdx
jmp rcx
mov ebx, 8
lea r8, [0x1803c3490]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f55e0
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov eax, 0x8007007a
cmovne eax, esi
jmp 0x1801f58c7
mov ebx, 8
lea r8, [0x1803cf188]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5632
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803c1570]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5670
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803c08e0]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f56b0
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803d0530]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5700
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803d0538]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5750
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803d0524]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f57a0
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803d0528]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f57f0
jmp 0x1801f5603
mov ebx, 8
lea r8, [0x1803d0520]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1801f5603
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1801f5603
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1801f5840
jmp 0x1801f5603
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 0x1801f5902
mov ebx, 8
lea r8, [rsp + 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.1800c3f00
test eax, eax
je 0x1801f58d2
cmp eax, 0x8007007a
jne 0x1801f5902
test rdi, rdi
je 0x1801f58ff
mov rax, rbx
nop word [rax + rax]
cmp word [rdi], si
je 0x1801f58ef
add rdi, 2
sub rax, 1
jne 0x1801f58e0
test rax, rax
je 0x1801f58ff
sub rbx, rax
mov rbp, rbx
test rax, rax
jne 0x1801f5902
mov rbp, rsi
test ebp, ebp
cmovne esi, ebp
mov eax, esi
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.180385c10
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop rdi
pop rsi
pop rbp
ret