Function at 0x14000dab0
Capabilities:
Get keyboard layout

Disassembly:
mov r11, rsp
mov byte [r11 + 0x18], r8b
mov qword [r11 + 0x10], rdx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x448
xor ebp, ebp
lea r13, [r9 + 0x1c]
xor r15b, r15b
mov rdi, r9
mov byte [r11 + 8], r15b
movzx eax, r8b
mov r14, rcx
movzx r12d, bp
test r9, r9
jne 0x14000daf0
lea r13, [r11 + 0x20]
mov qword [rsp + 0x440], rbx
test al, al
jne 0x14000db75
mov rbx, rcx
test rcx, rcx
je 0x14000db75
movzx edx, word [rcx]
test dx, dx
je 0x14000db75
nop dword [rax]
lea rcx, [0x1400df950]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x14000db41
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x14000db20
movzx edx, word [rbx + 2]
add rbx, 2
test dx, dx
jne 0x14000db10
jmp 0x14000db75
mov rcx, rbx
movzx eax, word [rcx]
cmp ax, 0x20
je 0x14000db53
cmp ax, 9
jne 0x14000db59
add rcx, 2
jmp 0x14000db44
lea rdx, [0x1400ce1f8]
call fcn.1400a7970
test eax, eax
jne 0x14000db75
test rdi, rdi
je 0x14000db72
mov byte [rdi + 0x20], 1
mov word [rbx], bp
xor ecx, ecx
mov qword [rsp + 0x438], rsi
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
movzx ecx, word [r14]
test cx, cx
je 0x14000dc31
cmp word [r14 + 2], bp
jne 0x14000dbba
mov r8, rax
lea rdx, [rsp + 0x480]
call fcn.140014740
movzx r15d, byte [rsp + 0x480]
movzx ebx, al
jmp 0x14000dcad
movzx ebx, cx
test ebx, 0xffffff80
jne 0x14000dbd8
mov edx, 2
mov ecx, ebx
call fcn.1400aa514
test eax, eax
je 0x14000dbd8
and ebx, 0xffffffdf
cmp bx, 0x56
jne 0x14000dc04
movzx ecx, word [r14 + 2]
call fcn.14000aea0
cmp ax, 0x4b
jne 0x14000dc04
xor edx, edx
lea rcx, [r14 + 4]
lea r8d, [rdx + 0x10]
call fcn.1400ab9b0
mov ebx, eax
jmp 0x14000dcad
mov esi, ebp
lea rbx, str.Numpad0
nop dword [rax]
mov rcx, qword [rbx]
mov rdx, r14
call fcn.1400a7970
test eax, eax
je 0x14000dc9b
inc esi
lea rax, [0x1400fd260]
add rbx, 0x10
cmp rbx, rax
jl 0x14000dc10
xor bl, bl
mov rcx, r14
call fcn.140014520
movzx r12d, ax
test ax, ax
jne 0x14000ddfc
mov r8b, 1
lea rdx, [rsp + 0x480]
mov rcx, r14
call fcn.14005c980
mov r12d, eax
test ax, ax
jne 0x14000ddd8
cmp byte [rsp + 0x4a0], bpl
je 0x14000dd75
lea rdx, [0x1400df9b4]
mov rcx, qword [0x140100ee0]
xor r9d, r9d
or r8, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
call fcn.14008ac50
xor eax, eax
jmp 0x14000de61
movsxd rax, esi
lea rcx, str.Numpad0
add rax, rax
movzx ebx, byte [rcx + rax*8 + 8]
test bl, bl
je 0x14000dc33
movzx esi, byte [rsp + 0x490]
test sil, sil
je 0x14000dd17
lea eax, [rbx + 0x64]
cmp al, 3
ja 0x14000dd39
cmp byte [rsp + 0x4a0], bpl
je 0x14000dcd8
lea rdx, [0x1400df958]
jmp 0x14000dc7c
mov r9, r14
lea r8, str.__s__is_not_allowed_as_a_prefix_key.
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.140087720
mov r8, qword [rsp + 0x488]
lea rdx, [rsp + 0x30]
lea rcx, [0x1401053a0]
call fcn.140035c60
test rdi, rdi
jne 0x14000dc94
lea eax, [rdi + 4]
jmp 0x14000de61
test rdi, rdi
je 0x14000dd39
mov r8d, 2
lea rdx, [0x1400df9ac]
mov rcx, r14
call fcn.1400a9f58
test eax, eax
sete al
mov byte [rdi + 0x21], al
lea eax, [rbx - 1]
cmp al, 5
ja 0x14000dd45
cmp bl, 3
jne 0x14000dd4c
lea eax, [rbx + 0x66]
cmp al, 5
ja 0x14000dd50
mov cl, 1
jmp 0x14000dd52
xor cl, cl
test r15b, 0x30
je 0x14000dd63
lea eax, [rbx - 0x41]
cmp al, 0x19
ja 0x14000dd63
and r15b, 0xcf
test cl, cl
je 0x14000de04
mov byte [r13], 2
jmp 0x14000de04
cmp word [r14 + 2], bp
jne 0x14000dd97
cmp byte [0x140105f30], bpl
jne 0x14000dd97
mov eax, 3
test rdi, rdi
cmove ebp, eax
mov eax, ebp
jmp 0x14000de61
test rdi, rdi
je 0x14000dc94
mov r9, r14
lea r8, [0x1400df9b8]
mov edx, 0x200
lea rcx, [rsp + 0x30]
call fcn.140087720
lea r8, [0x1400e8120]
lea rdx, [rsp + 0x30]
lea rcx, [0x1401053a0]
call fcn.140035c60
xor eax, eax
jmp 0x14000de61
movsxd rax, dword [rsp + 0x480]
inc dword [0x140101e48]
mov rcx, rax
movzx ebx, al
mov byte [r13], 4
lea rax, [0x140101e30]
mov byte [rcx + rax], 1
movzx esi, byte [rsp + 0x490]
test sil, sil
je 0x14000de18
test rdi, rdi
je 0x14000de5c
mov byte [rdi + 0x1b], bl
mov word [rdi + 0x12], r12w
jmp 0x14000de5c
test rdi, rdi
je 0x14000de5c
movzx ecx, r15b
mov byte [rdi + 0x1a], bl
and cl, 0xd5
mov word [rdi + 0x10], r12w
movzx eax, cl
mov edx, 8
and al, 0xc0
cmovne ebp, edx
test cl, 0xc
je 0x14000de41
or ebp, 1
test cl, 0x30
je 0x14000de49
or ebp, 4
test cl, 3
je 0x14000de51
or ebp, 2
or dword [rdi + 0x14], ebp
and r15b, 0x2a
or byte [rdi + 0x18], r15b
mov eax, 1
mov rsi, qword [rsp + 0x438]
mov rbx, qword [rsp + 0x440]
add rsp, 0x448
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
ret