Function at 0x1800757a0
Capabilities:
Get keyboard layout

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x180156e60]
mov r15, qword [rax + 0x88]
test rdx, rdx
je 0x180075b65
test r15, r15
je 0x180075b65
mov rax, qword [r15 + 0x50]
cmp byte [rax + 8], 0
je 0x180075b65
mov r14, qword [rdx]
test r14, r14
je 0x180075b61
lea r12, [0x180000000]
mov r13d, 4
xorps xmm7, xmm7
movss xmm8, dword [0x1801326b4]
movss xmm9, dword [0x1801327f0]
nop word [rax + rax]
mov eax, dword [r14 + 0xc]
xor edx, edx
cmp eax, 2
cmove rdx, r14
test rdx, rdx
je 0x180075854
mov rcx, qword [r15 + 0x50]
mov rax, qword [rcx]
mov edx, dword [rdx + 0x18]
call qword [rax + 0x48]
jmp 0x180075b54
xor ebp, ebp
test eax, eax
cmove rbp, r14
test rbp, rbp
je 0x180075b54
mov esi, dword [rbp + 0x20]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov r8, rax
mov edx, 3
mov ecx, esi
call qword [sym.imp.USER32.dll_MapVirtualKeyExA]
mov ebx, eax
lea ecx, [rsi - 0x47]
cmp ecx, 0x96
ja case.0x1800758a5.102
movzx ecx, byte [r12 + rcx + 0x75c1c]
mov edx, dword [r12 + rcx*4 + 0x75b9c]
add rdx, r12
jmp rdx
mov ebx, 0x5b
jmp case.0x1800758a5.102
mov ebx, 0xa5
jmp case.0x1800758a5.102
mov ebx, 0x5c
jmp case.0x1800758a5.102
mov ebx, 0x5d
jmp case.0x1800758a5.102
mov ebx, 0xa3
jmp case.0x1800758a5.102
mov ebx, 0x2c
jmp case.0x1800758a5.102
mov ebx, 0x13
jmp case.0x1800758a5.102
mov ebx, 0x2d
jmp case.0x1800758a5.102
mov ebx, 0x24
jmp case.0x1800758a5.102
mov ebx, 0x21
jmp case.0x1800758a5.102
mov ebx, 0x2e
jmp case.0x1800758a5.102
mov ebx, 0x23
jmp case.0x1800758a5.102
mov ebx, 0x22
jmp case.0x1800758a5.102
mov ebx, 0x26
jmp case.0x1800758a5.102
mov ebx, 0x25
jmp case.0x1800758a5.102
mov ebx, 0x28
jmp case.0x1800758a5.102
mov ebx, 0x27
jmp case.0x1800758a5.102
mov ebx, 0x6f
jmp case.0x1800758a5.102
mov ebx, 0x67
jmp case.0x1800758a5.102
mov ebx, 0x68
jmp case.0x1800758a5.102
mov ebx, 0x69
jmp case.0x1800758a5.102
mov ebx, 0x64
jmp case.0x1800758a5.102
mov ebx, 0x65
jmp case.0x1800758a5.102
mov ebx, 0x66
jmp case.0x1800758a5.102
mov ebx, 0x61
jmp case.0x1800758a5.102
mov ebx, 0x62
jmp case.0x1800758a5.102
mov ebx, 0x63
jmp case.0x1800758a5.102
mov ebx, 0x60
jmp case.0x1800758a5.102
mov ebx, 0x6e
jmp case.0x1800758a5.102
mov ebx, 0x10d
jmp case.0x1800758a5.102
mov ebx, 0x92
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x180075a5a
cmp ecx, 1
jne 0x180075b54
lea eax, [rsi - 8]
mov rbx, qword [r15 + 0x50]
cmp eax, ecx
mov rax, qword [rbx]
jbe 0x180075a0b
cmp esi, 4
cmova esi, r13d
mov rdi, qword [rax + 0x58]
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x1800759f2
cmp ecx, 3
mov eax, 0x30
je 0x1800759f7
mov eax, 0x28
comiss xmm7, dword [rax + rbp]
setb r8b
mov edx, esi
mov rcx, rbx
call rdi
jmp 0x180075b54
mov rdi, qword [rax + 0x60]
cmp esi, 8
jne 0x180075a1a
movaps xmm6, xmm8
jmp 0x180075a1e
movaps xmm6, xmm9
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075a40
cmp ecx, 3
mov eax, 0x30
je 0x180075a45
mov eax, 0x28
mulss xmm6, dword [rax + rbp]
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rbx
call rdi
jmp 0x180075b54
cmp ebx, 0x2c
jne 0x180075ac3
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075a7f
cmp ecx, 3
lea eax, [rbx + 4]
je 0x180075a84
mov eax, 0x28
movss xmm0, dword [rax + rbp]
ucomiss xmm0, xmm7
jne 0x180075ac3
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075ab0
cmp ecx, 3
mov eax, 0x34
je 0x180075ab5
mov eax, 0x2c
movss xmm0, dword [rax + rbp]
comiss xmm0, xmm7
ja 0x180075b65
mov rdi, qword [r15 + 0x50]
mov rax, qword [rdi]
mov rsi, qword [rax + 0x38]
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075af0
cmp ecx, 3
mov eax, 0x30
je 0x180075af5
mov eax, 0x28
movss xmm0, dword [rax + rbp]
comiss xmm0, xmm7
seta r8b
mov edx, ebx
mov rcx, rdi
call rsi
lea eax, [rbx - 0xa0]
cmp eax, 5
ja 0x180075b54
mov rdi, qword [r15 + 0x50]
mov rax, qword [rdi]
mov rsi, qword [rax + 0x40]
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075b40
cmp ecx, 3
mov eax, 0x30
je 0x180075b45
mov eax, 0x28
comiss xmm7, dword [rax + rbp]
setb r8b
mov edx, ebx
mov rcx, rdi
call rsi
mov r14, qword [r14 + 0x10]
test r14, r14
jne 0x180075830
mov al, 1
jmp 0x180075b67
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret