Function at 0x140199090
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 0x140199190
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 0x140199160
jmp 0x1401991ab
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x1401991f6
add r8, rbx
add r8, 0x10
add rbx, 0x10
jmp 0x14019913f
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 0x14019920e
call fcn.140219eb0
cmp qword [rax], 0
je 0x140199229
add rax, 8
jmp 0x140199233
mov edx, 1
mov rcx, r14
mov r8, rdi
call fcn.1402654b0
call fcn.140219eb0
cmp qword [rax], 0
jne 0x140199208
mov rcx, rax
xor edx, edx
call fcn.1400c1190
movdqu xmm6, xmmword [0x140628590]
movdqa xmmword [rbp + 0x2f0], xmm6
movdqu xmm7, xmmword [0x140628580]
movdqa xmmword [rbp + 0x2e0], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x300], xmm0
call fcn.140219eb0
cmp qword [rax], 0
je 0x140199271
add rax, 8
jmp 0x14019927b
mov rcx, rax
xor edx, edx
call fcn.1400c1190
movdqa xmmword [rbp + 0x70], xmm6
movdqa xmmword [rbp + 0x60], xmm7
movups xmm0, xmmword [rax]
inc qword [rax]
movaps xmmword [rbp + 0x80], xmm0
call fcn.140219eb0
cmp qword [rax], 0
mov qword [rbp + 0x2b0], r14
je 0x1401992aa
add rax, 8
jmp 0x1401992b4
mov rcx, rax
xor edx, edx
call fcn.1400c1190
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 0x140199412
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, [0x14071e818]
lea r9, [0x1406284b0]
lea r8, [rbp + 0x2e0]
xor edx, edx
call fcn.14026bdb0
mov rax, qword [rbp + 0x280]
mov rdx, qword [rax + 0x18]
cmp qword [rbp + 0x1a0], rdx
jae 0x140199439
lea r8, [rbp + 0x1b0]
lea rcx, [rbp + 0x190]
call fcn.1402664c0
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 0x1401998f1
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.0x14019956a.71
mov ecx, r13d
call fcn.14019f2c0
mov qword [rbp + 0x208], rax
add ebx, 0xffffffa0
cmp ebx, 0xf
ja 0x1401994ba
cmp ebx, 0xa
jne case.0x14019956a.71
mov qword [rbp + 0x280], r14
mov rax, qword [0x14071e818]
cmp rax, 3
je 0x140199512
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, [0x14071e818]
xor edx, edx
lea r8, [rbp + 0x2e0]
lea r9, [0x1406284b0]
call fcn.14026bdb0
mov rcx, qword [rbp + 0x280]
lea rdx, [rbp + 0x208]
call fcn.1401a0040
test al, al
je case.0x14019956a.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.0x14019956a.71
lea rcx, [0x140628720]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov bx, 8
jmp 0x1401998a9
mov bx, 0xd
jmp 0x1401998a9
mov bx, 0x7a
jmp 0x1401998a9
mov bx, 0x79
jmp 0x1401998a9
mov bx, 0x81
jmp 0x1401998a9
mov bx, 0x75
jmp 0x1401998a9
mov bx, 0x86
jmp 0x1401998a9
mov bx, 0xae
jmp 0x1401998a9
mov bx, 0x73
jmp 0x1401998a9
mov bx, 0x83
jmp 0x1401998a9
mov bx, 0x6d
jmp 0x1401998a9
mov bx, 0x7e
jmp 0x1401998a9
mov bx, 0xb5
jmp 0x1401998a9
mov bx, 0x76
jmp 0x1401998a9
mov bx, 0xad
jmp 0x1401998a9
mov bx, 0x65
jmp 0x1401998a9
mov bx, 0x91
jmp 0x1401998a9
mov bx, 0x6f
jmp 0x1401998a9
mov bx, 0xab
jmp 0x1401998a9
mov bx, 0x71
jmp 0x1401998a9
mov bx, 0x63
jmp 0x1401998a9
mov bx, 0x64
jmp 0x1401998a9
mov bx, 0xb1
jmp 0x1401998a9
mov bx, 0x28
jmp 0x1401998a9
mov bx, 0x62
jmp 0x1401998a9
mov bx, 0x15
cmp dword [rbp + 0x33c], 2
jae case.0x14019956a.71
jmp 0x1401998a9
mov bx, 0xb2
jmp 0x1401998a9
mov bx, 0xc
jmp 0x1401998a9
mov bx, 0x1c
jmp 0x1401998a9
mov bx, 0x61
jmp 0x1401998a9
mov bx, 0xac
jmp 0x1401998a9
mov bx, 0x78
jmp 0x1401998a9
mov bx, 0xa0
jmp 0x1401998a9
mov bx, 0x77
jmp 0x1401998a9
mov bx, 0x6a
jmp 0x1401998a9
mov bx, 0x5d
jmp 0x1401998a9
mov bx, 0x68
jmp 0x1401998a9
mov bx, 0xaa
jmp 0x1401998a9
mov bx, 0xb4
jmp 0x1401998a9
mov bx, 0x20
jmp 0x1401998a9
mov bx, 0x5c
jmp 0x1401998a9
mov bx, 0x22
jmp 0x1401998a9
mov bx, 0x2d
jmp 0x1401998a9
mov bx, 0x15
jmp 0x1401998a9
mov bx, 0xb7
jmp 0x1401998a9
mov bx, 0x14
jmp 0x1401998a9
mov bx, 0xa4
jmp 0x1401998a9
mov bx, 0xa5
jmp 0x1401998a9
mov bx, 0x82
jmp 0x1401998a9
mov bx, 0x90
jmp 0x1401998a9
mov bx, 0x19
cmp r15d, 0x12
jne case.0x14019956a.71
jmp 0x1401998a9
mov bx, 0x84
jmp 0x1401998a9
mov bx, 0x69
jmp 0x1401998a9
mov bx, 0x72
jmp 0x1401998a9
mov bx, 0x2e
jmp 0x1401998a9
mov bx, 0xa2
jmp 0x1401998a9
mov bx, 0xa9
jmp 0x1401998a9
mov bx, 0xb6
jmp 0x1401998a9
mov bx, 0xb3
jmp 0x1401998a9
mov bx, 0x23
jmp 0x1401998a9
mov bx, 9
jmp 0x1401998a9
mov bx, 0xa3
jmp 0x1401998a9
mov bx, 0xf1
cmp r15d, 0x11
jne case.0x14019956a.71
jmp 0x1401998a9
mov bx, 0xa1
jmp 0x1401998a9
mov bx, 0x5b
jmp 0x1401998a9
mov bx, 0x26
jmp 0x1401998a9
mov bx, 0x60
jmp 0x1401998a9
mov bx, 0x6c
jmp 0x1401998a9
mov bx, 0x7b
jmp 0x1401998a9
mov bx, 0x2f
jmp 0x1401998a9
mov bx, 0x7c
jmp 0x1401998a9
mov bx, 0x67
jmp 0x1401998a9
mov bx, 0x1d
jmp 0x1401998a9
mov bx, 0xa7
jmp 0x1401998a9
mov bx, 0x6b
jmp 0x1401998a9
mov bx, 0xa8
jmp 0x1401998a9
mov bx, 0x24
jmp 0x1401998a9
mov bx, 0x25
jmp 0x1401998a9
mov bx, 0x27
jmp 0x1401998a9
mov bx, 0x66
jmp 0x1401998a9
mov bx, 0x21
jmp 0x1401998a9
mov bx, 0x13
jmp 0x1401998a9
mov bx, 0xaf
jmp 0x1401998a9
mov bx, 0xa6
jmp 0x1401998a9
mov bx, 0x2c
jmp 0x1401998a9
mov bx, 0x6e
jmp 0x1401998a9
mov bx, 0x29
jmp 0x1401998a9
mov bx, 0x7d
jmp 0x1401998a9
mov bx, 0x70
jmp 0x1401998a9
mov bx, 0x1b
jmp 0x1401998a9
mov bx, 0x74
jmp 0x1401998a9
mov bx, 0xb0
jmp 0x1401998a9
mov bx, 0x85
jmp 0x1401998a9
mov bx, 0x80
jmp 0x1401998a9
mov bx, 0x7f
jmp 0x1401998a9
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.14019adb0
cmp dword [rbp + 0x48], 1
je case.0x14019956a.71
lea rcx, [rbp + 0x2e0]
lea r9, [rbp + 0x48]
lea rdx, [rbp + 0x190]
mov r8d, ebx
call fcn.1401a0290
jmp case.0x14019956a.71
cmp qword [rbp + 0x170], 0xf
ja 0x140199913
lea r8, [rbp + 0x180]
lea rcx, [rbp + 0x160]
mov edx, 0x10
call fcn.1402664c0
lea r15, str._abcdefghijklmno9
lea r12, [0x1406285c0]
lea rbx, [rbp + 0x2e0]
lea r14, [rbp + 0x60]
lea r13, [rbp + 0x250]
jmp 0x140199944
add r15, 2
cmp r15, r12
je 0x1401999c6
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.14019aa00
cmp dword [rbp + 0x2e0], 0
jne 0x140199940
mov rcx, qword [rbp + 0x2b8]
lea rdx, [rbp + 0x2e8]
call fcn.14019ac20
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.1401a0290
jmp 0x140199940
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 0x140199a07
mov rax, qword [rbp + 0x220]
mov qword [rbp + 0x340], rax
cmp al, 0x10
jae 0x14019a42c
call fcn.140219eb0
cmp qword [rax], 0
je 0x140199a30
add rax, 8
jmp 0x140199a41
mov rcx, rax
xor edx, edx
call fcn.1400c1190
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.1401047d0
test rax, rax
je 0x140199a90
mov rdi, rax
add rdi, 0x4000
mov r8d, 0x210
mov rcx, rdi
mov dl, 0xff
call fcn.140258480
mov eax, 0x1ff
mov edx, 0x1c0
jmp 0x140199aab
mov edx, 0x10
mov r8d, 0x4210
mov cl, 1
call fcn.140240840
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 0x140199b20
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 0x140199b32
or al, 0x80
mov byte [rbp + 0x71], al
movzx eax, byte [rbp + 0x72]
test byte [rbp + 0x340], 4
je 0x140199b52
or al, 0x80
jmp 0x140199b62
or al, 0x80
mov byte [rbp + 0x70], al
movzx eax, byte [rbp + 0x71]
test byte [rbp + 0x340], 2
jne 0x140199b00
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 0x140199b12
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 0x140199ba9
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x280]
mov r8, r15
mov r9, r12
call fcn.1401a0630
movzx ecx, bx
cmp ecx, 0x100
mov dword [rbp + 0x33c], ecx
jae 0x14019a390
mov r13d, ebx
mov edx, 4
mov r8, rsi
call r14
mov edi, eax
lea ebx, [r13 + 1]
test eax, eax
je 0x140199ba9
mov ecx, edi
call fcn.14019f2c0
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.14019adb0
cmp dword [rbp + 0x238], 1
jne 0x140199b90
mov qword [rsp + 0x20], rsi
lea rcx, [rbp + 0x250]
lea rdx, [rbp + 0x60]
mov r8d, r13d
mov r9d, edi
call fcn.14019aa00
mov eax, dword [rbp + 0x250]
cmp rax, 2
je 0x140199c55
cmp eax, 1
jne 0x140199c8e
mov eax, dword [rbp + 0x254]
mov dword [rbp + 0x2c4], eax
mov dword [rbp + 0x2c0], 2
jmp 0x140199d84
test byte [rbp + 0x340], 6
jne 0x140199cf7
cmp word [rbp + 0x328], 0x6a
jne 0x140199cf7
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 0x140199d7a
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.1401a15b0
test rax, rax
je 0x140199d17
mov rdi, qword [rax]
mov r13, qword [rax + 8]
mov rdx, qword [rbp + 0x348]
test rdx, rdx
je 0x140199d6c
mov r8d, 1
mov rcx, qword [rbp + 0x330]
call fcn.1401047e0
jmp 0x140199d6c
mov rax, qword [rbp + 0x248]
mov qword [rbp + 0x2d0], rax
movdqu xmm0, xmmword [rbp + 0x238]
movdqa xmmword [rbp + 0x2c0], xmm0
jmp 0x140199d84
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.140240f80
mov rdi, rax
mov r13, rdx
mov byte [rbp + 0x357], 1
mov rcx, qword [rbp + 0x2b8]
mov rdx, rax
mov r8, r13
call fcn.1401a09d0
mov qword [rbp + 0x2c8], rdi
mov qword [rbp + 0x2d0], r13
mov dword [rbp + 0x2c0], 0
cmp byte [rbp + 0x340], 6
jne 0x14019a340
cmp byte [rbp + 0x1f8], 0
jne 0x14019a340
cmp qword [rbp + 0x1d8], 0
je 0x14019a627
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 0x140199f80
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 0x140199f50
jmp 0x140199fa0
pcmpeqb xmm1, xmm9
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x14019a627
add r8, rdx
add r8, 0x10
add rdx, 0x10
jmp 0x140199f38
cmp qword [r15 + r10 - 0x18], 0
je 0x14019a340
add r15, r10
lea rcx, [r15 - 0x10]
lea rdx, [rbp + 0x328]
call fcn.14019fb70
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 0x14019a0dd
xor r9d, r9d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14019a04d
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
jne 0x14019a340
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x140199ffa
lea edx, [r10 - 1]
and dx, r10w
mov r10d, edx
je 0x14019a014
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 0x14019a040
cmp dx, 4
jbe 0x14019a040
neg r15
shl r15, 5
cmp dword [rdi + r15 - 0x18], 0
lea r12, [rbp + 0x238]
jne 0x14019a340
lea rcx, [rbp + 0x2e0]
lea rdx, [rbp + 0x2c0]
call fcn.14019b120
cmp dword [rbp + 0x2e0], 0
jne 0x14019a340
add rdi, r15
mov r8, qword [rbp + 0x2f0]
cmp r8, qword [rdi - 8]
jne 0x14019a32f
mov rdx, qword [rdi - 0x10]
mov rcx, qword [rbp + 0x2e8]
call fcn.140258ec0
test eax, eax
sete al
jmp 0x14019a331
movzx r9d, word [rbp + 0x32a]
movzx r10d, r8b
cmp r8w, 4
jne 0x14019a26f
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 0x14019a240
cmp r8w, 3
jne 0x14019a15b
jmp 0x14019a1d4
cmp r8w, 2
jne case.default.0x14019a212
cmp r9w, word [rdx + 2]
je case.default.0x14019a212
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a240
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 0x14019a149
neg r15
cmp r8b, 1
je 0x14019a1a4
cmp r10d, 2
je 0x14019a133
cmp r10d, 4
jne case.default.0x14019a212
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019a149
jmp case.default.0x14019a212
cmp r8w, 1
je 0x14019a13e
jmp case.default.0x14019a212
cmp r8w, 2
jne case.default.0x14019a212
cmp r9w, word [rdx + 2]
je case.default.0x14019a212
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a240
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 0x14019a1c6
neg r15
lea r11d, [r10 - 1]
cmp r11d, 3
ja case.default.0x14019a212
lea r13, [0x140628710]
movsxd r11, dword [r13 + r11*4]
add r11, r13
jmp r11
cmp r8w, 1
je case.0x14019a212.3
jmp case.default.0x14019a212
mov r11d, dword [rbp + 0x348]
cmp r11d, dword [rdx + 4]
jne 0x14019a1c6
jmp case.default.0x14019a212
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019a340
mov rdx, qword [rbp + 0x330]
add rax, rdx
add rax, 0x10
add rdx, 0x10
jmp 0x14019a102
xor r11d, r11d
and rax, rcx
movdqu xmm1, xmmword [rdi + rax]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r12d, xmm2
test r12d, r12d
jne 0x14019a2d5
pcmpeqb xmm1, xmm9
pmovmskb edx, xmm1
test edx, edx
lea r12, [rbp + 0x238]
jne 0x14019a340
add rax, r11
add rax, 0x10
add r11, 0x10
jmp 0x14019a272
cmp r8w, 2
jne case.default.0x14019a212
cmp r9w, word [r13 + 2]
je case.default.0x14019a212
lea edx, [r12 - 1]
and dx, r12w
mov r12d, edx
je 0x14019a28c
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 0x14019a2c7
cmp r8w, dx
jne 0x14019a2c7
neg r15
cmp r8b, 1
je 0x14019a323
cmp r10d, 2
je 0x14019a2b1
cmp r10d, 3
jne case.default.0x14019a212
cmp r8w, 3
je 0x14019a2bc
jmp case.default.0x14019a212
cmp r8w, 1
je 0x14019a2bc
jmp case.default.0x14019a212
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.1401a0630
mov r14, qword [sym.imp.user32.dll_MapVirtualKeyExW]
jmp 0x140199ba9
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.1401a0ba0
mov rcx, qword [rbp + 0x250]
test rcx, rcx
je 0x140199a00
mov rdx, qword [rbp + 0x258]
test rdx, rdx
je 0x140199a00
mov rax, rdx
shl rax, 5
add rdx, rax
add rdx, 0x31
je 0x140199a00
sub rcx, rax
add rcx, 0xffffffffffffffe0
mov r8d, 0x10
call fcn.1401047e0
jmp 0x140199a00
cmp byte [rbp + 0x1f8], 0
je 0x14019a543
xor r14d, r14d
lea rdi, [rbp + 0x2e0]
pcmpeqd xmm6, xmm6
lea rbx, [0x1406285c0]
jmp 0x14019a453
inc r14b
cmp r14b, 0xf
ja 0x14019a543
mov byte [rbp + 0x2e0], r14b
cmp qword [rbp + 0x1d8], 0
je 0x14019a450
lea rcx, [rbp + 0x1e0]
mov rdx, rdi
call fcn.14019fd60
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 0x14019a500
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 0x14019a4d0
jmp 0x14019a520
pcmpeqb xmm1, xmm6
pmovmskb r10d, xmm1
test r10d, r10d
jne 0x14019a450
add rax, r9
add rax, 0x10
add r9, 0x10
jmp 0x14019a4ac
add rcx, r11
add rcx, 0xffffffffffffffd0
mov rdx, rbx
call fcn.1401a1300
test rax, rax
je 0x14019a450
mov dword [rax], 4
jmp 0x14019a450
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x160]
mov r8d, 0xa0
call fcn.140258840
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 0x14019a5a8
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 0x14019a590
tzcnt edx, edx
add rdx, r9
and rdx, rcx
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x14019a5cd
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.140258840
inc qword [rbx + 0x18]
jmp 0x1401991b6
lea rcx, [0x1406284d8]
lea r8, [0x140628648]
mov edx, 0x2b
call fcn.14026c9b0
ud2