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

Disassembly:
push rbx
push rdi
sub rsp, 0xd8
mov rax, qword [0x1804610b0]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov rdi, rdx
movzx ebx, cl
mov rcx, rdi
mov edx, 0x10
call qword [sym.imp.KERNEL32.dll_IsBadWritePtr]
test eax, eax
je 0x1802500bb
xor eax, eax
jmp 0x1802504c3
mov qword [rsp + 0x100], rbp
lea eax, [rbx - 0x70]
mov qword [rsp + 0x108], rsi
xor esi, esi
mov qword [rsp + 0xd0], r14
mov r14d, esi
movzx ebp, bl
cmp al, 0xb
ja 0x1802500ef
lea r9d, [rbp - 0x6f]
lea r8, [0x1803960d0]
jmp 0x180250129
lea eax, [rbx - 0x41]
cmp al, 0x19
ja 0x180250102
mov r9d, ebp
lea r8, [0x1803960d8]
jmp 0x180250129
lea eax, [rbx - 0x60]
cmp al, 9
ja 0x180250116
lea r9d, [rbp - 0x60]
lea r8, str.Num_d
jmp 0x180250129
sub bl, 0x30
cmp bl, 9
ja 0x18025013d
lea r9d, [rbp - 0x30]
lea r8, [0x18039351c]
mov ebx, 8
mov rcx, rdi
mov edx, ebx
call fcn.180034d20
jmp 0x180250467
lea eax, [rbp - 0x25]
cmp eax, 0x98
ja case.0x180250166.41
lea rdx, [0x180000000]
cdqe
movzx eax, byte [rdx + rax + 0x250508]
mov ecx, dword [rdx + rax*4 + 0x2504e0]
add rcx, rdx
jmp rcx
mov ebx, 8
lea r8, [0x180388a7c]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180250180
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], si
mov eax, 0x8007007a
cmovne eax, esi
jmp 0x180250467
mov ebx, 8
lea r8, [0x180388a78]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1802501d2
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388aac]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180250210
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x1803842a0]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180250250
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388b08]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1802502a0
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388c38]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1802502f0
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388c7c]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180250340
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388c80]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x180250390
jmp 0x1802501a3
mov ebx, 8
lea r8, [0x180388c34]
mov edx, ebx
sub r8, rdi
mov rcx, rdi
nop dword [rax]
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffff6]
test rax, rax
je 0x1802501a3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1802501a3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1802503e0
jmp 0x1802501a3
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
xor edx, edx
mov ecx, ebp
mov r8, rax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0xa0
mov ebx, eax
call fcn.18029c350
shl ebx, 0x10
lea rdx, [rsp + 0x20]
mov ecx, ebx
mov r8d, 0x50
call qword [sym.imp.USER32.dll_GetKeyNameTextW]
test eax, eax
jle 0x1802504a2
mov ebx, 8
lea r8, [rsp + 0x20]
mov edx, ebx
mov rcx, rdi
call fcn.180034ca0
test eax, eax
je 0x180250472
cmp eax, 0x8007007a
jne 0x1802504a2
test rdi, rdi
je 0x18025049f
mov rax, rbx
nop word [rax + rax]
cmp word [rdi], si
je 0x18025048f
add rdi, 2
sub rax, 1
jne 0x180250480
test rax, rax
je 0x18025049f
sub rbx, rax
mov r14, rbx
test rax, rax
jne 0x1802504a2
mov r14, rsi
mov rbp, qword [rsp + 0x100]
test r14d, r14d
cmovne esi, r14d
mov r14, qword [rsp + 0xd0]
mov eax, esi
mov rsi, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.1802994c0
add rsp, 0xd8
pop rdi
pop rbx
ret