Function at 0x140007d60
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 0x140007f7f
mov esi, dword [rsp + 0x3c]
mov ecx, eax
lea rdx, [rcx - 1]
mov eax, esi
and eax, 0xf800
cmp eax, 0xd800
jne 0x140007ec4
movzx r8d, si
cmp r8d, 0xdbff
ja 0x140007f7f
test rdx, rdx
je 0x140007f7f
mov edx, esi
shr edx, 0x10
lea r8d, [rdx + 0x2000]
movzx r8d, r8w
cmp r8d, 0xfc00
jb 0x140007f7f
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 0x140007ec7
shl esi, 0x10
movzx eax, ax
cmp eax, 0xd800
sete al
shr rsi, 0x10
test rdx, rdx
sete cl
cmp rsi, 0x110000
je 0x140007f7f
or cl, al
je 0x140007f7f
mov eax, dword [rdi]
mov ecx, eax
and ecx, 0x10
shr ecx, 4
test al, al
sets al
xor al, cl
je 0x140007f91
lea eax, [rsi - 0x61]
cmp eax, 0x1a
jae 0x14000800c
lea rcx, [rsp + 0x70]
mov edx, esi
call fcn.140035f00
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.140034b20
cmp eax, 0x110000
je 0x14000804c
mov edi, eax
lea rcx, [rsp + 0x40]
call fcn.140034b20
jmp 0x140007fff
mov esi, 0x110000
mov eax, esi
add rsp, 0x180
pop rbx
pop rdi
pop rsi
ret
lea eax, [rsi - 0x41]
cmp eax, 0x1a
jae 0x14000802c
lea rcx, [rsp + 0x60]
mov edx, esi
call fcn.140035e50
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.140034b20
cmp eax, 0x110000
je 0x140008058
mov edi, eax
lea rcx, [rsp + 0x40]
call fcn.140034b20
cmp eax, 0x110000
cmove esi, edi
jmp 0x140007f84
cmp esi, 0x80
jb 0x140007f84
mov ecx, esi
call fcn.140035c70
test al, al
jne 0x140007f14
jmp 0x140007f84
cmp esi, 0x80
jb 0x140007f84
mov ecx, esi
call fcn.140035d60
test al, al
je 0x140007f84
jmp 0x140007f9d
lea rcx, str.C:UsersAbraham.cargo_registry_srcindex.crates.io_6f17d22bba15001fcrossterm_0.26.1_srcevent_syswindowsparse.rs
call fcn.140039c70
lea rcx, str.C:UsersAbraham.cargo_registry_srcindex.crates.io_6f17d22bba15001fcrossterm_0.26.1_srcevent_syswindowsparse.rs
call fcn.140039c70
int3