Function at 0x1402defc3
Capabilities:
Get keyboard layout

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x358
movaps xmmword [rsp + 0x340], xmm7
movdqa xmmword [rsp + 0x330], xmm6
mov r12, rcx
xor ebx, ebx
xor ecx, ecx
call sub.user32.dll_GetKeyboardLayout
mov rsi, rax
mov r14, qword [r12 + 0x20]
mov r15, qword [r12 + 0x28]
mov rcx, r14
mov rdx, r15
mov r8, rax
call fcn.1402d882c
mov r11, rax
shr r11, 0x39
mov rdi, qword [r12]
mov qword [rsp + 0x70], r12
mov r12, qword [r12 + 8]
mov rcx, r12
mov qword [rsp + 0x1f0], rax
and rcx, rax
movd xmm0, r11d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rdi - 0xa8]
pcmpeqd xmm1, xmm1
movdqu xmm2, xmmword [rdi + rcx]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r8d, xmm3
test r8w, r8w
je 0x1402df08d
lea r10d, [r8 - 1]
and r10d, r8d
bsf r8d, r8d
add r8, rcx
and r8, r12
neg r8
imul r9, r8, 0xa8
mov r8d, r10d
cmp qword [rdx + r9], rsi
jne 0x1402df061
jmp 0x1402df0ab
pcmpeqb xmm2, xmm1
pmovmskb r8d, xmm2
test r8d, r8d
jne 0x1402df0df
add rcx, rbx
add rcx, 0x10
add rbx, 0x10
and rcx, r12
jmp 0x1402df04f
add rdi, r9
add rdi, 0xffffffffffffff60
mov rax, rsi
mov rdx, rdi
movaps xmm6, xmmword [rsp + 0x330]
movaps xmm7, xmmword [rsp + 0x340]
add rsp, 0x358
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x78], r11
mov rax, qword [rsp + 0x70]
cmp qword [rax + 0x10], 0
je 0x1402e0295
call fcn.140234fc0
test rax, rax
je 0x1402e0301
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
lea r8, [rcx + 1]
mov qword [rax], r8
movdqu xmm6, xmmword [0x1403b5170]
movdqa xmmword [rsp + 0xc0], xmm6
movups xmm7, xmmword [str.PQ__]
movaps xmmword [rsp + 0xb0], xmm7
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rdx
call fcn.140234fc0
test rax, rax
je 0x1402e032a
mov rcx, qword [rax]
mov rdx, qword [rax + 8]
lea r8, [rcx + 1]
mov qword [rax], r8
movdqa xmmword [rsp + 0x240], xmm6
movaps xmmword [rsp + 0x230], xmm7
mov qword [rsp + 0x250], rcx
mov qword [rsp + 0x258], rdx
call fcn.140234fc0
test rax, rax
je 0x1402e0355
mov rdx, qword [rax]
mov r8, qword [rax + 8]
lea rcx, [rdx + 1]
mov qword [rax], rcx
mov qword [rsp + 0x1e0], rsi
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movaps xmm2, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x150], xmm0
movaps xmmword [rsp + 0x160], xmm1
movaps xmmword [rsp + 0x170], xmm2
lea rcx, [rsp + 0x230]
movdqa xmm0, xmmword [rcx]
movdqa xmm1, xmmword [rcx + 0x10]
movdqa xmm2, xmmword [rcx + 0x20]
movdqa xmmword [rsp + 0x180], xmm0
movdqa xmmword [rsp + 0x190], xmm1
movdqa xmmword [rsp + 0x1a0], xmm2
movaps xmmword [rsp + 0x1b0], xmm7
movdqa xmmword [rsp + 0x1c0], xmm6
mov qword [rsp + 0x1d0], rdx
mov qword [rsp + 0x1d8], r8
mov byte [rsp + 0x1e8], 0
mov r8d, 0x100
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [0x1402e8c68]
cmp rax, 2
je 0x1402df24a
call fcn.1402d98f4
lea rdi, [rsp + 0x180]
mov rdx, qword [0x1402e8c50]
cmp qword [rdi + 0x10], rdx
jae 0x1402df277
mov r8, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x1a8]
mov rcx, rdi
call fcn.1402db67b
mov r12d, esi
and r12d, 0x3ff
mov r13d, r12d
add r13d, 0xffffffef
xor r14d, r14d
pcmpeqd xmm6, xmm6
lea rbx, [0x1402f56d0]
mov ecx, r14d
mov edx, 4
mov r8, rsi
call sub.user32.dll_MapVirtualKeyExW
test eax, eax
je case.0x1402df3b2.69
mov ecx, eax
call fcn.1402e20f4
mov r15, rax
cmp r15w, 5
jne case.0x1402df3b2.69
movzx eax, r14w
add eax, 0xffffffa0
cmp eax, 0xf
ja 0x1402df2dd
cmp eax, 0xa
je 0x1402df2dd
inc r14d
cmp r14d, 0x100
jne 0x1402df296
jmp 0x1402df771
mov rax, qword [0x1402e8c68]
cmp rax, 2
je 0x1402df2ef
call fcn.1402d98f4
cmp qword [0x1402e8c50], 0
je case.0x1402df3b2.69
shr r15d, 0x10
mov rcx, qword [0x1402e8c58]
mov rdx, qword [0x1402e8c60]
mov r8d, r15d
call fcn.1402d855a
mov rcx, qword [0x1402e8c40]
mov rdx, rcx
and rdx, rax
shr rax, 0x39
mov r8, qword [0x1402e8c38]
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor eax, eax
movdqu xmm1, xmmword [r8 + rdx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9w, r9w
je 0x1402df377
lea r10d, [r9 - 1]
and r10d, r9d
bsf r11d, r9d
add r11, rdx
and r11, rcx
not r11
mov r9d, r10d
cmp byte [r11 + r8], r15b
jne 0x1402df352
jmp 0x1402df399
pcmpeqb xmm1, xmm6
pmovmskb r9d, xmm1
test r9d, r9d
jne case.0x1402df3b2.69
add rdx, rax
add rdx, 0x10
add rax, 0x10
and rdx, rcx
jmp 0x1402df33f
movzx eax, r15b
add eax, 0xffffffce
cmp eax, 0x84
ja case.0x1402df3b2.69
movsxd rax, dword [rbx + rax*4]
add rax, rbx
jmp rax
mov bp, 8
jmp 0x1402df6f1
mov bp, 0xd
jmp 0x1402df6f1
mov bp, 0x85
jmp 0x1402df6f1
mov bp, 0x82
jmp 0x1402df6f1
mov bp, 0x75
jmp 0x1402df6f1
mov bp, 0x7b
jmp 0x1402df6f1
mov bp, pe_nt_image_headers64
jmp 0x1402df6f1
mov bp, 0x76
jmp 0x1402df6f1
mov bp, 0x83
jmp 0x1402df6f1
mov bp, 0x73
jmp 0x1402df6f1
mov bp, 0xb5
jmp 0x1402df6f1
mov bp, 0x79
jmp 0x1402df6f1
mov bp, 0xaf
jmp 0x1402df6f1
mov bp, 0x7e
jmp 0x1402df6f1
mov bp, 0x71
jmp 0x1402df6f1
mov bp, 0x84
jmp 0x1402df6f1
mov bp, 0x69
jmp 0x1402df6f1
mov bp, 0x6d
jmp 0x1402df6f1
mov bp, 0xab
jmp 0x1402df6f1
mov bp, 0x91
jmp 0x1402df6f1
mov bp, 0x6a
jmp 0x1402df6f1
mov bp, 0x7a
jmp 0x1402df6f1
mov bp, 0x65
jmp 0x1402df6f1
mov bp, 0x77
jmp 0x1402df6f1
mov bp, 0x64
jmp 0x1402df6f1
mov bp, 0x62
jmp 0x1402df6f1
mov bp, 0x6b
jmp 0x1402df6f1
mov bp, 0x29
jmp 0x1402df6f1
mov bp, 0x15
cmp r13w, 2
jae case.0x1402df3b2.69
jmp 0x1402df6f1
mov bp, 0x1d
jmp 0x1402df6f1
mov bp, 0xa0
jmp 0x1402df6f1
mov bp, 0x24
jmp 0x1402df6f1
mov bp, 0xb4
jmp 0x1402df6f1
mov bp, 0x23
jmp 0x1402df6f1
mov bp, 0x5b
jmp 0x1402df6f1
mov bp, 0x90
jmp 0x1402df6f1
mov bp, 0x7d
jmp 0x1402df6f1
mov bp, 0x74
jmp 0x1402df6f1
mov bp, 0x21
jmp 0x1402df6f1
mov bp, 0x66
jmp 0x1402df6f1
mov bp, 0x2e
jmp 0x1402df6f1
mov bp, 0xa1
jmp 0x1402df6f1
mov bp, 0x19
cmp r12w, 0x12
jne case.0x1402df3b2.69
jmp 0x1402df6f1
mov bp, 0x28
jmp 0x1402df6f1
mov bp, 0x27
jmp 0x1402df6f1
mov bp, 0x5c
jmp 0x1402df6f1
mov bp, 0x5d
jmp 0x1402df6f1
mov bp, 0xb1
jmp 0x1402df6f1
mov bp, 0x2f
jmp 0x1402df6f1
mov bp, 0x67
jmp 0x1402df6f1
mov bp, 0xa4
jmp 0x1402df6f1
mov bp, 0xa2
jmp 0x1402df6f1
mov bp, 0xa5
jmp 0x1402df6f1
mov bp, 0xa3
jmp 0x1402df6f1
mov bp, 0xc
jmp 0x1402df6f1
mov bp, 0x20
jmp 0x1402df6f1
mov bp, 9
jmp 0x1402df6f1
mov bp, 0x6f
jmp 0x1402df6f1
mov bp, 0x25
jmp 0x1402df6f1
mov bp, 0x6c
jmp 0x1402df6f1
mov bp, 0x63
jmp 0x1402df6f1
mov bp, 0x14
jmp 0x1402df6f1
mov bp, 0x13
jmp 0x1402df6f1
mov bp, 0x70
jmp 0x1402df6f1
mov bp, 0x78
jmp 0x1402df6f1
mov bp, 0x15
jmp 0x1402df6f1
mov bp, 0x60
jmp 0x1402df6f1
mov bp, 0x1c
jmp 0x1402df6f1
mov bp, 0x7f
jmp 0x1402df6f1
mov bp, 0xa6
jmp 0x1402df6f1
mov bp, 0x68
jmp 0x1402df6f1
mov bp, 0xf1
cmp r12w, 0x11
jne case.0x1402df3b2.69
jmp 0x1402df6f1
mov bp, 0xac
jmp 0x1402df6f1
mov bp, 0xb6
jmp 0x1402df6f1
mov bp, 0xb7
jmp 0x1402df6f1
mov bp, 0xad
jmp 0x1402df6f1
mov bp, 0xa7
jmp 0x1402df6f1
mov bp, 0x22
jmp 0x1402df6f1
mov bp, 0x2d
jmp 0x1402df6f1
mov bp, 0xb3
jmp 0x1402df6f1
mov bp, 0x2c
jmp 0x1402df6f1
mov bp, 0x61
jmp 0x1402df6f1
mov bp, 0x26
jmp 0x1402df6f1
mov bp, 0x6e
jmp 0x1402df6f1
mov bp, 0xb2
jmp 0x1402df6f1
mov bp, 0xaa
jmp 0x1402df6f1
mov bp, 0xb0
jmp 0x1402df6f1
mov bp, 0x7c
jmp 0x1402df6f1
mov bp, 0x1b
jmp 0x1402df6f1
mov bp, 0xa9
jmp 0x1402df6f1
mov bp, 0xae
jmp 0x1402df6f1
mov bp, 0x86
jmp 0x1402df6f1
mov bp, 0xa8
jmp 0x1402df6f1
mov bp, 0x72
jmp 0x1402df6f1
mov bp, 0x81
jmp 0x1402df6f1
mov bp, 0x87
mov r15, rbx
lea r8, [rsp + 0xb0]
mov byte [r8], 0x1d
mov word [r8 + 2], r14w
mov byte [rsp + 0x20], 0
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov edx, r14d
mov r9, rsi
call fcn.1402e1a57
cmp word [rbx], 2
jne 0x1402df735
lea rcx, [rsp + 0x30]
call fcn.1400b4b01
mov rbx, r15
jmp case.0x1402df3b2.69
lea rcx, [rsp + 0xb0]
lea r9, [rsp + 0x30]
mov rdx, rdi
mov r8d, ebp
call fcn.1402db4b5
cmp word [rsp + 0xb0], 4
mov rbx, r15
je case.0x1402df3b2.69
lea rcx, [rsp + 0xb0]
call fcn.1400b4b01
jmp case.0x1402df3b2.69
cmp qword [rsp + 0x160], 0xf
ja 0x1402df796
lea rcx, [rsp + 0x150]
mov r8, qword [rcx + 0x20]
mov r9, qword [rcx + 0x28]
mov edx, 0x10
call fcn.1402db67b
lea rbx, [rsp + 0xb8]
xor r12d, r12d
lea r13, str._abcdefghijklmno
lea rdi, [rsp + 0x80]
lea r14, [rsp + 0x230]
lea r15, [rsp + 0x30]
movzx ebp, word [r12 + r13]
mov ecx, ebp
mov edx, 4
mov r8, rsi
call sub.user32.dll_MapVirtualKeyExW
mov qword [rsp + 0x20], rsi
mov rcx, rdi
mov rdx, r14
mov r8d, ebp
mov r9d, eax
call fcn.1402e26eb
movabs rax, 0x8000000000000001
cmp qword [rsp + 0x80], rax
jle 0x1402df84e
mov rcx, r15
mov rdx, rdi
call fcn.14020a0cf
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x30]
movdqu xmmword [rbx], xmm0
mov word [rsp + 0xb0], 1
mov rcx, r15
lea rdx, [rsp + 0x150]
mov r8d, ebp
lea r9, [rsp + 0xb0]
call fcn.1402db4b5
cmp word [rsp + 0x30], 4
je 0x1402df84e
mov rcx, r15
call fcn.1400b4b01
add r12, 2
cmp r12, 0x20
jne 0x1402df7bd
pcmpeqd xmm6, xmm6
lea r15, [rsp + 0x210]
xor edi, edi
mov ebp, edi
call fcn.140234fc0
test rax, rax
je 0x1402e02c7
mov rbx, qword [rax]
mov r14, qword [rax + 8]
lea rcx, [rbx + 1]
mov qword [rax], rcx
mov al, byte [0x1403f9274]
mov ecx, 0x5210
mov edx, 0x10
call fcn.140061500
test rax, rax
je 0x1402e02f5
mov rdi, rax
add rdi, 0x5000
mov r8d, 0x210
mov rcx, rdi
mov dl, 0xff
call sub.msvcrt.dll_memset
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], 0x1ff
mov qword [rsp + 0x90], 0x1c0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0xa8], r14
mov al, byte [rsp + 0x240]
test bpl, 1
jne 0x1402df91d
and byte [rsp + 0x2d0], 0x7f
and al, 0x7f
and byte [rsp + 0x2d1], 0x7f
jmp 0x1402df91f
or al, 0x80
lea r14, [rsp + 0xb0]
mov byte [rsp + 0x240], al
mov al, byte [rsp + 0x241]
test bpl, 2
jne 0x1402df94f
and byte [rsp + 0x2d2], 0x7f
and al, 0x7f
and byte [rsp + 0x2d3], 0x7f
jmp 0x1402df951
or al, 0x80
mov byte [rsp + 0x241], al
mov al, byte [rsp + 0x242]
test bpl, 4
jne 0x1402df979
and byte [rsp + 0x2d4], 0x7f
and al, 0x7f
and byte [rsp + 0x2d5], 0x7f
jmp 0x1402df97b
or al, 0x80
lea ecx, [rbp + 1]
mov dword [rsp + 0x6c], ecx
mov byte [rsp + 0x242], al
mov al, byte [rsp + 0x244]
and al, 0xfe
mov ecx, ebp
shr cl, 3
or cl, al
mov byte [rsp + 0x244], cl
xor edi, edi
mov ecx, edi
mov edx, 4
mov r8, rsi
call sub.user32.dll_MapVirtualKeyExW
mov ebx, eax
test eax, eax
je 0x1402dfdc3
mov ecx, ebx
call fcn.1402e20f4
mov r13, rax
cmp r13w, 5
jne 0x1402dfdc3
shr r13d, 0x10
mov byte [rsp + 0xb0], 0x1d
mov word [rsp + 0xb2], di
mov byte [rsp + 0x20], 0
mov r12, r15
mov rcx, r15
mov edx, edi
mov r8, r14
mov r9, rsi
call fcn.1402e1a57
cmp word [rsp + 0x210], 2
jne 0x1402dfa72
mov r14b, 1
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x1f8]
lea rdx, [rsp + 0x230]
mov r8d, edi
mov r9d, ebx
call fcn.1402e26eb
mov rcx, qword [rsp + 0x1f8]
movabs rax, 0x8000000000000001
lea rdx, [rax + 1]
add rax, rcx
cmp rcx, rdx
mov ecx, 0
cmovge rax, rcx
cmp rax, 2
je 0x1402dfaaa
cmp rax, 1
jne 0x1402dfada
mov eax, dword [rsp + 0x200]
mov dword [rsp + 0x34], eax
mov word [rsp + 0x30], 3
jmp 0x1402dfb14
mov rcx, r14
xor r14d, r14d
lea rdx, [rsp + 0x80]
mov r8d, r13d
mov r9, r12
call fcn.1402dadca
cmp word [rsp + 0xb0], 4
lea r14, [rsp + 0xb0]
je 0x1402dfdc3
mov rcx, r14
jmp 0x1402dfdbe
test bpl, 6
jne 0x1402dfcdf
cmp r13b, 0x64
jne 0x1402dfcdf
mov r8d, 1
lea rcx, [rsp + 0xb0]
lea rdx, [0x1403b5fe8]
call fcn.1402d9c95
jmp 0x1402dfaef
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x1f8]
call fcn.14020a0cf
mov rax, qword [rsp + 0xc0]
lea rcx, [rsp + 0x38]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmmword [rcx], xmm0
mov word [rsp + 0x30], 1
mov r14b, 1
xor ebx, ebx
cmp bpl, 6
jne 0x1402dfd7f
cmp byte [rsp + 0x1e8], 0
jne 0x1402dfd7f
cmp qword [rsp + 0x1c8], 0
je 0x1402e02aa
mov rcx, qword [rsp + 0x1d0]
mov rdx, qword [rsp + 0x1d8]
xor r8d, r8d
call fcn.1402d86c5
mov r12, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b8]
mov rdx, rcx
and rdx, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rax, [r12 - 0x38]
xor r8d, r8d
movdqu xmm1, xmmword [r12 + rdx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9w, r9w
je 0x1402dfbc9
lea r11d, [r9 - 1]
and r11d, r9d
bsf r9d, r9d
add r9, rdx
and r9, rcx
neg r9
imul r10, r9, 0x38
cmp byte [rax + r10], 0
mov r9d, r11d
jne 0x1402dfb9f
jmp 0x1402dfbeb
pcmpeqb xmm1, xmm6
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x1402e02aa
add rdx, r8
add rdx, 0x10
add r8, 0x10
and rdx, rcx
jmp 0x1402dfb8c
cmp qword [r12 + r10 - 0x18], 0
je 0x1402dfd7f
add r12, r10
mov rcx, qword [r12 - 0x10]
mov rdx, qword [r12 - 8]
mov r8d, r13d
call fcn.1402d855a
mov rdx, qword [r12 - 0x30]
mov rcx, qword [r12 - 0x28]
mov r8, rcx
and r8, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r9, [rdx - 0x28]
xor r10d, r10d
movdqu xmm1, xmmword [rdx + r8]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r11d, xmm2
test r11w, r11w
je 0x1402dfc75
lea r12d, [r11 - 1]
and r12d, r11d
bsf eax, r11d
add rax, r8
and rax, rcx
neg rax
lea rax, [rax + rax*4]
mov r11d, r12d
cmp byte [r9 + rax*8], r13b
jne 0x1402dfc4c
jmp 0x1402dfc95
pcmpeqb xmm1, xmm6
pmovmskb eax, xmm1
test eax, eax
jne 0x1402dfd7f
add r8, r10
add r8, 0x10
add r10, 0x10
and r8, rcx
jmp 0x1402dfc39
cmp word [rdx + rax*8 - 0x20], 1
jne 0x1402dfd7f
cmp word [rsp + 0x30], 1
jne 0x1402dfd7f
movzx r8d, byte [rsp + 0x38]
lea ecx, [r8 - 0x18]
movzx ecx, cl
cmp cl, 2
mov r9d, 2
cmovae ecx, r9d
test cl, cl
je 0x1402dfd07
movzx ecx, cl
cmp ecx, 1
jne 0x1402dfd17
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
jmp 0x1402dfd1c
movdqu xmm0, xmmword [rsp + 0x210]
movdqu xmm1, xmmword [rsp + 0x220]
movdqa xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x30], xmm0
mov bl, 1
xor r14d, r14d
jmp 0x1402dfb19
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
add rcx, 0x10
jmp 0x1402dfd1c
lea rcx, [rsp + 0x39]
lea r9, [rdx + rax*8]
movzx eax, byte [r9 - 0x18]
lea edx, [rax - 0x18]
movzx edx, dl
cmp dl, 2
mov r10d, 2
cmovae edx, r10d
test dl, dl
je 0x1402dfd4e
movzx edx, dl
cmp edx, 1
jne 0x1402dfd5c
mov rdx, qword [r9 - 0x10]
mov rax, qword [r9 - 8]
jmp 0x1402dfd63
mov rdx, qword [r9 - 0x10]
mov rax, qword [r9 - 8]
add rdx, 0x10
jmp 0x1402dfd63
add r9, 0xffffffffffffffe9
mov rdx, r9
cmp r8, rax
jne 0x1402dfd74
call sub.msvcrt.dll_memcmp
test eax, eax
sete al
jmp 0x1402dfd76
xor eax, eax
xor al, 1
mov byte [rsp + 0x1e8], al
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x80]
mov r8d, r13d
lea r9, [rsp + 0x30]
call fcn.1402dadca
cmp word [rsp + 0xb0], 4
lea r14, [rsp + 0xb0]
je 0x1402dfdb7
mov rcx, r14
call fcn.1400b4b01
test bl, bl
jne 0x1402dfdc3
mov rcx, r15
call fcn.1400b4b01
inc edi
cmp edi, 0x100
jne 0x1402df9a2
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqa xmmword [rsp + 0x50], xmm2
movdqa xmmword [rsp + 0x40], xmm1
movdqa xmmword [rsp + 0x30], xmm0
mov rbx, qword [rsp + 0x1d0]
mov r13, qword [rsp + 0x1d8]
mov rcx, rbx
mov rdx, r13
mov r8d, ebp
call fcn.1402d86c5
mov rdi, rax
cmp qword [rsp + 0x1c0], 0
jne 0x1402dfe3d
lea rcx, [rsp + 0x1b0]
mov rdx, rbx
mov r8, r13
call fcn.1402da89c
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b8]
mov r8, rcx
and r8, rdi
shr rdi, 0x39
movd xmm0, edi
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r9, [rax - 0x38]
xor r10d, r10d
xor r11d, r11d
movdqu xmm1, xmmword [rax + r8]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb ebx, xmm2
test bx, bx
je 0x1402dfeac
lea r12d, [rbx - 1]
and r12d, ebx
bsf ebx, ebx
add rbx, r8
and rbx, rcx
neg rbx
imul r14, rbx, 0x38
mov ebx, r12d
cmp byte [r9 + r14], bpl
jne 0x1402dfe85
jmp 0x1402dfeee
cmp r11, 1
mov r11d, 1
je 0x1402dfece
pmovmskb edx, xmm1
xor r11d, r11d
test edx, edx
setne r11b
bsf edx, edx
add rdx, r8
and rdx, rcx
pcmpeqb xmm1, xmm6
pmovmskb ebx, xmm1
test ebx, ebx
jne 0x1402dff6a
add r8, r10
add r8, 0x10
add r10, 0x10
and r8, rcx
jmp 0x1402dfe73
movups xmm0, xmmword [rax + r14 - 0x30]
movups xmm1, xmmword [rax + r14 - 0x20]
movups xmm2, xmmword [rax + r14 - 0x10]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm2, xmmword [rsp + 0x50]
movdqu xmmword [rax + r14 - 0x30], xmm0
movdqu xmmword [rax + r14 - 0x20], xmm1
movdqu xmmword [rax + r14 - 0x10], xmm2
cmp qword [rsp + 0xb0], 0
lea rcx, [rsp + 0xb0]
mov edi, dword [rsp + 0x6c]
je 0x1402dff5b
call fcn.1402d9501
cmp dil, 0x10
jne 0x1402df86a
jmp 0x1402e001e
mov r8b, byte [rax + rdx]
test r8b, r8b
js 0x1402dff82
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
bsf edx, edx
mov r8b, byte [rax + rdx]
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
lea r9, [rsp + 0xb7]
movups xmmword [r9 + 0x20], xmm2
movups xmmword [r9 + 0x10], xmm1
and r8b, 1
movzx r8d, r8b
sub qword [rsp + 0x1c0], r8
movups xmmword [r9], xmm0
lea r8, [rdx - 0x10]
and r8, rcx
mov byte [rax + rdx], dil
mov byte [r8 + rax + 0x10], dil
inc qword [rsp + 0x1c8]
neg rdx
imul rcx, rdx, 0x38
mov byte [rax + rcx - 0x38], bpl
movdqu xmm0, xmmword [rsp + 0xb0]
movdqu xmm1, xmmword [rsp + 0xc0]
movdqu xmm2, xmmword [rsp + 0xd0]
movdqu xmmword [rax + rcx - 0x37], xmm0
movdqu xmmword [rax + rcx - 0x27], xmm1
movdqu xmmword [rax + rcx - 0x17], xmm2
mov rdx, qword [rsp + 0xdf]
mov qword [rax + rcx - 8], rdx
mov edi, dword [rsp + 0x6c]
jmp 0x1402dff5b
cmp byte [rsp + 0x1e8], 0
je 0x1402e01b1
xor edi, edi
pcmpeqd xmm6, xmm6
cmp qword [rsp + 0x1c8], 0
je 0x1402e01a4
mov rcx, qword [rsp + 0x1d0]
mov rdx, qword [rsp + 0x1d8]
mov r8d, edi
call fcn.1402d86c5
mov rbx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b8]
mov rdx, rcx
and rdx, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rax, [rbx - 0x38]
xor r8d, r8d
movdqu xmm1, xmmword [rbx + rdx]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
test r9w, r9w
je 0x1402e00c7
lea r11d, [r9 - 1]
and r11d, r9d
bsf r9d, r9d
add r9, rdx
and r9, rcx
neg r9
imul r10, r9, 0x38
mov r9d, r11d
cmp dil, byte [rax + r10]
jne 0x1402e009e
jmp 0x1402e00e9
pcmpeqb xmm1, xmm6
pmovmskb r9d, xmm1
test r9d, r9d
jne 0x1402e01a4
add rdx, r8
add rdx, 0x10
add r8, 0x10
and rdx, rcx
jmp 0x1402e008c
cmp qword [rbx + r10 - 0x18], 0
je 0x1402e01a4
add rbx, r10
mov rcx, qword [rbx - 0x10]
mov rdx, qword [rbx - 8]
mov r8b, 0x33
call fcn.1402d855a
mov rcx, qword [rbx - 0x30]
mov rdx, qword [rbx - 0x28]
mov r8, rdx
and r8, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rax, [rcx - 0x28]
xor r9d, r9d
movdqu xmm1, xmmword [rcx + r8]
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r10d, xmm2
test r10w, r10w
je 0x1402e0170
lea ebx, [r10 - 1]
and ebx, r10d
bsf r10d, r10d
add r10, r8
and r10, rdx
neg r10
lea r11, [r10 + r10*4]
cmp byte [rax + r11*8], 0x33
mov r10d, ebx
jne 0x1402e0146
jmp 0x1402e018e
pcmpeqb xmm1, xmm6
pmovmskb r10d, xmm1
test r10d, r10d
jne 0x1402e01a4
add r8, r9
add r8, 0x10
add r9, 0x10
and r8, rdx
jmp 0x1402e0133
lea rbx, [rcx + r11*8]
add rbx, 0xffffffffffffffe0
mov rcx, rbx
call fcn.1400b4b01
mov dword [rbx], 0x10000
inc dil
cmp dil, 0x10
jne 0x1402e0032
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x150]
mov r8d, 0xa0
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
mov r9, qword [rsp + 0x1f0]
and r9, rcx
movdqu xmm0, xmmword [rax + r9]
pmovmskb edx, xmm0
test edx, edx
je 0x1402e01f8
mov r10, qword [rsp + 0x78]
jmp 0x1402e021b
mov r8d, 0x10
mov r10, qword [rsp + 0x78]
add r9, r8
and r9, rcx
movdqu xmm0, xmmword [rax + r9]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1402e0203
bsf edx, edx
add rdx, r9
and rdx, rcx
mov r8b, byte [rax + rdx]
test r8b, r8b
js 0x1402e023c
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
bsf edx, edx
mov r8b, byte [rax + rdx]
lea r9, [rdx - 0x10]
and r9, rcx
mov byte [rax + rdx], r10b
mov byte [r9 + rax + 0x10], r10b
neg rdx
and r8b, 1
movzx ecx, r8b
mov rbx, qword [rsp + 0x70]
sub qword [rbx + 0x10], rcx
imul rcx, rdx, 0xa8
lea rdi, [rax + rcx]
add rcx, rax
add rcx, 0xffffffffffffff60
mov qword [rcx - 8], rsi
lea rdx, [rsp + 0xb0]
mov r8d, 0xa0
call sub.msvcrt.dll_memcpy
inc qword [rbx + 0x18]
jmp 0x1402df0ae
mov rcx, qword [rsp + 0x70]
mov rdx, r14
mov r8, r15
call fcn.1402d9d03
jmp 0x1402df0f4
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_synconce.rs
lea r8, str._home_janus_.cargo_registry_src_index.crates.io_6f17d22bba15001f_winit_0.29.10_src_platform_impl_windows_keyboard_layout.rs
mov edx, 0x2b
call fcn.14007aaa0
jmp 0x1402e037e
lea rax, str.J__
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x1403b4de0]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.14007f9a0
jmp 0x1402e037e
mov ecx, 0x5210
call fcn.1400b2bb0
jmp 0x1402e037e
lea rax, str.J__
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x1403b4de0]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.14007f9a0
lea rax, str.J__
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x1403b4de0]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.14007f9a0
jmp 0x1402e037e
lea rax, str.J__
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x1403b4de0]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.14007f9a0
ud2