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

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x228]
sub rsp, 0x310
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14004a4c0]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov rsi, rdx
mov r14, rcx
call fcn.14001e690
mov rdx, rax
mov r8, rsi
mov rcx, r14
call fcn.14001eaf0
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14001c887
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rdx, rax
mov r8, rsi
mov rcx, r14
call fcn.14001eaf0
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14001c887
xor r15d, r15d
mov qword [rbp - 0x68], r15
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [0x1400368b0]
xor edx, edx
lea r8d, [rbx + 0x18]
lea rcx, [0x140036a40]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14001c2a2
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.ole32.dll_OleRun]
mov ebx, eax
test eax, eax
js 0x14001c294
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
lea r8, [rbp - 0x68]
lea rdx, [0x140036940]
call qword [rax]
mov ebx, eax
mov rcx, qword [rbp - 0x70]
mov rax, qword [rcx]
call qword [rax + 0x10]
test ebx, ebx
jns 0x14001c2a6
mov qword [rbp - 0x68], r15
mov rbx, r15
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov ecx, 0x18
call fcn.1400276cc
mov rdi, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14001c2f4
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], r15
mov dword [rdi + 0x10], 1
lea rcx, str.HotkeyActionRotateZeroDefault
call fcn.140025a60
mov qword [rdi], rax
jmp 0x14001c2f7
mov rdi, r15
mov qword [rsp + 0x50], rdi
test rdi, rdi
jne 0x14001c30c
mov ecx, 0x8007000e
call fcn.1400259b0
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14001c320
mov ecx, 0x80004003
call fcn.1400259b0
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x78]
call fcn.14001f6b0
lea rcx, [rsp + 0x30]
cmp rcx, rax
je 0x14001c34f
mov rbx, qword [rax]
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x14001c34f
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14001c35e
call fcn.140021760
test rbx, rbx
je 0x14001c87c
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001c38d
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x14001c38d
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x100]
call fcn.140027dc0
cmp dword [rbx + 0x10], 1
jne 0x14001c87c
mov qword [rbx], r15
mov rcx, rbx
call fcn.140021760
mov rbx, r15
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x58], rax
mov ecx, 0x18
call fcn.1400276cc
mov rdi, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14001c3f0
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], r15
mov dword [rdi + 0x10], 1
lea rcx, str.HotkeyActionRotate90Default
call fcn.140025a60
mov qword [rdi], rax
jmp 0x14001c3f3
mov rdi, r15
mov qword [rsp + 0x60], rdi
test rdi, rdi
jne 0x14001c408
mov ecx, 0x8007000e
call fcn.1400259b0
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14001c41c
mov ecx, 0x80004003
call fcn.1400259b0
nop
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x80]
call fcn.14001f6b0
lea rcx, [rsp + 0x30]
cmp rcx, rax
je 0x14001c44a
mov rbx, qword [rax]
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x14001c44a
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x14001c458
call fcn.140021760
test rbx, rbx
je 0x14001c871
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001c484
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x14001c484
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp]
call fcn.140027dc0
cmp dword [rbx + 0x10], 1
jne 0x14001c871
mov qword [rbx], r15
mov rcx, rbx
call fcn.140021760
mov rbx, r15
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov ecx, 0x18
call fcn.1400276cc
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14001c4e7
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], r15
mov dword [rdi + 0x10], 1
lea rcx, str.HotkeyActionRotate270Default
call fcn.140025a60
mov qword [rdi], rax
jmp 0x14001c4ea
mov rdi, r15
mov qword [rsp + 0x68], rdi
test rdi, rdi
jne 0x14001c4ff
mov ecx, 0x8007000e
call fcn.1400259b0
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14001c513
mov ecx, 0x80004003
call fcn.1400259b0
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x70]
call fcn.14001f6b0
lea rcx, [rsp + 0x30]
cmp rcx, rax
je 0x14001c542
mov rbx, qword [rax]
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x14001c542
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14001c551
call fcn.140021760
test rbx, rbx
je 0x14001c866
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001c580
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x14001c580
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x80]
call fcn.140027dc0
cmp dword [rbx + 0x10], 1
jne 0x14001c866
mov qword [rbx], r15
mov rcx, rbx
call fcn.140021760
mov rbx, r15
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x48], rax
mov ecx, 0x18
call fcn.1400276cc
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14001c5e3
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 8], r15
mov dword [rdi + 0x10], 1
lea rcx, str.HotkeyActionRotate180Default
call fcn.140025a60
mov qword [rdi], rax
jmp 0x14001c5e6
mov rdi, r15
mov qword [rsp + 0x40], rdi
test rdi, rdi
jne 0x14001c5fb
mov ecx, 0x8007000e
call fcn.1400259b0
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
jne 0x14001c60f
mov ecx, 0x80004003
call fcn.1400259b0
nop
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x38]
call fcn.14001f6b0
lea rcx, [rsp + 0x30]
cmp rcx, rax
je 0x14001c63e
mov rbx, qword [rax]
mov qword [rsp + 0x30], rbx
test rbx, rbx
je 0x14001c63e
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14001c64d
call fcn.140021760
test rbx, rbx
je 0x14001c85b
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001c67c
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x14001c67c
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x180]
call fcn.140027dc0
cmp dword [rbx + 0x10], 1
jne 0x14001c85b
mov qword [rbx], r15
mov rcx, rbx
call fcn.140021760
mov rdx, rsi
lea rcx, [rbp + 0x100]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14001c6af
lea rdx, [0x140038958]
jmp 0x14001c704
mov rdx, rsi
lea rcx, [rbp]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14001c6ca
lea rdx, str.Left
jmp 0x14001c704
mov rdx, rsi
lea rcx, [rbp + 0x80]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14001c6e8
lea rdx, str.Right
jmp 0x14001c704
mov rdx, rsi
lea rcx, [rbp + 0x180]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x14001c70d
lea rdx, str.Down
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_StrCpyW]
call fcn.14001e690
mov rdx, rax
mov r8, rsi
mov rcx, r14
call fcn.14001eaf0
mov ebx, eax
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x14001c731
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp ebx, 0xffffffff
jne 0x14001c887
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov word [rbp - 0x50], ax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov word [rbp - 0x20], ax
xor r9d, r9d
lea r8, str._04x
lea edx, [rbx + 0xa]
lea rcx, [rbp - 0x60]
call fcn.140028108
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
and ecx, 0x3ff
lea r9d, [rbx + 0xa]
lea r8, [rbp - 0x30]
lea edx, [rbx + 2]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14001c7c9
lea r8, [rbp - 0x30]
lea edx, [rbx + 0xa]
lea rcx, [rbp - 0x60]
call fcn.140027d38
lea edx, [rbx + 2]
lea rcx, [rbp - 0x60]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x14001c7c9
mov r8, rsi
mov rdx, rax
mov rcx, r14
call fcn.14001eaf0
mov ebx, eax
cmp eax, 0xffffffff
jne 0x14001c887
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov word [rbp - 0x38], ax
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rax
mov word [rbp - 8], ax
mov r9d, 9
lea r8, str._04x
mov edx, r9d
lea rcx, [rbp - 0x48]
call fcn.140028108
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
and ecx, 0x3ff
mov r9d, 9
lea r8, [rbp - 0x18]
lea edx, [r9 - 8]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14001c887
lea r8, [rbp - 0x18]
mov edx, 9
lea rcx, [rbp - 0x48]
call fcn.140027d38
mov edx, 1
lea rcx, [rbp - 0x48]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x14001c887
mov r8, rsi
mov rdx, rax
mov rcx, r14
call fcn.14001eaf0
mov ebx, eax
jmp 0x14001c887
mov ecx, 0x80004003
call fcn.1400259b0
int3
mov ecx, 0x80004003
call fcn.1400259b0
int3
mov ecx, 0x80004003
call fcn.1400259b0
int3
mov ecx, 0x80004003
call fcn.1400259b0
nop
mov eax, ebx
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.140027300
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret