Function at 0x180075800
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 0x180075bc5
test r15, r15
je 0x180075bc5
mov rax, qword [r15 + 0x50]
cmp byte [rax + 8], 0
je 0x180075bc5
mov r14, qword [rdx]
test r14, r14
je 0x180075bc1
lea r12, [0x180000000]
mov r13d, 4
xorps xmm7, xmm7
movss xmm8, dword [0x180132684]
movss xmm9, dword [0x1801327c0]
nop word [rax + rax]
mov eax, dword [r14 + 0xc]
xor edx, edx
cmp eax, 2
cmove rdx, r14
test rdx, rdx
je 0x1800758b4
mov rcx, qword [r15 + 0x50]
mov rax, qword [rcx]
mov edx, dword [rdx + 0x18]
call qword [rax + 0x48]
jmp 0x180075bb4
xor ebp, ebp
test eax, eax
cmove rbp, r14
test rbp, rbp
je 0x180075bb4
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.0x180075905.102
movzx ecx, byte [r12 + rcx + 0x75c7c]
mov edx, dword [r12 + rcx*4 + 0x75bfc]
add rdx, r12
jmp rdx
mov ebx, 0x5b
jmp case.0x180075905.102
mov ebx, 0xa5
jmp case.0x180075905.102
mov ebx, 0x5c
jmp case.0x180075905.102
mov ebx, 0x5d
jmp case.0x180075905.102
mov ebx, 0xa3
jmp case.0x180075905.102
mov ebx, 0x2c
jmp case.0x180075905.102
mov ebx, 0x13
jmp case.0x180075905.102
mov ebx, 0x2d
jmp case.0x180075905.102
mov ebx, 0x24
jmp case.0x180075905.102
mov ebx, 0x21
jmp case.0x180075905.102
mov ebx, 0x2e
jmp case.0x180075905.102
mov ebx, 0x23
jmp case.0x180075905.102
mov ebx, 0x22
jmp case.0x180075905.102
mov ebx, 0x26
jmp case.0x180075905.102
mov ebx, 0x25
jmp case.0x180075905.102
mov ebx, 0x28
jmp case.0x180075905.102
mov ebx, 0x27
jmp case.0x180075905.102
mov ebx, 0x6f
jmp case.0x180075905.102
mov ebx, 0x67
jmp case.0x180075905.102
mov ebx, 0x68
jmp case.0x180075905.102
mov ebx, 0x69
jmp case.0x180075905.102
mov ebx, 0x64
jmp case.0x180075905.102
mov ebx, 0x65
jmp case.0x180075905.102
mov ebx, 0x66
jmp case.0x180075905.102
mov ebx, 0x61
jmp case.0x180075905.102
mov ebx, 0x62
jmp case.0x180075905.102
mov ebx, 0x63
jmp case.0x180075905.102
mov ebx, 0x60
jmp case.0x180075905.102
mov ebx, 0x6e
jmp case.0x180075905.102
mov ebx, 0x10d
jmp case.0x180075905.102
mov ebx, 0x92
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x180075aba
cmp ecx, 1
jne 0x180075bb4
lea eax, [rsi - 8]
mov rbx, qword [r15 + 0x50]
cmp eax, ecx
mov rax, qword [rbx]
jbe 0x180075a6b
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 0x180075a52
cmp ecx, 3
mov eax, 0x30
je 0x180075a57
mov eax, 0x28
comiss xmm7, dword [rax + rbp]
setb r8b
mov edx, esi
mov rcx, rbx
call rdi
jmp 0x180075bb4
mov rdi, qword [rax + 0x60]
cmp esi, 8
jne 0x180075a7a
movaps xmm6, xmm8
jmp 0x180075a7e
movaps xmm6, xmm9
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075aa0
cmp ecx, 3
mov eax, 0x30
je 0x180075aa5
mov eax, 0x28
mulss xmm6, dword [rax + rbp]
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rbx
call rdi
jmp 0x180075bb4
cmp ebx, 0x2c
jne 0x180075b23
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075adf
cmp ecx, 3
lea eax, [rbx + 4]
je 0x180075ae4
mov eax, 0x28
movss xmm0, dword [rax + rbp]
ucomiss xmm0, xmm7
jne 0x180075b23
call fcn.180044d60
nop
call fcn.180044d60
nop
movzx ecx, byte [rax + 0x118]
sub ecx, 1
je 0x180075b10
cmp ecx, 3
mov eax, 0x34
je 0x180075b15
mov eax, 0x2c
movss xmm0, dword [rax + rbp]
comiss xmm0, xmm7
ja 0x180075bc5
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 0x180075b50
cmp ecx, 3
mov eax, 0x30
je 0x180075b55
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 0x180075bb4
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 0x180075ba0
cmp ecx, 3
mov eax, 0x30
je 0x180075ba5
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 0x180075890
mov al, 1
jmp 0x180075bc7
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