Function at 0x1400cfe70
Capabilities:
Get keyboard layout

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov r15d, r9d
mov r12d, r8d
mov edi, edx
mov r14, rcx
xor bl, bl
mov byte [rbp - 0x49], bl
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov r8, rax
mov edx, 2
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov esi, eax
mov dl, 1
lea rcx, [rbp - 0x21]
call fcn.140084670
nop
mov r8, qword [rbp - 0x19]
cmp r8, r14
jne case.0x1400cfefb.14
lea ecx, [rdi - 0xd]
cmp ecx, 0x1b
ja case.0x1400cfefb.14
lea rdx, [0x140000000]
movzx eax, byte [rdx + rcx + 0xd0584]
mov ecx, dword [rdx + rax*4 + 0xd057c]
add rcx, rdx
jmp rcx
mov rcx, qword [r14 + 0x298]
mov edx, edi
mov rcx, qword [rcx + 0x38]
call fcn.1400819b0
mov bl, 1
mov byte [rbp - 0x49], bl
mov r8, qword [rbp - 0x19]
xor r13d, r13d
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400cff57
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp - 0x29], rax
test rax, rax
je 0x1400cff47
mov rcx, rax
call fcn.140036570
mov r9, rax
jmp 0x1400cff4a
mov r9, r13
mov qword [0x140229e08], r9
mov r8, qword [rbp - 0x19]
jmp 0x1400cff5e
mov r9, qword [0x140229e08]
mov eax, 0x100
cmp si, ax
jae 0x1400cff78
movzx eax, si
mov eax, dword [r9 + rax*4 + 0x2bc]
and eax, 0x40
jmp 0x1400cff90
mov edx, 0x357
movzx ecx, si
call fcn.140165874
mov r8, qword [rbp - 0x19]
mov r9, qword [0x140229e08]
test eax, eax
je 0x1400d0504
cmp si, 0x20
je 0x1400d0504
test bl, bl
jne 0x1400d0520
xor r10b, r10b
mov edx, r13d
mov r11, qword [r14 + 0x298]
mov ebx, dword [r11 + 0x10]
test ebx, ebx
jle 0x1400d0005
mov r8, r13
test r10b, r10b
jne 0x1400d0005
mov rax, qword [r11 + 0x20]
mov rcx, qword [r8 + rax]
mov rax, qword [r11 + 0x38]
test dword [rcx + 0xc], 0x490801
jne 0x1400cfffb
mov rax, qword [rax + 0xb0]
test rax, rax
je 0x1400cfffb
cmp rcx, rax
je 0x1400cfff8
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x1400cffe8
jmp 0x1400cfffb
mov r10b, 1
inc edx
add r8, 8
cmp edx, ebx
jl 0x1400cffc2
mov edi, r13d
test r10b, r10b
cmovne edi, edx
mov dword [rbp - 0x39], edi
mov byte [rbp - 0x48], 0
cmp dword [0x14021c658], 0xb23a8c33
je 0x1400d004b
mov ecx, 0x6c0
call fcn.140111d34
mov qword [rbp - 0x29], rax
test rax, rax
je 0x1400d0041
mov rcx, rax
call fcn.140036570
mov r9, rax
jmp 0x1400d0044
mov r9, r13
mov qword [0x140229e08], r9
mov rax, qword [r9]
mov rcx, r9
call qword [rax + 0x30]
mov qword [rbp - 0x41], rax
mov rcx, qword [r14 + 0x298]
mov rdx, qword [rcx + 0x38]
cmp byte [rdx + 0x95c], 0
je 0x1400d0148
movsxd rbx, dword [rax - 0x10]
lea edi, [rbx + 1]
mov r9b, 1
xor r8d, r8d
mov edx, edi
lea rcx, [rbp - 0x41]
call fcn.140037200
mov word [rax + rbx*2], 0x26
mov rax, qword [rbp - 0x41]
cmp edi, 0xffffffff
jne 0x1400d00ba
test rax, rax
jne 0x1400d00a1
mov edx, r13d
jmp 0x1400d00c2
mov rdx, rax
movzx ecx, word [rdx]
add rdx, 2
test cx, cx
jne 0x1400d00a4
sub rdx, rax
sar rdx, 1
dec edx
jmp 0x1400d00c2
mov word [rax + rbx*2 + 2], r13w
mov edx, edi
mov dword [rax - 0x10], edx
mov ecx, dword [rax - 8]
cmp ecx, 0xffffffff
jne 0x1400d00d5
mov ecx, 1
xchg dword [rax - 8], ecx
mov rax, qword [rbp - 0x41]
movsxd rbx, dword [rax - 0x10]
lea edi, [rbx + 1]
mov r9b, 1
xor r8d, r8d
mov edx, edi
lea rcx, [rbp - 0x41]
call fcn.140037200
mov word [rax + rbx*2], si
mov rax, qword [rbp - 0x41]
cmp edi, 0xffffffff
jne 0x1400d0126
test rax, rax
jne 0x1400d0108
mov edx, r13d
jmp 0x1400d012e
mov rdx, rax
nop dword [rax + rax]
movzx ecx, word [rdx]
add rdx, 2
test cx, cx
jne 0x1400d0110
sub rdx, rax
sar rdx, 1
dec edx
jmp 0x1400d012e
mov word [rax + rbx*2 + 2], r13w
mov edx, edi
mov dword [rax - 0x10], edx
mov ecx, dword [rax - 8]
mov edi, dword [rbp - 0x39]
xor bl, bl
cmp ecx, 0xffffffff
jne 0x1400d0198
mov ecx, 1
xchg dword [rax - 8], ecx
jmp 0x1400d0198
call fcn.140052990
sub rax, qword [r14 + 0x2c8]
cmp rax, 0x7d0
jle 0x1400d0168
lea rcx, [r14 + 0x2d0]
call fcn.1400373b0
movzx edx, si
lea rcx, [r14 + 0x2d0]
call fcn.140040330
call fcn.140052990
mov qword [r14 + 0x2c8], rax
lea rdx, [r14 + 0x2d0]
lea rcx, [rbp - 0x41]
call fcn.140037020
mov bl, 1
mov byte [rbp - 0x48], bl
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
movups xmmword [rbp + 7], xmm0
mov esi, r13d
mov dword [rbp - 0x35], r13d
mov dword [rbp - 1], r13d
mov r15d, r13d
mov dword [rbp + 3], r13d
mov r13d, 0xffffffff
mov dword [rbp + 7], r13d
xor r12d, r12d
mov qword [rbp + 0xf], r12
lea rax, vtable.JRNumberArray_unsigned_int_.0
mov qword [rbp - 9], rax
mov rdx, qword [r14 + 0x298]
lea r8d, [r13 + 5]
cmp dword [rdx + 0x10], r12d
jle 0x1400d041b
mov ecx, edi
mov dword [rbp - 0x31], ecx
nop dword [rax + rax]
mov r14d, ecx
mov eax, dword [rdx + 0x10]
cmp ecx, eax
jl 0x1400d0208
nop word [rax + rax]
sub r14d, eax
cmp r14d, eax
jge 0x1400d0200
movsxd rcx, r14d
mov rax, qword [rdx + 0x20]
mov rdx, qword [rax + rcx*8]
add rdx, 0x60
lea rcx, [rbp - 0x29]
call fcn.14000a560
nop
test bl, bl
je 0x1400d028b
lea rdx, [rbp - 0x29]
call fcn.1400cd4c0
mov rax, qword [rbp - 0x41]
lea rdi, [0x1401acff0]
test rax, rax
cmovne rdi, rax
mov rbx, qword [rbp - 0x29]
cmp dword [rbx - 0x10], 0
jle 0x1400d0281
mov rcx, qword [0x14022a428]
test rcx, rcx
je 0x1400d0281
mov rax, qword [rcx]
mov dl, 1
call qword [rax + 0x28]
test rax, rax
je 0x1400d0281
mov r10, qword [rax]
mov r9d, 3
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call qword [r10 + 0xc0]
cmp eax, 0xffffffff
jne 0x1400d0284
mov eax, r13d
test eax, eax
sete al
jmp 0x1400d02e7
mov rax, qword [rbp - 0x41]
lea rdi, [0x1401acff0]
test rax, rax
cmovne rdi, rax
mov rbx, qword [rbp - 0x29]
cmp dword [rbx - 0x10], 0
jle 0x1400d02de
mov rcx, qword [0x14022a428]
test rcx, rcx
je 0x1400d02de
mov rax, qword [rcx]
mov dl, 1
call qword [rax + 0x28]
test rax, rax
je 0x1400d02de
mov r10, qword [rax]
mov r9d, 3
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call qword [r10 + 0xc0]
cmp eax, 0xffffffff
jne 0x1400d02e4
mov eax, r13d
cmp eax, 0xffffffff
setne al
test al, al
je 0x1400d03b4
inc esi
cmp esi, r15d
jle 0x1400d03a9
cmp esi, 4
jg 0x1400d0306
mov edi, 4
jmp 0x1400d035f
cmp esi, 0x40
jg 0x1400d0312
mov edi, 0x40
jmp 0x1400d035f
mov eax, 0x100
cmp esi, eax
jg 0x1400d031f
mov edi, eax
jmp 0x1400d035f
cmp esi, 0x400
jg 0x1400d032e
mov edi, 0x400
jmp 0x1400d035f
cmp esi, 0x1000
jg 0x1400d033d
mov edi, 0x1000
jmp 0x1400d035f
cmp esi, 0x4000
jg 0x1400d034c
mov edi, 0x4000
jmp 0x1400d035f
cmp esi, 0x10000
mov edi, 0x10000
jle 0x1400d035f
lea edi, [rsi + 0x10000]
lea eax, [rdi*4]
movsxd rcx, eax
call fcn.140017d70
mov r15, rax
test r12, r12
je 0x1400d039f
mov eax, dword [rbp - 0x35]
test eax, eax
jle 0x1400d0392
lea edx, [rax*4]
movsxd r8, edx
mov rdx, r12
mov rcx, r15
call fcn.1401535f0
test r12, r12
je 0x1400d039f
mov rcx, r12
call fcn.140017d60
mov r12, r15
mov qword [rbp + 0xf], r15
mov dword [rbp + 3], edi
mov dword [rbp - 1], esi
movsxd rax, dword [rbp - 0x35]
mov dword [r12 + rax*4], r14d
lea rdx, [rbx - 0x18]
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d03e1
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d03d7
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d03e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov ecx, dword [rbp - 0x31]
inc ecx
mov dword [rbp - 0x31], ecx
mov r14, qword [rbp + 0x67]
mov rdx, qword [r14 + 0x298]
mov eax, ecx
sub eax, dword [rbp - 0x39]
mov r12, qword [rbp + 0xf]
mov esi, dword [rbp - 1]
cmp eax, dword [rdx + 0x10]
jge 0x1400d0415
mov r15d, dword [rbp + 3]
mov dword [rbp - 0x35], esi
movzx ebx, byte [rbp - 0x48]
jmp 0x1400d01f0
mov r8d, 4
test esi, esi
jle 0x1400d049d
movsxd rcx, dword [r12]
mov rax, qword [rdx + 0x20]
mov rbx, qword [rax + rcx*8]
mov r10, qword [rdx + 0x38]
cmp qword [rbx + 0x38], 0
je 0x1400d046d
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8d, [r9 + 1]
mov rdx, rbx
mov rcx, r10
call fcn.140080c00
mov rax, qword [r14 + 0x298]
mov r10, qword [rax + 0x38]
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax + 0x20]
mov rbx, qword [rcx]
xor eax, eax
xor r8d, r8d
jmp 0x1400d0483
cmp byte [r10 + 0x95c], 0
je 0x1400d0481
cmp esi, 1
jne 0x1400d0481
lea eax, [rsi + 1]
jmp 0x1400d0483
xor eax, eax
mov dword [rsp + 0x20], r8d
xor r9d, r9d
mov r8d, eax
mov rdx, rbx
mov rcx, r10
call fcn.140080c00
mov bl, 1
jmp 0x1400d04a1
movzx ebx, byte [rbp - 0x49]
test r12, r12
je 0x1400d04b5
mov rcx, r12
call fcn.140017d60
xor r12d, r12d
mov qword [rbp + 0xf], r12
test r12, r12
je 0x1400d04c3
mov rcx, r12
call fcn.140017d60
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x1400d04f3
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x1400d04e9
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x1400d04f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov r8, qword [rbp - 0x19]
mov edi, dword [rbp + 0x6f]
mov r15d, dword [rbp + 0x7f]
mov r12d, dword [rbp + 0x77]
jmp 0x1400d0508
movzx ebx, byte [rbp - 0x49]
test bl, bl
jne 0x1400d0520
mov r9d, r15d
mov r8d, r12d
mov edx, edi
mov rcx, r14
call fcn.140067970
mov r8, qword [rbp - 0x19]
lea rax, vtable.JRWndPtr.0
mov qword [rbp - 0x21], rax
test r8, r8
je 0x1400d054a
cmp dword [rbp - 0x11], 1
jne 0x1400d054a
mov rax, qword [r8]
lea rdx, [rbp - 0x21]
mov rcx, r8
call qword [rax + 0x608]
mov r8, qword [rbp - 0x19]
cmp dword [rbp - 0x11], 2
jne 0x1400d0567
test r8, r8
je 0x1400d0567
mov rax, qword [r8]
mov edx, 1
mov rcx, r8
call qword [rax + 0x2e8]
nop
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret