Function at 0x1401a1280
Capabilities:
Get keyboard layout

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x180
mov rdi, rcx
movzx esi, word [rcx + 6]
movzx ebx, word [rcx + 8]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x140], xmm0
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
mov dword [rsp + 0x3c], 0x100000
call sub.user32.dll_GetForegroundWindow
mov rcx, rax
xor edx, edx
call sub.user32.dll_GetWindowThreadProcessId
mov ecx, eax
call sub.user32.dll_GetKeyboardLayout
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 2
lea r8, [rsp + 0x80]
lea r9, [rsp + 0x3c]
mov ecx, esi
mov edx, ebx
call sub.user32.dll_ToUnicodeEx
test eax, eax
jle 0x1401a149f
mov esi, dword [rsp + 0x3c]
mov ecx, eax
lea rdx, [rcx - 1]
mov eax, esi
and eax, 0xf800
cmp eax, 0xd800
jne 0x1401a13e4
movzx r8d, si
cmp r8d, 0xdbff
ja 0x1401a149f
test rdx, rdx
je 0x1401a149f
mov edx, esi
shr edx, 0x10
lea r8d, [rdx + 0x2000]
movzx r8d, r8w
cmp r8d, 0xfc00
jb 0x1401a149f
add rcx, 0xfffffffffffffffe
and esi, 0x3ff
and edx, 0x3ff
shl rsi, 0x1a
shl edx, 0x10
or rdx, rsi
movabs rsi, 0x100000000
add rsi, rdx
mov rdx, rcx
jmp 0x1401a13e7
shl esi, 0x10
movzx eax, ax
cmp eax, 0xd800
sete al
shr rsi, 0x10
test rdx, rdx
sete cl
cmp rsi, 0x110000
je 0x1401a149f
or cl, al
je 0x1401a149f
mov eax, dword [rdi]
mov ecx, eax
and ecx, 0x10
shr ecx, 4
test al, al
sets al
xor al, cl
je 0x1401a14b1
lea eax, [rsi - 0x61]
cmp eax, 0x1a
jae 0x1401a152c
lea rcx, [rsp + 0x70]
mov edx, esi
call fcn.1402288e0
mov eax, dword [rsp + 0x78]
cmp dword [rsp + 0x74], 1
mov ecx, 2
sbb rcx, 0
test eax, eax
mov edx, 3
cmove rdx, rcx
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rdx
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], eax
lea rcx, [rsp + 0x40]
call fcn.1402268e0
cmp eax, 0x110000
je 0x1401a156c
mov edi, eax
lea rcx, [rsp + 0x40]
call fcn.1402268e0
jmp 0x1401a151f
mov esi, 0x110000
mov eax, esi
add rsp, 0x180
pop rbx
pop rdi
pop rsi
ret
lea eax, [rsi - 0x41]
cmp eax, 0x1a
jae 0x1401a154c
lea rcx, [rsp + 0x60]
mov edx, esi
call fcn.140228830
mov eax, dword [rsp + 0x68]
cmp dword [rsp + 0x64], 1
mov ecx, 2
sbb rcx, 0
test eax, eax
mov edx, 3
cmove rdx, rcx
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], rdx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], eax
lea rcx, [rsp + 0x40]
call fcn.1402268e0
cmp eax, 0x110000
je 0x1401a1578
mov edi, eax
lea rcx, [rsp + 0x40]
call fcn.1402268e0
cmp eax, 0x110000
cmove esi, edi
jmp 0x1401a14a4
cmp esi, 0x80
jb 0x1401a14a4
mov ecx, esi
call fcn.140228510
test al, al
jne 0x1401a1434
jmp 0x1401a14a4
cmp esi, 0x80
jb 0x1401a14a4
mov ecx, esi
call fcn.140228740
test al, al
je 0x1401a14a4
jmp 0x1401a14bd
lea rcx, str.C:Users_runneradmin_.cargo_registry_srcindex.crates.io_6f17d22bba15001fcrossterm_0.28.1_srcevent_syswindowsparse.rs
call fcn.14023ddb0
lea rcx, str.C:Users_runneradmin_.cargo_registry_srcindex.crates.io_6f17d22bba15001fcrossterm_0.28.1_srcevent_syswindowsparse.rs
call fcn.14023ddb0
int3