Function at 0x14000d8f0
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 ebp, ebp
lea r15, [r9 + 0x1c]
mov byte [rax + 0x18], bpl
mov rbx, r9
movzx r12d, r8b
mov r13, rdx
mov rsi, rcx
movzx r14d, bp
test r9, r9
jne 0x14000d92d
lea r15, [rax + 0x20]
test r12b, r12b
jne 0x14000d9b5
mov rdi, rsi
test rsi, rsi
je 0x14000d9b5
movzx edx, word [rcx]
test dx, dx
je 0x14000d9b5
nop word [rax + rax]
lea rcx, [0x1400e0a50]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14000d981
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14000d960
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14000d950
jmp 0x14000d9b5
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14000d993
cmp ax, 9
jne 0x14000d999
add rcx, 2
jmp 0x14000d984
lea rdx, [0x1400cf210]
call fcn.1400a9060
test eax, eax
jne 0x14000d9b5
test rbx, rbx
je 0x14000d9b2
mov byte [rbx + 0x20], 1
mov word [rdi], bp
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov r8b, 1
lea rdx, [rsp + 0x490]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.140015170
movzx edi, al
test al, al
je 0x14000daa8
test r12b, r12b
je 0x14000da41
lea ecx, [rdi + 0x64]
cmp cl, 3
ja 0x14000da63
cmp byte [rsp + 0x4a0], bpl
je 0x14000da03
lea rdx, [0x1400e0a58]
jmp 0x14000daea
mov r9, rsi
lea r8, str.__s__is_not_allowed_as_a_prefix_key.
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140089190
mov r8, r13
lea rdx, [rsp + 0x40]
lea rcx, [0x1401063b0]
call fcn.140036a60
test rbx, rbx
jne 0x14000db02
lea eax, [rbx + 4]
jmp 0x14000dbfa
test rbx, rbx
je 0x14000da63
mov r8d, 2
lea rdx, [0x1400e0aac]
mov rcx, rsi
call fcn.1400ab648
test eax, eax
sete al
mov byte [rbx + 0x21], al
lea eax, [rdi - 1]
cmp al, 5
ja 0x14000da70
cmp dil, 3
jne 0x14000da77
lea eax, [rdi + 0x66]
cmp al, 5
ja 0x14000da7b
mov cl, 1
jmp 0x14000da7d
xor cl, cl
movzx r9d, byte [rsp + 0x490]
test r9b, 0x30
je 0x14000da97
lea eax, [rdi - 0x41]
cmp al, 0x19
ja 0x14000da97
and r9b, 0xcf
test cl, cl
je 0x14000db8a
mov byte [r15], 2
jmp 0x14000db8a
mov rcx, rsi
call fcn.140015070
movzx r14d, ax
test ax, ax
jne 0x14000db81
mov r8b, 1
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.14005d300
mov r14d, eax
test ax, ax
jne 0x14000db67
cmp byte [rsp + 0x4a0], bpl
je 0x14000db09
lea rdx, [0x1400e0ab4]
mov rcx, qword [0x140101ed0]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.14008c660
xor eax, eax
jmp 0x14000dbfa
cmp word [rsi + 2], bp
jne 0x14000db2a
cmp byte [0x140106f40], bpl
jne 0x14000db2a
mov eax, 3
test rbx, rbx
cmove ebp, eax
mov eax, ebp
jmp 0x14000dbfa
test rbx, rbx
je 0x14000db02
mov r9, rsi
lea r8, [0x1400e0ab8]
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140089190
lea r8, [0x1400ccf5c]
lea rdx, [rsp + 0x40]
lea rcx, [0x1401063b0]
call fcn.140036a60
xor eax, eax
jmp 0x14000dbfa
movsxd rdi, dword [rsp + 0x30]
lea rcx, [0x140102e30]
inc dword [0x140102e4c]
mov byte [r15], 4
mov byte [rdi + rcx], 1
movzx r9d, byte [rsp + 0x490]
test r12b, r12b
je 0x14000db9f
test rbx, rbx
je 0x14000dbf5
mov byte [rbx + 0x1b], dil
mov word [rbx + 0x12], r14w
jmp 0x14000dbf5
test rbx, rbx
je 0x14000dbf5
movzx r8d, r9b
mov byte [rbx + 0x1a], dil
and r8b, 0xd5
mov word [rbx + 0x10], r14w
movzx eax, r8b
and al, 0xc0
neg al
movzx eax, r8b
sbb ecx, ecx
and ecx, 8
mov edx, ecx
or edx, 1
and al, 0xc
movzx eax, r8b
cmove edx, ecx
mov ecx, edx
or ecx, 4
and al, 0x30
cmove ecx, edx
mov eax, ecx
or eax, 2
and r8b, 3
cmove eax, ecx
and r9b, 0x2a
or dword [rbx + 0x14], eax
or byte [rbx + 0x18], r9b
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