Function at 0x14019ac10
Capabilities:
Get keyboard layout

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x438
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x3a0], xmm10
movdqa xmmword [rbp + 0x390], xmm9
movaps xmmword [rbp + 0x380], xmm8
movdqa xmmword [rbp + 0x370], xmm7
movdqa xmmword [rbp + 0x360], xmm6
mov qword [rbp + 0x358], 0xfffffffffffffffe
mov r14, rcx
xor ebx, ebx
xor ecx, ecx
call qword [sym.imp.user32.dll_GetKeyboardLayout]
mov rsi, rax
mov qword [rbp + 0x60], rax
lea rdi, [r14 + 0x20]
lea rdx, [rbp + 0x60]
mov rcx, rdi
call fcn.1400ed9e0
mov r8, rax
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
mov rdx, r8
shr rdx, 0x39
mov qword [rbp + 0x228], rdx
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rax - 0xa8]
pcmpeqd xmm1, xmm1
mov qword [rbp + 0x230], r8
and r8, rcx
movdqu xmm2, xmmword [rax + r8]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r9d, xmm3
nop word cs:[rax + rax]
test r9w, r9w
je 0x14019ad10
lea r11d, [r9 - 1]
and r11d, r9d
tzcnt r9d, r9d
add r9, r8
and r9, rcx
neg r9
imul r10, r9, 0xa8
mov r9d, r11d
cmp qword [rdx + r10], rsi
jne 0x14019ace0
jmp 0x14019ad2b
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x14019ad76
add r8, rbx
add r8, 0x10
add rbx, 0x10
jmp 0x14019acbf
lea rdi, [rax + r10]
add rdi, 0xffffffffffffff60
mov rax, rsi
mov rdx, rdi
movaps xmm6, xmmword [rbp + 0x360]
movaps xmm7, xmmword [rbp + 0x370]
movaps xmm8, xmmword [rbp + 0x380]
movaps xmm9, xmmword [rbp + 0x390]
movaps xmm10, xmmword [rbp + 0x3a0]
add rsp, 0x438
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp qword [r14 + 0x10], 0
je 0x14019ad8e
call fcn.1402196c0
cmp qword [rax], 0
je 0x14019ada9
add rax, 8
jmp 0x14019adb3
mov edx, 1
mov rcx, r14
mov r8, rdi
call fcn.140264cc0
call fcn.1402196c0
cmp qword [rax], 0
jne 0x14019ad88
mov rcx, rax
xor edx, edx
call fcn.1400f4460
movdqu xmm6, xmmword [0x14068bb40]
movdqa xmmword [rbp + 0x2f0], xmm6
movdqu xmm7, xmmword [0x14068bb30]
movdqa xmmword [rbp + 0x2e0], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x300], xmm0
call fcn.1402196c0
cmp qword [rax], 0
je 0x14019adf1
add rax, 8
jmp 0x14019adfb
mov rcx, rax
xor edx, edx
call fcn.1400f4460
movdqa xmmword [rbp + 0x70], xmm6
movdqa xmmword [rbp + 0x60], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x80], xmm0
call fcn.1402196c0
cmp qword [rax], 0
mov qword [rbp + 0x2b0], r14
je 0x14019ae2a
add rax, 8
jmp 0x14019ae34
mov rcx, rax
xor edx, edx
call fcn.1400f4460
movdqu xmm0, xmmword [rax]
inc qword [rax]
mov qword [rbp + 0x1f0], rsi
movaps xmm1, xmmword [rbp + 0x2e0]
movaps xmm2, xmmword [rbp + 0x2f0]
movaps xmm3, xmmword [rbp + 0x300]
movaps xmmword [rbp + 0x160], xmm1
movaps xmmword [rbp + 0x170], xmm2
movaps xmmword [rbp + 0x180], xmm3
movdqa xmm1, xmmword [rbp + 0x60]
movdqa xmm2, xmmword [rbp + 0x70]
movdqa xmm3, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x190], xmm1
movdqa xmmword [rbp + 0x1a0], xmm2
movdqa xmmword [rbp + 0x1b0], xmm3
movdqa xmmword [rbp + 0x1c0], xmm7
movdqa xmmword [rbp + 0x1d0], xmm6
movdqa xmmword [rbp + 0x1e0], xmm0
mov byte [rbp + 0x1f8], 0
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x150], xmm0
movdqa xmmword [rbp + 0x140], xmm0
movdqa xmmword [rbp + 0x130], xmm0
movdqa xmmword [rbp + 0x120], xmm0
movdqa xmmword [rbp + 0x110], xmm0
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmmword [rbp + 0xf0], xmm0
movdqa xmmword [rbp + 0xe0], xmm0
movdqa xmmword [rbp + 0xd0], xmm0
movdqa xmmword [rbp + 0xc0], xmm0
movdqa xmmword [rbp + 0xb0], xmm0
movdqa xmmword [rbp + 0xa0], xmm0
movdqa xmmword [rbp + 0x90], xmm0
movdqa xmmword [rbp + 0x80], xmm0
movdqa xmmword [rbp + 0x70], xmm0
movdqa xmmword [rbp + 0x60], xmm0
lea r14, [0x140781820]
mov qword [rbp + 0x280], r14
mov rax, qword [0x140781850]
cmp rax, 3
je 0x14019af92
lea rax, [rbp + 0x280]
mov qword [rbp + 0x250], rax
lea rax, [rbp + 0x250]
mov qword [rbp + 0x2e0], rax
lea rax, str.C:Usersomerf.cargo_registry_srcindex.crates.io_6f17d22bba15001flazy_static_1.4.0_srcinline_lazy.rs_
mov qword [rsp + 0x20], rax
lea rcx, [0x140781850]
lea r9, [0x14068ba60]
lea r8, [rbp + 0x2e0]
xor edx, edx
call fcn.14026b5c0
mov rax, qword [rbp + 0x280]
mov rdx, qword [rax + 0x18]
cmp qword [rbp + 0x1a0], rdx
jae 0x14019afb9
lea r8, [rbp + 0x1b0]
lea rcx, [rbp + 0x190]
call fcn.140265cd0
mov rax, qword [rbp + 0x2b0]
add rax, 0x30
mov qword [rbp + 0x2b8], rax
mov r15d, esi
and r15d, 0x3ff
lea eax, [r15 - 0x11]
mov dword [rbp + 0x33c], eax
xor edi, edi
nop word cs:[rax + rax]
movzx ebx, di
cmp ebx, 0x100
jae 0x14019b471
mov r12d, edi
mov ecx, ebx
mov edx, 4
mov r8, rsi
call qword [sym.imp.user32.dll_MapVirtualKeyExW]
mov r13d, eax
lea edi, [r12 + 1]
test eax, eax
je case.0x14019b0ea.71
mov ecx, r13d
call fcn.14019ea30
mov qword [rbp + 0x208], rax
add ebx, 0xffffffa0
cmp ebx, 0xf
ja 0x14019b03a
cmp ebx, 0xa
jne case.0x14019b0ea.71
mov qword [rbp + 0x280], r14
mov rax, qword [0x140781850]
cmp rax, 3
je 0x14019b092
lea rax, [rbp + 0x280]
mov qword [rbp + 0x250], rax
lea rax, [rbp + 0x250]
mov qword [rbp + 0x2e0], rax
lea rax, str.C:Usersomerf.cargo_registry_srcindex.crates.io_6f17d22bba15001flazy_static_1.4.0_srcinline_lazy.rs_
mov qword [rsp + 0x20], rax
lea rcx, [0x140781850]
xor edx, edx
lea r8, [rbp + 0x2e0]
lea r9, [0x14068ba60]
call fcn.14026b5c0
mov rcx, qword [rbp + 0x280]
lea rdx, [rbp + 0x208]
call fcn.14019f7b0
test al, al
je case.0x14019b0ea.71
mov eax, dword [rbp + 0x208]
add eax, 0xfffffffb
movzx ecx, ax
lea rax, [rcx + 1]
cmp ecx, 0xc2
mov ecx, 0
cmovae rax, rcx
add rax, 0xffffffffffffffcc
cmp rax, 0x83
ja case.0x14019b0ea.71
lea rcx, [0x14068bcd0]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov bx, 8
jmp 0x14019b429
mov bx, 0xd
jmp 0x14019b429
mov bx, 0x7a
jmp 0x14019b429
mov bx, 0x79
jmp 0x14019b429
mov bx, 0x81
jmp 0x14019b429
mov bx, 0x75
jmp 0x14019b429
mov bx, 0x86
jmp 0x14019b429
mov bx, 0xae
jmp 0x14019b429
mov bx, 0x73
jmp 0x14019b429
mov bx, 0x83
jmp 0x14019b429
mov bx, 0x6d
jmp 0x14019b429
mov bx, 0x7e
jmp 0x14019b429
mov bx, 0xb5
jmp 0x14019b429
mov bx, 0x76
jmp 0x14019b429
mov bx, 0xad
jmp 0x14019b429
mov bx, 0x65
jmp 0x14019b429
mov bx, 0x91
jmp 0x14019b429
mov bx, 0x6f
jmp 0x14019b429
mov bx, 0xab
jmp 0x14019b429
mov bx, 0x71
jmp 0x14019b429
mov bx, 0x63
jmp 0x14019b429
mov bx, 0x64
jmp 0x14019b429
mov bx, 0xb1
jmp 0x14019b429
mov bx, 0x28
jmp 0x14019b429
mov bx, 0x62
jmp 0x14019b429
mov bx, 0x15
cmp dword [rbp + 0x33c], 2
jae case.0x14019b0ea.71
jmp 0x14019b429
mov bx, 0xb2
jmp 0x14019b429
mov bx, 0xc
jmp 0x14019b429
mov bx, 0x1c
jmp 0x14019b429
mov bx, 0x61
jmp 0x14019b429
mov bx, 0xac
jmp 0x14019b429
mov bx, 0x78
jmp 0x14019b429
mov bx, 0xa0
jmp 0x14019b429
mov bx, 0x77
jmp 0x14019b429
mov bx, 0x6a
jmp 0x14019b429
mov bx, 0x5d
jmp 0x14019b429
mov bx, 0x68
jmp 0x14019b429
mov bx, 0xaa
jmp 0x14019b429
mov bx, 0xb4
jmp 0x14019b429
mov bx, 0x20
jmp 0x14019b429
mov bx, 0x5c
jmp 0x14019b429
mov bx, 0x22
jmp 0x14019b429
mov bx, 0x2d
jmp 0x14019b429
mov bx, 0x15
jmp 0x14019b429
mov bx, 0xb7
jmp 0x14019b429
mov bx, 0x14
jmp 0x14019b429
mov bx, 0xa4
jmp 0x14019b429
mov bx, 0xa5
jmp 0x14019b429
mov bx, 0x82
jmp 0x14019b429
mov bx, 0x90
jmp 0x14019b429
mov bx, 0x19
cmp r15d, 0x12
jne case.0x14019b0ea.71
jmp 0x14019b429
mov bx, 0x84
jmp 0x14019b429
mov bx, 0x69
jmp 0x14019b429
mov bx, 0x72
jmp 0x14019b429
mov bx, 0x2e
jmp 0x14019b429
mov bx, 0xa2
jmp 0x14019b429
mov bx, 0xa9
jmp 0x14019b429
mov bx, 0xb6
jmp 0x14019b429
mov bx, 0xb3
jmp 0x14019b429
mov bx, 0x23
jmp 0x14019b429
mov bx, 9
jmp 0x14019b429
mov bx, 0xa3
jmp 0x14019b429
mov bx, 0xf1
cmp r15d, 0x11
jne case.0x14019b0ea.71
jmp 0x14019b429
mov bx, 0xa1
jmp 0x14019b429
mov bx, 0x5b
jmp 0x14019b429
mov bx, 0x26
jmp 0x14019b429
mov bx, 0x60
jmp 0x14019b429
mov bx, 0x6c
jmp 0x14019b429
mov bx, 0x7b
jmp 0x14019b429
mov bx, 0x2f
jmp 0x14019b429
mov bx, 0x7c
jmp 0x14019b429
mov bx, 0x67
jmp 0x14019b429
mov bx, 0x1d
jmp 0x14019b429
mov bx, 0xa7
jmp 0x14019b429
mov bx, 0x6b
jmp 0x14019b429
mov bx, 0xa8
jmp 0x14019b429
mov bx, 0x24
jmp 0x14019b429
mov bx, 0x25
jmp 0x14019b429
mov bx, 0x27
jmp 0x14019b429
mov bx, 0x66
jmp 0x14019b429
mov bx, 0x21
jmp 0x14019b429
mov bx, 0x13
jmp 0x14019b429
mov bx, 0xaf
jmp 0x14019b429
mov bx, 0xa6
jmp 0x14019b429
mov bx, 0x2c
jmp 0x14019b429
mov bx, 0x6e
jmp 0x14019b429
mov bx, 0x29
jmp 0x14019b429
mov bx, 0x7d
jmp 0x14019b429
mov bx, 0x70
jmp 0x14019b429
mov bx, 0x1b
jmp 0x14019b429
mov bx, 0x74
jmp 0x14019b429
mov bx, 0xb0
jmp 0x14019b429
mov bx, 0x85
jmp 0x14019b429
mov bx, 0x80
jmp 0x14019b429
mov bx, 0x7f
jmp 0x14019b429
mov bx, 0x87
shl r13d, 0x10
or r13d, 1
mov byte [rsp + 0x20], 0
lea rcx, [rbp + 0x48]
mov edx, r12d
mov r8, r13
mov r9, rsi
call fcn.14019c930
cmp dword [rbp + 0x48], 1
je case.0x14019b0ea.71
lea rcx, [rbp + 0x2e0]
lea r9, [rbp + 0x48]
lea rdx, [rbp + 0x190]
mov r8d, ebx
call fcn.14019fa00
jmp case.0x14019b0ea.71
cmp qword [rbp + 0x170], 0xf
ja 0x14019b493
lea r8, [rbp + 0x180]
lea rcx, [rbp + 0x160]
mov edx, 0x10
call fcn.140265cd0
lea r15, str._abcdefghijklmno9
lea r12, [0x14068bb70]
lea rbx, [rbp + 0x2e0]
lea r14, [rbp + 0x60]
lea r13, [rbp + 0x250]
jmp 0x14019b4c4
add r15, 2
cmp r15, r12
je 0x14019b546
mov di, word [r15]
movzx ecx, di
mov edx, 4
mov r8, rsi
call qword [sym.imp.user32.dll_MapVirtualKeyExW]
mov qword [rsp + 0x20], rsi
mov rcx, rbx
mov rdx, r14
mov r8d, edi
mov r9d, eax
call fcn.14019c580
cmp dword [rbp + 0x2e0], 0
jne 0x14019b4c0
mov rcx, qword [rbp + 0x2b8]
lea rdx, [rbp + 0x2e8]
call fcn.14019c7a0
mov qword [rbp + 0x258], rax
mov qword [rbp + 0x260], rdx
mov dword [rbp + 0x250], 0
lea rcx, [rbp + 0x280]
lea rdx, [rbp + 0x160]
mov r8d, edi
mov r9, r13
call fcn.14019fa00
jmp 0x14019b4c0
xor eax, eax
lea r12, [rbp + 0x238]
movdqa xmm6, xmmword [str.uespemosarenegylmodnarodsetybdettauri:__localhost]
movdqa xmm7, xmmword [0x14066de40]
xorps xmm8, xmm8
pcmpeqd xmm9, xmm9
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
jmp 0x14019b587
mov rax, qword [rbp + 0x220]
mov qword [rbp + 0x340], rax
cmp al, 0x10
jae 0x14019bfac
call fcn.1402196c0
cmp qword [rax], 0
je 0x14019b5b0
add rax, 8
jmp 0x14019b5c1
mov rcx, rax
xor edx, edx
call fcn.1400f4460
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
movups xmm10, xmmword [rax]
inc qword [rax]
movzx eax, byte [0x140781481]
mov ecx, 0x4210
mov edx, 0x10
call fcn.140104c20
test rax, rax
je 0x14019b610
mov rdi, rax
add rdi, 0x4000
mov r8d, 0x210
mov rcx, rdi
mov dl, 0xff
call fcn.140257c90
mov eax, 0x1ff
mov edx, 0x1c0
jmp 0x14019b62b
mov edx, 0x10
mov r8d, 0x4210
mov cl, 1
call fcn.140240050
xor edi, edi
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
mov qword [rbp + 0x280], rdi
mov qword [rbp + 0x288], rax
mov qword [rbp + 0x290], rdx
mov qword [rbp + 0x298], 0
movups xmmword [rbp + 0x2a0], xmm10
movzx eax, byte [rbp + 0x70]
test byte [rbp + 0x340], 1
jne 0x14019b6a0
and byte [rbp + 0x100], 0x7f
and al, 0x7f
and byte [rbp + 0x101], 0x7f
mov byte [rbp + 0x70], al
movzx eax, byte [rbp + 0x71]
test byte [rbp + 0x340], 2
je 0x14019b6b2
or al, 0x80
mov byte [rbp + 0x71], al
movzx eax, byte [rbp + 0x72]
test byte [rbp + 0x340], 4
je 0x14019b6d2
or al, 0x80
jmp 0x14019b6e2
or al, 0x80
mov byte [rbp + 0x70], al
movzx eax, byte [rbp + 0x71]
test byte [rbp + 0x340], 2
jne 0x14019b680
and byte [rbp + 0x102], 0x7f
and al, 0x7f
and byte [rbp + 0x103], 0x7f
mov byte [rbp + 0x71], al
movzx eax, byte [rbp + 0x72]
test byte [rbp + 0x340], 4
jne 0x14019b692
and byte [rbp + 0x104], 0x7f
and al, 0x7f
and byte [rbp + 0x105], 0x7f
mov rcx, qword [rbp + 0x340]
lea edx, [rcx + 1]
mov qword [rbp + 0x220], rdx
mov byte [rbp + 0x72], al
movzx eax, byte [rbp + 0x74]
and al, 0xfe
shr cl, 3
or cl, al
mov byte [rbp + 0x74], cl
xor ebx, ebx
jmp 0x14019b729
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x280]
mov r8, r15
mov r9, r12
call fcn.14019fda0
movzx ecx, bx
cmp ecx, 0x100
mov dword [rbp + 0x33c], ecx
jae 0x14019bf10
mov r13d, ebx
mov edx, 4
mov r8, rsi
call r14
mov edi, eax
lea ebx, [r13 + 1]
test eax, eax
je 0x14019b729
mov ecx, edi
call fcn.14019ea30
mov r15, rax
mov qword [rbp + 0x328], rax
mov r8d, edi
shl r8d, 0x10
or r8d, 1
mov byte [rsp + 0x20], 0
mov rcx, r12
mov edx, r13d
mov r9, rsi
call fcn.14019c930
cmp dword [rbp + 0x238], 1
jne 0x14019b710
mov qword [rsp + 0x20], rsi
lea rcx, [rbp + 0x250]
lea rdx, [rbp + 0x60]
mov r8d, r13d
mov r9d, edi
call fcn.14019c580
mov eax, dword [rbp + 0x250]
cmp rax, 2
je 0x14019b7d5
cmp eax, 1
jne 0x14019b80e
mov eax, dword [rbp + 0x254]
mov dword [rbp + 0x2c4], eax
mov dword [rbp + 0x2c0], 2
jmp 0x14019b904
test byte [rbp + 0x340], 6
jne 0x14019b877
cmp word [rbp + 0x328], 0x6a
jne 0x14019b877
lea rax, str._C:Usersomerf.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tao_0.16.7_srcplatform_implwindowskeyboard_layout.rs
mov qword [rbp + 0x2c8], rax
mov qword [rbp + 0x2d0], 1
jmp 0x14019b8fa
mov rdx, qword [rbp + 0x258]
mov rax, qword [rbp + 0x260]
mov qword [rbp + 0x348], rax
mov rdi, qword [rbp + 0x268]
mov byte [rbp + 0x357], 0
mov rcx, qword [rbp + 0x2b8]
mov qword [rbp + 0x330], rdx
mov r8, rdi
call fcn.1401a0d20
test rax, rax
je 0x14019b897
mov rdi, qword [rax]
mov r13, qword [rax + 8]
mov rdx, qword [rbp + 0x348]
test rdx, rdx
je 0x14019b8ec
mov r8d, 1
mov rcx, qword [rbp + 0x330]
call fcn.140104c30
jmp 0x14019b8ec
mov rax, qword [rbp + 0x248]
mov qword [rbp + 0x2d0], rax
movdqu xmm0, xmmword [rbp + 0x238]
movdqa xmmword [rbp + 0x2c0], xmm0
jmp 0x14019b904
mov rax, qword [rbp + 0x330]
mov qword [rbp + 0x2e0], rax
mov rax, qword [rbp + 0x348]
mov qword [rbp + 0x2e8], rax
mov qword [rbp + 0x2f0], rdi
mov byte [rbp + 0x357], 1
lea rcx, [rbp + 0x2e0]
call fcn.140240790
mov rdi, rax
mov r13, rdx
mov byte [rbp + 0x357], 1
mov rcx, qword [rbp + 0x2b8]
mov rdx, rax
mov r8, r13
call fcn.1401a0140
mov qword [rbp + 0x2c8], rdi
mov qword [rbp + 0x2d0], r13
mov dword [rbp + 0x2c0], 0
cmp byte [rbp + 0x340], 6
jne 0x14019bec0
cmp byte [rbp + 0x1f8], 0
jne 0x14019bec0
cmp qword [rbp + 0x1d8], 0
je 0x14019c1a7
movdqa xmm0, xmmword [rbp + 0x1e0]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmm6
movdqa xmmword [rbp + 0x2e0], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm7
movdqa xmmword [rbp + 0x2f0], xmm1
movdqa xmmword [rbp + 0x300], xmm0
lea rax, [rbp + 0x310]
movaps xmmword [rax], xmm8
mov qword [rax + 0x10], 0
mov byte [rbp + 0x208], 0
mov r8d, 1
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x208]
call fcn.140086ff0
mov rax, qword [rbp + 0x2f0]
mov r9, qword [rbp + 0x310]
shl r9, 0x38
or r9, qword [rbp + 0x318]
mov rcx, qword [rbp + 0x2f8]
mov r8, qword [rbp + 0x2e0]
add r8, rax
rol rax, 0xd
xor rcx, r9
xor rax, r8
rol r8, 0x20
mov rdx, qword [rbp + 0x2e8]
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rcx, r8
xor rax, rdx
rol rdx, 0x20
xor r8, r9
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
xor rdx, 0xff
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
xor rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
add r8, rcx
rol rcx, 0x15
add rdx, rax
rol rax, 0x11
xor rax, rdx
rol rdx, 0x20
xor rcx, r8
add r8, rax
rol rax, 0xd
add rdx, rcx
rol rcx, 0x10
xor rcx, rdx
rol rcx, 0x15
xor rax, r8
add rdx, rax
rol rax, 0x11
mov r8, rdx
rol r8, 0x20
xor r8, rax
xor r8, rcx
xor r8, rdx
mov r15, qword [rbp + 0x1c0]
mov rax, qword [rbp + 0x1c8]
mov rcx, r8
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rcx, [r15 - 0x38]
xor edx, edx
and r8, rax
movdqu xmm1, xmmword [r15 + r8]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
nop
test r9w, r9w
je 0x14019bb00
lea r11d, [r9 - 1]
and r11d, r9d
tzcnt r9d, r9d
add r9, r8
and r9, rax
neg r9
imul r10, r9, 0x38
cmp byte [rcx + r10], 0
mov r9d, r11d
jne 0x14019bad0
jmp 0x14019bb20
pcmpeqb xmm1, xmm9
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x14019c1a7
add r8, rdx
add r8, 0x10
add rdx, 0x10
jmp 0x14019bab8
cmp qword [r15 + r10 - 0x18], 0
je 0x14019bec0
add r15, r10
lea rcx, [r15 - 0x10]
lea rdx, [rbp + 0x328]
call fcn.14019f2e0
mov rdi, qword [r15 - 0x30]
mov rcx, qword [r15 - 0x28]
mov rdx, rax
shr rdx, 0x39
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r14, [rdi - 0x20]
movzx r8d, word [rbp + 0x328]
cmp r8w, 5
jb 0x14019bc5d
xor r9d, r9d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14019bbcd
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
jne 0x14019bec0
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x14019bb7a
lea edx, [r10 - 1]
and dx, r10w
mov r10d, edx
je 0x14019bb94
tzcnt r15d, r10d
add r15, rax
and r15, rcx
mov rdx, r15
shl rdx, 5
mov r11, r14
sub r11, rdx
movzx edx, word [r11]
cmp r8w, dx
jne 0x14019bbc0
cmp dx, 4
jbe 0x14019bbc0
neg r15
shl r15, 5
cmp dword [rdi + r15 - 0x18], 0
lea r12, [rbp + 0x238]
jne 0x14019bec0
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x2c0]
call fcn.14019cca0
cmp dword [rbp + 0x2e0], 0
jne 0x14019bec0
add rdi, r15
mov r8, qword [rbp + 0x2f0]
cmp r8, qword [rdi - 8]
jne 0x14019beaf
mov rdx, qword [rdi - 0x10]
mov rcx, qword [rbp + 0x2e8]
call fcn.1402586d0
test eax, eax
sete al
jmp 0x14019beb1
movzx r9d, word [rbp + 0x32a]
movzx r10d, r8b
cmp r8w, 4
jne 0x14019bdef
mov edx, dword [rbp + 0x32c]
mov dword [rbp + 0x348], edx
xor edx, edx
mov qword [rbp + 0x330], rdx
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r12d, xmm2
test r12d, r12d
je 0x14019bdc0
cmp r8w, 3
jne 0x14019bcdb
jmp 0x14019bd54
cmp r8w, 2
jne case.default.0x14019bd92
cmp r9w, word [rdx + 2]
je case.default.0x14019bd92
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019bdc0
tzcnt r15d, r12d
add r15, rax
and r15, rcx
mov r11, r15
shl r11, 5
mov rdx, r14
sub rdx, r11
cmp word [rdx], 4
jne 0x14019bcc9
neg r15
cmp r8b, 1
je 0x14019bd24
cmp r10d, 2
je 0x14019bcb3
cmp r10d, 4
jne case.default.0x14019bd92
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019bcc9
jmp case.default.0x14019bd92
cmp r8w, 1
je 0x14019bcbe
jmp case.default.0x14019bd92
cmp r8w, 2
jne case.default.0x14019bd92
cmp r9w, word [rdx + 2]
je case.default.0x14019bd92
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019bdc0
tzcnt r15d, r12d
add r15, rax
and r15, rcx
mov r11, r15
shl r11, 5
mov rdx, r14
sub rdx, r11
cmp word [rdx], 4
jne 0x14019bd46
neg r15
lea r11d, [r10 - 1]
cmp r11d, 3
ja case.default.0x14019bd92
lea r13, [0x14068bcc0]
movsxd r11, dword [r13 + r11*4]
add r11, r13
jmp r11
cmp r8w, 1
je case.0x14019bd92.3
jmp case.default.0x14019bd92
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019bd46
jmp case.default.0x14019bd92
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019bec0
mov rdx, qword [rbp + 0x330]
add rax, rdx
add rax, 0x10
add rdx, 0x10
jmp 0x14019bc82
xor r11d, r11d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r12d, xmm2
test r12d, r12d
jne 0x14019be55
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019bec0
add rax, r11
add rax, 0x10
add r11, 0x10
jmp 0x14019bdf2
cmp r8w, 2
jne case.default.0x14019bd92
cmp r9w, word [r13 + 2]
je case.default.0x14019bd92
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019be0c
tzcnt r15d, r12d
add r15, rax
and r15, rcx
mov rdx, r15
shl rdx, 5
mov r13, r14
sub r13, rdx
movzx edx, word [r13]
cmp dx, 4
ja 0x14019be47
cmp r8w, dx
jne 0x14019be47
neg r15
cmp r8b, 1
je 0x14019bea3
cmp r10d, 2
je 0x14019be31
cmp r10d, 3
jne case.default.0x14019bd92
cmp r8w, 3
je 0x14019be3c
jmp case.default.0x14019bd92
cmp r8w, 1
je 0x14019be3c
jmp case.default.0x14019bd92
xor eax, eax
xor al, 1
mov byte [rbp + 0x1f8], al
nop dword [rax]
mov r8, qword [rbp + 0x328]
mov rax, qword [rbp + 0x2d0]
mov qword [rbp + 0x2f0], rax
movdqa xmm0, xmmword [rbp + 0x2c0]
movdqa xmmword [rbp + 0x2e0], xmm0
lea rcx, [rbp + 0x208]
lea rdx, [rbp + 0x280]
lea r9, [rbp + 0x2e0]
call fcn.14019fda0
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
jmp 0x14019b729
movdqu xmm0, xmmword [rbp + 0x280]
movdqu xmm1, xmmword [rbp + 0x290]
movdqu xmm2, xmmword [rbp + 0x2a0]
movdqa xmmword [rbp + 0x300], xmm2
movdqa xmmword [rbp + 0x2f0], xmm1
movdqa xmmword [rbp + 0x2e0], xmm0
lea rcx, [rbp + 0x250]
lea rdx, [rbp + 0x1c0]
mov r8, qword [rbp + 0x340]
lea r9, [rbp + 0x2e0]
call fcn.1401a0310
mov rcx, qword [rbp + 0x250]
test rcx, rcx
je 0x14019b580
mov rdx, qword [rbp + 0x258]
test rdx, rdx
je 0x14019b580
mov rax, rdx
shl rax, 5
add rdx, rax
add rdx, 0x31
je 0x14019b580
sub rcx, rax
add rcx, 0xffffffffffffffe0
mov r8d, 0x10
call fcn.140104c30
jmp 0x14019b580
cmp byte [rbp + 0x1f8], 0
je 0x14019c0c3
xor r14d, r14d
lea rdi, [rbp + 0x2e0]
pcmpeqd xmm6, xmm6
lea rbx, [0x14068bb70]
jmp 0x14019bfd3
inc r14b
cmp r14b, 0xf
ja 0x14019c0c3
mov byte [rbp + 0x2e0], r14b
cmp qword [rbp + 0x1d8], 0
je 0x14019bfd0
lea rcx, [rbp + 0x1e0]
mov rdx, rdi
call fcn.14019f4d0
mov rcx, qword [rbp + 0x1c0]
mov rdx, qword [rbp + 0x1c8]
mov r8, rax
shr r8, 0x39
movd xmm0, r8d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r8, [rcx - 0x38]
xor r9d, r9d
and rax, rdx
movdqu xmm1, xmmword [rcx + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
nop word cs:[rax + rax]
test r10w, r10w
je 0x14019c080
lea r15d, [r10 - 1]
and r15d, r10d
tzcnt r10d, r10d
add r10, rax
and r10, rdx
neg r10
imul r11, r10, 0x38
mov r10d, r15d
cmp r14b, byte [r8 + r11]
jne 0x14019c050
jmp 0x14019c0a0
pcmpeqb xmm1, xmm6
pmovmskb r10d, xmm1
test r10d, r10d
jne 0x14019bfd0
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x14019c02c
add rcx, r11
add rcx, 0xffffffffffffffd0
mov rdx, rbx
call fcn.1401a0a70
test rax, rax
je 0x14019bfd0
mov dword [rax], 4
jmp 0x14019bfd0
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x160]
mov r8d, 0xa0
call fcn.140258050
mov rbx, qword [rbp + 0x2b0]
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
mov r9, qword [rbp + 0x230]
and r9, rcx
movdqu xmm0, xmmword [rax + r9]
pmovmskb edx, xmm0
test edx, edx
jne 0x14019c128
mov r8d, 0x10
nop word cs:[rax + rax]
add r9, r8
and r9, rcx
movdqu xmm0, xmmword [rax + r9]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x14019c110
tzcnt edx, edx
add rdx, r9
and rdx, rcx
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x14019c14d
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx r8d, byte [rax + rdx]
lea r9, [rdx - 0x10]
and r9, rcx
mov rcx, qword [rbp + 0x228]
mov byte [rax + rdx], cl
mov byte [r9 + rax + 0x10], cl
and r8b, 1
movzx ecx, r8b
sub qword [rbx + 0x10], rcx
neg rdx
imul rcx, rdx, 0xa8
mov qword [rax + rcx - 0xa8], rsi
lea rdi, [rax + rcx]
add rdi, 0xffffffffffffff60
lea rdx, [rbp - 0x58]
mov r8d, 0xa0
mov rcx, rdi
call fcn.140258050
inc qword [rbx + 0x18]
jmp 0x14019ad36
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_df871fbf053de3a855398964cd05fadbe91cf4fdlibrary_std_src_synconce.rs
lea r8, [0x14068bbf8]
mov edx, 0x2b
call fcn.14026c1c0
ud2