Function at 0x14002e30c
Capabilities:
Get geographical location
Get keyboard layout
Identify system language via api

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x238]
sub rsp, 0x310
mov rax, qword [0x1400a1df8]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov rsi, rdx
mov r15, rcx
xor r12d, r12d
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov rcx, rdx
call fcn.140048168
mov r8, rax
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.14002d2f4
nop
call fcn.1400303d8
mov rdx, rax
mov r8, rsi
mov rcx, r15
call fcn.140030ae8
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14002e94c
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rdx, rax
mov r8, rsi
mov rcx, r15
call fcn.140030ae8
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14002e94c
mov qword [rsp + 0x70], r12
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.140030990
lea r13d, [r12 + 1]
mov rcx, qword [rsp + 0x70]
test eax, eax
js 0x14002e7fc
test rcx, rcx
je 0x14002e7fc
mov ebx, r12d
mov qword [rsp + 0x20], rbx
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rdx, str.HotkeyActionRotateZeroDefault
lea rcx, [rsp + 0x38]
call fcn.140017f58
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002e9b0
mov r8, rax
lea rdx, [rsp + 0x40]
call fcn.1400182e0
mov r14, rax
mov edi, r12d
lea rax, [rsp + 0x20]
cmp rax, r14
je 0x14002e456
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rbx, qword [r14]
mov qword [rsp + 0x20], rbx
mov rdi, rbx
test rbx, rbx
je 0x14002e456
lock add dword [rbx + 0x10], r13d
mov rbx, qword [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.140018378
test rdi, rdi
je 0x14002e475
mov rcx, qword [rdi]
test rcx, rcx
je 0x14002e475
call qword [sym.imp.OLEAUT32.dll_VariantInit]
jmp 0x14002e478
mov eax, r12d
mov r14d, 0x40
test eax, eax
je 0x14002e49b
test rdi, rdi
je 0x14002e48c
mov r8, qword [rbx]
jmp 0x14002e48f
mov r8, r12
mov rdx, r14
lea rcx, [rbp]
call fcn.140047ecc
test rdi, rdi
je 0x14002e9a5
cmp dword [rbx + 0x10], r13d
jne 0x14002e9a5
mov qword [rbx], r12
lea rcx, [rsp + 0x20]
call fcn.140018378
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rdx, str.HotkeyActionRotate90Default
lea rcx, [rsp + 0x48]
call fcn.140017f58
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002e9bb
mov r8, rax
lea rdx, [rsp + 0x50]
call fcn.1400182e0
mov rbx, rax
lea rax, [rsp + 0x20]
cmp rax, rbx
je 0x14002e51b
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rbx, qword [rbx]
mov qword [rsp + 0x20], rbx
test rbx, rbx
je 0x14002e520
lock add dword [rbx + 0x10], r13d
mov rbx, qword [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.140018378
test rbx, rbx
je 0x14002e53f
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002e53f
call qword [sym.imp.OLEAUT32.dll_VariantInit]
jmp 0x14002e542
mov eax, r12d
test eax, eax
je 0x14002e562
test rbx, rbx
je 0x14002e550
mov r8, qword [rbx]
jmp 0x14002e553
mov r8, r12
mov rdx, r14
lea rcx, [rbp + 0x80]
call fcn.140047ecc
test rbx, rbx
je 0x14002e99a
cmp dword [rbx + 0x10], r13d
jne 0x14002e99a
mov qword [rbx], r12
lea rcx, [rsp + 0x20]
call fcn.140018378
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
lea rdx, str.HotkeyActionRotate270Default
lea rcx, [rsp + 0x58]
call fcn.140017f58
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002e9c6
mov r8, rax
lea rdx, [rsp + 0x60]
call fcn.1400182e0
mov rbx, rax
lea rax, [rsp + 0x20]
cmp rax, rbx
je 0x14002e5e2
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rbx, qword [rbx]
mov qword [rsp + 0x20], rbx
test rbx, rbx
je 0x14002e5e7
lock add dword [rbx + 0x10], r13d
mov rbx, qword [rsp + 0x20]
lea rcx, [rsp + 0x60]
call fcn.140018378
test rbx, rbx
je 0x14002e606
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002e606
call qword [sym.imp.OLEAUT32.dll_VariantInit]
jmp 0x14002e609
mov eax, r12d
test eax, eax
je 0x14002e629
test rbx, rbx
je 0x14002e617
mov r8, qword [rbx]
jmp 0x14002e61a
mov r8, r12
mov rdx, r14
lea rcx, [rbp + 0x100]
call fcn.140047ecc
test rbx, rbx
je 0x14002e9e7
cmp dword [rbx + 0x10], r13d
jne 0x14002e9e7
mov qword [rbx], r12
lea rcx, [rsp + 0x20]
call fcn.140018378
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
lea rdx, str.HotkeyActionRotate180Default
lea rcx, [rsp + 0x68]
call fcn.140017f58
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002e9d1
mov r8, rax
lea rdx, [rsp + 0x28]
call fcn.1400182e0
mov rbx, rax
lea rax, [rsp + 0x20]
cmp rax, rbx
je 0x14002e6a9
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rbx, qword [rbx]
mov qword [rsp + 0x20], rbx
test rbx, rbx
je 0x14002e6ae
lock add dword [rbx + 0x10], r13d
mov rbx, qword [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.140018378
test rbx, rbx
je 0x14002e6cd
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002e6cd
call qword [sym.imp.OLEAUT32.dll_VariantInit]
jmp 0x14002e6d0
mov eax, r12d
test eax, eax
je 0x14002e6f0
test rbx, rbx
je 0x14002e6de
mov r8, qword [rbx]
jmp 0x14002e6e1
mov r8, r12
mov rdx, r14
lea rcx, [rbp + 0x180]
call fcn.140047ecc
test rbx, rbx
je 0x14002e9dc
cmp dword [rbx + 0x10], r13d
jne 0x14002e9dc
lfence
mov rax, qword [rsp + 0x20]
mov qword [rax], r12
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rdx, rsi
lea rcx, [rbp]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14002e73f
lea rcx, [0x14007ebb8]
call fcn.140048168
lea rdx, [0x14007ebb8]
jmp 0x14002e7bb
mov rdx, rsi
lea rcx, [rbp + 0x80]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14002e769
lea rcx, str.Left
call fcn.140048168
lea rdx, str.Left
jmp 0x14002e7bb
mov rdx, rsi
lea rcx, [rbp + 0x100]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14002e793
lea rcx, str.Right
call fcn.140048168
lea rdx, str.Right
jmp 0x14002e7bb
mov rdx, rsi
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14002e7c8
lea rcx, str.Down
call fcn.140048168
lea rdx, str.Down
mov r8, rax
lea rcx, [rsp + 0x78]
call fcn.14002d2f4
lea rbx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rbx, qword [rsp + 0x78]
call fcn.1400303d8
mov rdx, rax
mov r8, rbx
mov rcx, r15
call fcn.140030ae8
mov ebx, eax
lea rcx, [rsp + 0x20]
call fcn.140018378
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002e80e
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140078a80]
cmp ebx, 0xffffffff
jne 0x14002e94c
lea esi, [rbx + 0x13]
mov r8d, esi
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.14003b440
mov r8d, esi
xor edx, edx
lea rcx, [rbp - 0x38]
call fcn.14003b440
xor r9d, r9d
lea r8, str._04x
lea edi, [rbx + 0xa]
mov edx, edi
lea rcx, [rbp - 0x68]
call fcn.140012a24
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
mov r14d, 0x3ff
and ecx, r14d
mov r9d, edi
lea r8, [rbp - 0x38]
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14002e8bb
lea r8, [rbp - 0x38]
mov edx, edi
lea rcx, [rbp - 0x68]
call fcn.140047e4c
mov edx, r13d
lea rcx, [rbp - 0x68]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x14002e8bb
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae r8, qword [rsp + 0x78]
mov rdx, rax
mov rcx, r15
call fcn.140030ae8
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14002e94c
mov r8, rsi
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.14003b440
mov r8, rsi
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.14003b440
mov r9d, edi
lea r8, str._04x
mov rdx, rdi
lea rcx, [rbp - 0x50]
call fcn.140012a24
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
and ecx, r14d
mov r9d, edi
lea r8, [rbp - 0x20]
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14002e94c
lea r8, [rbp - 0x20]
mov rdx, rdi
lea rcx, [rbp - 0x50]
call fcn.140047e4c
mov edx, r13d
lea rcx, [rbp - 0x50]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x14002e94c
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae r8, qword [rsp + 0x78]
mov rdx, rax
mov rcx, r15
call fcn.140030ae8
mov ebx, eax
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x14002e968
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
call fcn.140013b38
mov eax, ebx
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.140037490
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004003
call fcn.140037b00
int3
mov ecx, 0x80004003
call fcn.140037b00
nop
mov ecx, 0x80004003
call fcn.140037b00
nop
mov ecx, 0x80004003
call fcn.140037b00
nop
mov ecx, 0x80004003
call fcn.140037b00
nop
mov ecx, 0x80004003
call fcn.140037b00
nop
mov ecx, 0x80004003
call fcn.140037b00
int3
mov ecx, 0x80004003
call fcn.140037b00
int3