Function at 0x100085d4c
Capabilities:
Get keyboard layout

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x160
mov rax, qword [0x1000cc510]
xor rax, rsp
mov qword [rsp + 0x150], rax
xor r14d, r14d
mov r12, r8
mov rbx, rcx
mov r13d, r14d
mov edx, dword [rbx + 0x18]
mov edi, 1
cmp edx, dword [rbx + 0x1c]
jge 0x10008608c
mov rcx, qword [rbx + 0x10]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r14
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
call qword [rax + 0x38]
cmp eax, r14d
jne 0x100085e41
mov rdx, qword [rsp + 0x70]
lea r8, [rsp + 0x80]
xor r9d, r9d
mov rcx, rbx
call fcn.100085b3c
cmp eax, r14d
jne 0x100085e41
mov rdx, qword [rsp + 0x70]
lea r8, [rsp + 0x80]
mov r9d, edi
mov rcx, rbx
call fcn.100085b3c
cmp eax, r14d
jne 0x100085e41
mov rcx, qword [rsp + 0x70]
lea rdx, [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + 0x68]
cmp eax, r14d
jne 0x100085e41
mov rdx, qword [rsp + 0x78]
lea r9d, [rdi + 1]
lea r8, [rsp + 0x80]
mov rcx, rbx
call fcn.100085b3c
cmp eax, r14d
jne 0x100085e41
mov rdx, qword [rsp + 0x78]
lea r9d, [rdi + 2]
lea r8, [rsp + 0x80]
mov rcx, rbx
call fcn.100085b3c
cmp eax, r14d
je 0x100085e4c
mov rcx, rbx
mov edi, r14d
call fcn.100085890
mov rcx, qword [rsp + 0x78]
cmp rcx, r14
je 0x100085e61
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x78], r14
mov rcx, qword [rsp + 0x70]
cmp rcx, r14
je 0x100085e71
mov rax, qword [rcx]
call qword [rax + 0x10]
inc dword [rbx + 0x18]
cmp edi, r14d
je 0x100086090
xor edx, edx
lea rcx, [rsp + 0xd0]
lea r8d, [rdx + 0x74]
call sub.msvcrt.dll_memset
lea r9, [rsp + 0xd0]
xor r8d, r8d
mov edx, 0x43a
mov rcx, r12
mov dword [rsp + 0xd0], 0x74
mov qword [rsp + 0x70], r14
call qword [sym.imp.USER32.dll_SendMessageW]
mov r11d, dword [rsp + 0xd4]
movzx edi, word [rsp + 0x82]
bts r11d, 0x19
lea r8, [rsp + 0x88]
shl di, 0xa
bts r11d, 0x1f
mov edx, 0x20
or di, word [rsp + 0x80]
bts r11d, 0x1d
lea rcx, [rsp + 0xea]
movzx eax, di
mov dword [rsp + 0xd4], r11d
mov dword [rsp + 0x134], eax
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0xdc], eax
lea rax, [rsp + 0xea]
sub r8, rax
lea rax, [rdx + 0x7fffffde]
cmp rax, r14
je 0x100085f48
movzx eax, word [rcx + r8]
cmp ax, r14w
je 0x100085f48
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x100085f24
cmp rdx, r14
jne 0x100085f51
sub rcx, 2
mov word [rcx], r14w
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
cmp r13d, r14d
jne 0x100086066
cmp ax, di
je 0x100085f8d
cmp r14w, word [rsp + 0x82]
jne 0x100086066
xor ax, di
mov ecx, 0x3ff
test cx, ax
jne 0x100086066
jmp 0x100085f93
mov r13d, 1
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rdi, rax
cmp rax, r14
je 0x100086048
movzx ecx, byte [rsp + 0xe8]
lea rax, [rsp + 0xea]
xor r9d, r9d
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x58], r14d
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x30], r14d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call qword [sym.imp.GDI32.dll_CreateFontW]
mov rsi, rax
cmp rax, r14
je 0x10008603f
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rbp, rax
cmp rax, r14
je 0x100086036
lea r8, [rsp + 0xea]
mov edx, 0x20
mov rcx, rdi
call qword [sym.imp.GDI32.dll_GetTextFaceW]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
lea r9, [rsp + 0xd0]
xor r8d, r8d
mov edx, 0x444
mov rcx, r12
mov qword [rsp + 0x70], r14
call qword [sym.imp.USER32.dll_SendMessageW]
lea r9, [rsp + 0xd0]
mov edx, 0x444
mov r8d, 0x10
mov rcx, r12
mov qword [rsp + 0x70], r14
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x100085d83
mov dword [rbx + 0x18], r14d
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.1000010a0
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret