Function at 0x140199080
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.140098570
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 0x140199180
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 0x140199150
jmp 0x14019919b
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x1401991e6
add r8, rbx
add r8, 0x10
add rbx, 0x10
jmp 0x14019912f
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 0x1401991fe
call fcn.140219ea0
cmp qword [rax], 0
je 0x140199219
add rax, 8
jmp 0x140199223
mov edx, 1
mov rcx, r14
mov r8, rdi
call fcn.1402654a0
call fcn.140219ea0
cmp qword [rax], 0
jne 0x1401991f8
mov rcx, rax
xor edx, edx
call fcn.1400c1180
movdqu xmm6, xmmword [0x140628bd0]
movdqa xmmword [rbp + 0x2f0], xmm6
movdqu xmm7, xmmword [0x140628bc0]
movdqa xmmword [rbp + 0x2e0], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x300], xmm0
call fcn.140219ea0
cmp qword [rax], 0
je 0x140199261
add rax, 8
jmp 0x14019926b
mov rcx, rax
xor edx, edx
call fcn.1400c1180
movdqa xmmword [rbp + 0x70], xmm6
movdqa xmmword [rbp + 0x60], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x80], xmm0
call fcn.140219ea0
cmp qword [rax], 0
mov qword [rbp + 0x2b0], r14
je 0x14019929a
add rax, 8
jmp 0x1401992a4
mov rcx, rax
xor edx, edx
call fcn.1400c1180
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, [0x14071e7e8]
mov qword [rbp + 0x280], r14
mov rax, qword [0x14071e818]
cmp rax, 3
je 0x140199402
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.rsb_
mov qword [rsp + 0x20], rax
lea rcx, [0x14071e818]
lea r9, [0x140628af0]
lea r8, [rbp + 0x2e0]
xor edx, edx
call fcn.14026bda0
mov rax, qword [rbp + 0x280]
mov rdx, qword [rax + 0x18]
cmp qword [rbp + 0x1a0], rdx
jae 0x140199429
lea r8, [rbp + 0x1b0]
lea rcx, [rbp + 0x190]
call fcn.1402664b0
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 0x1401998e1
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.0x14019955a.71
mov ecx, r13d
call fcn.14019f2b0
mov qword [rbp + 0x208], rax
add ebx, 0xffffffa0
cmp ebx, 0xf
ja 0x1401994aa
cmp ebx, 0xa
jne case.0x14019955a.71
mov qword [rbp + 0x280], r14
mov rax, qword [0x14071e818]
cmp rax, 3
je 0x140199502
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.rsb_
mov qword [rsp + 0x20], rax
lea rcx, [0x14071e818]
xor edx, edx
lea r8, [rbp + 0x2e0]
lea r9, [0x140628af0]
call fcn.14026bda0
mov rcx, qword [rbp + 0x280]
lea rdx, [rbp + 0x208]
call fcn.1401a0030
test al, al
je case.0x14019955a.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.0x14019955a.71
lea rcx, [0x140628d60]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov bx, 8
jmp 0x140199899
mov bx, 0xd
jmp 0x140199899
mov bx, 0x7a
jmp 0x140199899
mov bx, 0x79
jmp 0x140199899
mov bx, 0x81
jmp 0x140199899
mov bx, 0x75
jmp 0x140199899
mov bx, 0x86
jmp 0x140199899
mov bx, 0xae
jmp 0x140199899
mov bx, 0x73
jmp 0x140199899
mov bx, 0x83
jmp 0x140199899
mov bx, 0x6d
jmp 0x140199899
mov bx, 0x7e
jmp 0x140199899
mov bx, 0xb5
jmp 0x140199899
mov bx, 0x76
jmp 0x140199899
mov bx, 0xad
jmp 0x140199899
mov bx, 0x65
jmp 0x140199899
mov bx, 0x91
jmp 0x140199899
mov bx, 0x6f
jmp 0x140199899
mov bx, 0xab
jmp 0x140199899
mov bx, 0x71
jmp 0x140199899
mov bx, 0x63
jmp 0x140199899
mov bx, 0x64
jmp 0x140199899
mov bx, 0xb1
jmp 0x140199899
mov bx, 0x28
jmp 0x140199899
mov bx, 0x62
jmp 0x140199899
mov bx, 0x15
cmp dword [rbp + 0x33c], 2
jae case.0x14019955a.71
jmp 0x140199899
mov bx, 0xb2
jmp 0x140199899
mov bx, 0xc
jmp 0x140199899
mov bx, 0x1c
jmp 0x140199899
mov bx, 0x61
jmp 0x140199899
mov bx, 0xac
jmp 0x140199899
mov bx, 0x78
jmp 0x140199899
mov bx, 0xa0
jmp 0x140199899
mov bx, 0x77
jmp 0x140199899
mov bx, 0x6a
jmp 0x140199899
mov bx, 0x5d
jmp 0x140199899
mov bx, 0x68
jmp 0x140199899
mov bx, 0xaa
jmp 0x140199899
mov bx, 0xb4
jmp 0x140199899
mov bx, 0x20
jmp 0x140199899
mov bx, 0x5c
jmp 0x140199899
mov bx, 0x22
jmp 0x140199899
mov bx, 0x2d
jmp 0x140199899
mov bx, 0x15
jmp 0x140199899
mov bx, 0xb7
jmp 0x140199899
mov bx, 0x14
jmp 0x140199899
mov bx, 0xa4
jmp 0x140199899
mov bx, 0xa5
jmp 0x140199899
mov bx, 0x82
jmp 0x140199899
mov bx, 0x90
jmp 0x140199899
mov bx, 0x19
cmp r15d, 0x12
jne case.0x14019955a.71
jmp 0x140199899
mov bx, 0x84
jmp 0x140199899
mov bx, 0x69
jmp 0x140199899
mov bx, 0x72
jmp 0x140199899
mov bx, 0x2e
jmp 0x140199899
mov bx, 0xa2
jmp 0x140199899
mov bx, 0xa9
jmp 0x140199899
mov bx, 0xb6
jmp 0x140199899
mov bx, 0xb3
jmp 0x140199899
mov bx, 0x23
jmp 0x140199899
mov bx, 9
jmp 0x140199899
mov bx, 0xa3
jmp 0x140199899
mov bx, 0xf1
cmp r15d, 0x11
jne case.0x14019955a.71
jmp 0x140199899
mov bx, 0xa1
jmp 0x140199899
mov bx, 0x5b
jmp 0x140199899
mov bx, 0x26
jmp 0x140199899
mov bx, 0x60
jmp 0x140199899
mov bx, 0x6c
jmp 0x140199899
mov bx, 0x7b
jmp 0x140199899
mov bx, 0x2f
jmp 0x140199899
mov bx, 0x7c
jmp 0x140199899
mov bx, 0x67
jmp 0x140199899
mov bx, 0x1d
jmp 0x140199899
mov bx, 0xa7
jmp 0x140199899
mov bx, 0x6b
jmp 0x140199899
mov bx, 0xa8
jmp 0x140199899
mov bx, 0x24
jmp 0x140199899
mov bx, 0x25
jmp 0x140199899
mov bx, 0x27
jmp 0x140199899
mov bx, 0x66
jmp 0x140199899
mov bx, 0x21
jmp 0x140199899
mov bx, 0x13
jmp 0x140199899
mov bx, 0xaf
jmp 0x140199899
mov bx, 0xa6
jmp 0x140199899
mov bx, 0x2c
jmp 0x140199899
mov bx, 0x6e
jmp 0x140199899
mov bx, 0x29
jmp 0x140199899
mov bx, 0x7d
jmp 0x140199899
mov bx, 0x70
jmp 0x140199899
mov bx, 0x1b
jmp 0x140199899
mov bx, 0x74
jmp 0x140199899
mov bx, 0xb0
jmp 0x140199899
mov bx, 0x85
jmp 0x140199899
mov bx, 0x80
jmp 0x140199899
mov bx, 0x7f
jmp 0x140199899
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.14019ada0
cmp dword [rbp + 0x48], 1
je case.0x14019955a.71
lea rcx, [rbp + 0x2e0]
lea r9, [rbp + 0x48]
lea rdx, [rbp + 0x190]
mov r8d, ebx
call fcn.1401a0280
jmp case.0x14019955a.71
cmp qword [rbp + 0x170], 0xf
ja 0x140199903
lea r8, [rbp + 0x180]
lea rcx, [rbp + 0x160]
mov edx, 0x10
call fcn.1402664b0
lea r15, str._abcdefghijklmno9
lea r12, [0x140628c00]
lea rbx, [rbp + 0x2e0]
lea r14, [rbp + 0x60]
lea r13, [rbp + 0x250]
jmp 0x140199934
add r15, 2
cmp r15, r12
je 0x1401999b6
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.14019a9f0
cmp dword [rbp + 0x2e0], 0
jne 0x140199930
mov rcx, qword [rbp + 0x2b8]
lea rdx, [rbp + 0x2e8]
call fcn.14019ac10
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.1401a0280
jmp 0x140199930
xor eax, eax
lea r12, [rbp + 0x238]
movdqa xmm6, xmmword [str.uespemosarenegylmodnarodsetybdet]
movdqa xmm7, xmmword [0x140275090]
xorps xmm8, xmm8
pcmpeqd xmm9, xmm9
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
jmp 0x1401999f7
mov rax, qword [rbp + 0x220]
mov qword [rbp + 0x340], rax
cmp al, 0x10
jae 0x14019a41c
call fcn.140219ea0
cmp qword [rax], 0
je 0x140199a20
add rax, 8
jmp 0x140199a31
mov rcx, rax
xor edx, edx
call fcn.1400c1180
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
movups xmm10, xmmword [rax]
inc qword [rax]
movzx eax, byte [0x14071e481]
mov ecx, 0x4210
mov edx, 0x10
call fcn.1401047c0
test rax, rax
je 0x140199a80
mov rdi, rax
add rdi, 0x4000
mov r8d, 0x210
mov rcx, rdi
mov dl, 0xff
call fcn.140258470
mov eax, 0x1ff
mov edx, 0x1c0
jmp 0x140199a9b
mov edx, 0x10
mov r8d, 0x4210
mov cl, 1
call fcn.140240830
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 0x140199b10
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 0x140199b22
or al, 0x80
mov byte [rbp + 0x71], al
movzx eax, byte [rbp + 0x72]
test byte [rbp + 0x340], 4
je 0x140199b42
or al, 0x80
jmp 0x140199b52
or al, 0x80
mov byte [rbp + 0x70], al
movzx eax, byte [rbp + 0x71]
test byte [rbp + 0x340], 2
jne 0x140199af0
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 0x140199b02
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 0x140199b99
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x280]
mov r8, r15
mov r9, r12
call fcn.1401a0620
movzx ecx, bx
cmp ecx, 0x100
mov dword [rbp + 0x33c], ecx
jae 0x14019a380
mov r13d, ebx
mov edx, 4
mov r8, rsi
call r14
mov edi, eax
lea ebx, [r13 + 1]
test eax, eax
je 0x140199b99
mov ecx, edi
call fcn.14019f2b0
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.14019ada0
cmp dword [rbp + 0x238], 1
jne 0x140199b80
mov qword [rsp + 0x20], rsi
lea rcx, [rbp + 0x250]
lea rdx, [rbp + 0x60]
mov r8d, r13d
mov r9d, edi
call fcn.14019a9f0
mov eax, dword [rbp + 0x250]
cmp rax, 2
je 0x140199c45
cmp eax, 1
jne 0x140199c7e
mov eax, dword [rbp + 0x254]
mov dword [rbp + 0x2c4], eax
mov dword [rbp + 0x2c0], 2
jmp 0x140199d74
test byte [rbp + 0x340], 6
jne 0x140199ce7
cmp word [rbp + 0x328], 0x6a
jne 0x140199ce7
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 0x140199d6a
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.1401a15a0
test rax, rax
je 0x140199d07
mov rdi, qword [rax]
mov r13, qword [rax + 8]
mov rdx, qword [rbp + 0x348]
test rdx, rdx
je 0x140199d5c
mov r8d, 1
mov rcx, qword [rbp + 0x330]
call fcn.1401047d0
jmp 0x140199d5c
mov rax, qword [rbp + 0x248]
mov qword [rbp + 0x2d0], rax
movdqu xmm0, xmmword [rbp + 0x238]
movdqa xmmword [rbp + 0x2c0], xmm0
jmp 0x140199d74
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.140240f70
mov rdi, rax
mov r13, rdx
mov byte [rbp + 0x357], 1
mov rcx, qword [rbp + 0x2b8]
mov rdx, rax
mov r8, r13
call fcn.1401a09c0
mov qword [rbp + 0x2c8], rdi
mov qword [rbp + 0x2d0], r13
mov dword [rbp + 0x2c0], 0
cmp byte [rbp + 0x340], 6
jne 0x14019a330
cmp byte [rbp + 0x1f8], 0
jne 0x14019a330
cmp qword [rbp + 0x1d8], 0
je 0x14019a617
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.1400955e0
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 0x140199f70
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 0x140199f40
jmp 0x140199f90
pcmpeqb xmm1, xmm9
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x14019a617
add r8, rdx
add r8, 0x10
add rdx, 0x10
jmp 0x140199f28
cmp qword [r15 + r10 - 0x18], 0
je 0x14019a330
add r15, r10
lea rcx, [r15 - 0x10]
lea rdx, [rbp + 0x328]
call fcn.14019fb60
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 0x14019a0cd
xor r9d, r9d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14019a03d
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
jne 0x14019a330
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x140199fea
lea edx, [r10 - 1]
and dx, r10w
mov r10d, edx
je 0x14019a004
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 0x14019a030
cmp dx, 4
jbe 0x14019a030
neg r15
shl r15, 5
cmp dword [rdi + r15 - 0x18], 0
lea r12, [rbp + 0x238]
jne 0x14019a330
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x2c0]
call fcn.14019b110
cmp dword [rbp + 0x2e0], 0
jne 0x14019a330
add rdi, r15
mov r8, qword [rbp + 0x2f0]
cmp r8, qword [rdi - 8]
jne 0x14019a31f
mov rdx, qword [rdi - 0x10]
mov rcx, qword [rbp + 0x2e8]
call fcn.140258eb0
test eax, eax
sete al
jmp 0x14019a321
movzx r9d, word [rbp + 0x32a]
movzx r10d, r8b
cmp r8w, 4
jne 0x14019a25f
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 0x14019a230
cmp r8w, 3
jne 0x14019a14b
jmp 0x14019a1c4
cmp r8w, 2
jne case.default.0x14019a202
cmp r9w, word [rdx + 2]
je case.default.0x14019a202
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a230
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 0x14019a139
neg r15
cmp r8b, 1
je 0x14019a194
cmp r10d, 2
je 0x14019a123
cmp r10d, 4
jne case.default.0x14019a202
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019a139
jmp case.default.0x14019a202
cmp r8w, 1
je 0x14019a12e
jmp case.default.0x14019a202
cmp r8w, 2
jne case.default.0x14019a202
cmp r9w, word [rdx + 2]
je case.default.0x14019a202
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a230
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 0x14019a1b6
neg r15
lea r11d, [r10 - 1]
cmp r11d, 3
ja case.default.0x14019a202
lea r13, [0x140628d50]
movsxd r11, dword [r13 + r11*4]
add r11, r13
jmp r11
cmp r8w, 1
je case.0x14019a202.3
jmp case.default.0x14019a202
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019a1b6
jmp case.default.0x14019a202
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019a330
mov rdx, qword [rbp + 0x330]
add rax, rdx
add rax, 0x10
add rdx, 0x10
jmp 0x14019a0f2
xor r11d, r11d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r12d, xmm2
test r12d, r12d
jne 0x14019a2c5
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019a330
add rax, r11
add rax, 0x10
add r11, 0x10
jmp 0x14019a262
cmp r8w, 2
jne case.default.0x14019a202
cmp r9w, word [r13 + 2]
je case.default.0x14019a202
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a27c
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 0x14019a2b7
cmp r8w, dx
jne 0x14019a2b7
neg r15
cmp r8b, 1
je 0x14019a313
cmp r10d, 2
je 0x14019a2a1
cmp r10d, 3
jne case.default.0x14019a202
cmp r8w, 3
je 0x14019a2ac
jmp case.default.0x14019a202
cmp r8w, 1
je 0x14019a2ac
jmp case.default.0x14019a202
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.1401a0620
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
jmp 0x140199b99
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.1401a0b90
mov rcx, qword [rbp + 0x250]
test rcx, rcx
je 0x1401999f0
mov rdx, qword [rbp + 0x258]
test rdx, rdx
je 0x1401999f0
mov rax, rdx
shl rax, 5
add rdx, rax
add rdx, 0x31
je 0x1401999f0
sub rcx, rax
add rcx, 0xffffffffffffffe0
mov r8d, 0x10
call fcn.1401047d0
jmp 0x1401999f0
cmp byte [rbp + 0x1f8], 0
je 0x14019a533
xor r14d, r14d
lea rdi, [rbp + 0x2e0]
pcmpeqd xmm6, xmm6
lea rbx, [0x140628c00]
jmp 0x14019a443
inc r14b
cmp r14b, 0xf
ja 0x14019a533
mov byte [rbp + 0x2e0], r14b
cmp qword [rbp + 0x1d8], 0
je 0x14019a440
lea rcx, [rbp + 0x1e0]
mov rdx, rdi
call fcn.14019fd50
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 0x14019a4f0
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 0x14019a4c0
jmp 0x14019a510
pcmpeqb xmm1, xmm6
pmovmskb r10d, xmm1
test r10d, r10d
jne 0x14019a440
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x14019a49c
add rcx, r11
add rcx, 0xffffffffffffffd0
mov rdx, rbx
call fcn.1401a12f0
test rax, rax
je 0x14019a440
mov dword [rax], 4
jmp 0x14019a440
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x160]
mov r8d, 0xa0
call fcn.140258830
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 0x14019a598
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 0x14019a580
tzcnt edx, edx
add rdx, r9
and rdx, rcx
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x14019a5bd
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.140258830
inc qword [rbx + 0x18]
jmp 0x1401991a6
lea rcx, [0x140628b18]
lea r8, [0x140628c88]
mov edx, 0x2b
call fcn.14026c9a0
ud2