Function at 0x14000d0d0
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 0x14000d10c
lea r15, [rax + 0x20]
test r12b, r12b
jne 0x14000d185
mov rdi, rcx
test rcx, rcx
je 0x14000d185
movzx edx, word [rcx]
test dx, dx
je 0x14000d185
lea rcx, [0x1400d18a0]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14000d151
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14000d130
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x14000d121
jmp 0x14000d185
mov rcx, rdi
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14000d163
cmp ax, 9
jne 0x14000d169
add rcx, 2
jmp 0x14000d154
lea rdx, [0x1400c01b8]
call fcn.140099630
test eax, eax
jne 0x14000d185
test rbx, rbx
je 0x14000d182
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.140013280
movzx edi, al
test al, al
je 0x14000d279
test r12b, r12b
je 0x14000d215
lea ecx, [rdi + 0x64]
cmp cl, 3
ja 0x14000d237
cmp byte [rsp + 0x4a0], sil
je 0x14000d1d7
lea rdx, [0x1400d18a8]
jmp 0x14000d2b9
mov r9, r14
lea r8, [0x1400d18b0]
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140079fa0
mov r8, r13
lea rdx, [rsp + 0x40]
lea rcx, [0x1400f59d0]
call fcn.140031460
test rbx, rbx
jne 0x14000d2d1
lea eax, [rbx + 4]
jmp 0x14000d3b2
test rbx, rbx
je 0x14000d237
mov r8d, 2
lea rdx, [0x1400d18fc]
mov rcx, r14
call fcn.14009bc18
test eax, eax
sete al
mov byte [rbx + 0x21], al
lea eax, [rdi - 1]
cmp al, 5
ja 0x14000d244
cmp dil, 3
jne 0x14000d24b
lea eax, [rdi + 0x66]
cmp al, 5
ja 0x14000d24f
mov dl, 1
jmp 0x14000d251
xor dl, dl
movzx ecx, byte [rsp + 0x490]
test cl, 0x30
je 0x14000d268
lea eax, [rdi - 0x41]
cmp al, 0x19
ja 0x14000d268
and cl, 0xcf
test dl, dl
je 0x14000d356
mov byte [r15], 2
jmp 0x14000d356
mov rcx, r14
call fcn.140013190
movzx ebp, ax
test ax, ax
jne 0x14000d34e
mov r8b, 1
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.140053950
mov ebp, eax
test ax, ax
jne 0x14000d334
cmp byte [rsp + 0x4a0], sil
je 0x14000d2d8
lea rdx, [0x1400d1904]
mov rcx, qword [0x1400f1518]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.14007d4e0
xor eax, eax
jmp 0x14000d3b2
cmp word [r14 + 2], si
jne 0x14000d2fa
cmp byte [0x1400f6558], sil
jne 0x14000d2fa
mov eax, 3
test rbx, rbx
cmove esi, eax
mov eax, esi
jmp 0x14000d3b2
test rbx, rbx
je 0x14000d2d1
mov r9, r14
lea r8, [0x1400d1908]
mov edx, 0x200
lea rcx, [rsp + 0x40]
call fcn.140079fa0
lea r8, [0x1400bdf7c]
lea rdx, [rsp + 0x40]
lea rcx, [0x1400f59d0]
call fcn.140031460
xor eax, eax
jmp 0x14000d3b2
movsxd rdi, dword [rsp + 0x30]
lea rcx, [0x1400f2460]
inc dword [0x1400f2478]
mov byte [r15], 4
mov byte [rdi + rcx], 1
movzx ecx, byte [rsp + 0x490]
test r12b, r12b
je 0x14000d36a
test rbx, rbx
je 0x14000d3ad
mov byte [rbx + 0x1b], dil
mov word [rbx + 0x12], bp
jmp 0x14000d3ad
test rbx, rbx
je 0x14000d3ad
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 0x14000d394
or esi, 1
test dl, 0x30
je 0x14000d39c
or esi, 4
test dl, 3
je 0x14000d3a4
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