Function at 0x14000d160
Capabilities:
Get keyboard layout

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x440
xor esi, esi
lea r15, [r9 + 0x1c]
mov byte [rax + 0x18], sil
mov rbx, r9
movzx r12d, r8b
mov r13, rdx
mov r14, rcx
movzx ebp, si
test r9, r9
jne 0x14000d19c
lea r15, [rax + 0x20]
test r12b, r12b
jne 0x14000d215
mov rdi, rcx
test rcx, rcx
je 0x14000d215
movzx edx, word [rcx]
test dx, dx
je 0x14000d215
lea rcx, [0x1400cf8a0]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14000d1e1
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14000d1c0
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14000d1b1
jmp 0x14000d215
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14000d1f3
cmp ax, 9
jne 0x14000d1f9
add rcx, 2
jmp 0x14000d1e4
lea rdx, [0x1400be1b8]
call fcn.1400981f0
test eax, eax
jne 0x14000d215
test rbx, rbx
je 0x14000d212
mov byte [rbx + 0x20], 1
mov word [rdi], si
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov r9b, 1
lea rdx, [rsp + 0x490]
movzx r8d, r9b
mov qword [rsp + 0x20], rax
mov rcx, r14
call fcn.140013310
movzx edi, al
test al, al
je 0x14000d309
test r12b, r12b
je 0x14000d2a5
lea ecx, [rdi + 0x64]
cmp cl, 3
ja 0x14000d2c7
cmp byte [rsp + 0x4a0], sil
je 0x14000d267
lea rdx, [0x1400cf8a8]
jmp 0x14000d349
mov r9, r14
lea r8, str.__s__is_not_allowed_as_a_prefix_key.
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140078a50
mov r8, r13
lea rdx, [rsp + 0x40]
lea rcx, [0x1400f4390]
call fcn.14002f740
test rbx, rbx
jne 0x14000d361
lea eax, [rbx + 4]
jmp 0x14000d442
test rbx, rbx
je 0x14000d2c7
mov r8d, 2
lea rdx, [0x1400cf8fc]
mov rcx, r14
call fcn.14009a7d8
test eax, eax
sete al
mov byte [rbx + 0x21], al
lea eax, [rdi - 1]
cmp al, 5
ja 0x14000d2d4
cmp dil, 3
jne 0x14000d2db
lea eax, [rdi + 0x66]
cmp al, 5
ja 0x14000d2df
mov dl, 1
jmp 0x14000d2e1
xor dl, dl
movzx ecx, byte [rsp + 0x490]
test cl, 0x30
je 0x14000d2f8
lea eax, [rdi - 0x41]
cmp al, 0x19
ja 0x14000d2f8
and cl, 0xcf
test dl, dl
je 0x14000d3e6
mov byte [r15], 2
jmp 0x14000d3e6
mov rcx, r14
call fcn.140013220
movzx ebp, ax
test ax, ax
jne 0x14000d3de
mov r8b, 1
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.1400522d0
mov ebp, eax
test ax, ax
jne 0x14000d3c4
cmp byte [rsp + 0x4a0], sil
je 0x14000d368
lea rdx, [0x1400cf904]
mov rcx, qword [0x1400efed8]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.14007c070
xor eax, eax
jmp 0x14000d442
cmp word [r14 + 2], si
jne 0x14000d38a
cmp byte [0x1400f4f20], sil
jne 0x14000d38a
mov eax, 3
test rbx, rbx
cmove esi, eax
mov eax, esi
jmp 0x14000d442
test rbx, rbx
je 0x14000d361
mov r9, r14
lea r8, [0x1400cf908]
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140078a50
lea r8, [0x1400bbf7c]
lea rdx, [rsp + 0x40]
lea rcx, [0x1400f4390]
call fcn.14002f740
xor eax, eax
jmp 0x14000d442
movsxd rdi, dword [rsp + 0x30]
lea rcx, [0x1400f0e20]
inc dword [0x1400f0e38]
mov byte [r15], 4
mov byte [rdi + rcx], 1
movzx ecx, byte [rsp + 0x490]
test r12b, r12b
je 0x14000d3fa
test rbx, rbx
je 0x14000d43d
mov byte [rbx + 0x1b], dil
mov word [rbx + 0x12], bp
jmp 0x14000d43d
test rbx, rbx
je 0x14000d43d
movzx edx, cl
mov byte [rbx + 0x1a], dil
and dl, 0xd5
mov word [rbx + 0x10], bp
movzx eax, dl
mov r8d, 8
and al, 0xc0
cmovne esi, r8d
test dl, 0xc
je 0x14000d424
or esi, 1
test dl, 0x30
je 0x14000d42c
or esi, 4
test dl, 3
je 0x14000d434
or esi, 2
or dword [rbx + 0x14], esi
and cl, 0x2a
or byte [rbx + 0x18], cl
mov eax, 1
mov rbx, qword [rsp + 0x480]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret