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

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x248]
sub rsp, 0x320
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400cfdf0]
xor rax, rsp
mov qword [rbp + 0x210], rax
mov r15, rdx
mov r13, rcx
movdqa xmm0, xmmword [0x14009d5e0]
movdqu xmmword [rbp - 0x70], xmm0
xor edi, edi
mov word [rbp - 0x80], di
mov r12, 0xffffffffffffffff
mov rdx, r12
inc rdx
cmp word [r15 + rdx*2], di
jne 0x140043a83
lea rcx, [rbp - 0x80]
cmp rdx, 7
ja 0x140043ab1
mov qword [rbp - 0x70], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r15
call fcn.1400537d0
mov word [rbp + rbx - 0x80], di
jmp 0x140043ac4
xor eax, eax
mov byte [rsp + 0x30], al
mov r9, r15
movzx r8d, al
call fcn.1400422c0
nop
call fcn.140045b60
mov rdx, rax
mov r8, r15
mov rcx, r13
call fcn.140046290
mov esi, eax
cmp eax, 0xffffffff
jne 0x14004436d
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov rdx, rax
mov r8, r15
mov rcx, r13
call fcn.140046290
mov esi, eax
cmp eax, 0xffffffff
jne 0x14004436d
mov qword [rbp - 0x60], rdi
lea rdx, [rbp - 0x60]
mov rcx, r13
call fcn.140046190
mov rbx, qword [rbp - 0x60]
test eax, eax
js 0x140044215
test rbx, rbx
je 0x140044215
mov rbx, rdi
mov qword [rsp + 0x20], rbx
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rax
lea rdx, str.HotkeyActionRotateZeroDefault
lea rcx, [rsp + 0x40]
call fcn.140024d50
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400443db
mov r8, rax
lea rdx, [rsp + 0x48]
call fcn.140025110
mov rsi, rax
mov r14, rdi
lea rax, [rsp + 0x20]
cmp rax, rsi
je 0x140043b9c
lea rcx, [rsp + 0x20]
call fcn.1400251f0
mov rbx, qword [rsi]
mov rdi, rbx
mov qword [rsp + 0x20], rbx
mov r14, rbx
test rbx, rbx
je 0x140043b9c
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x48]
test rsi, rsi
je 0x140043bf8
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
cmp eax, 1
mov rdi, r14
jne 0x140043bf3
test rsi, rsi
je 0x140043bf3
mov rcx, qword [rsi]
test rcx, rcx
je 0x140043bd0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi], 0
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140043be6
call fcn.14004d92c
mov qword [rsi + 8], 0
mov edx, 0x18
mov rcx, rsi
call fcn.14004d92c
mov rbx, qword [rsp + 0x20]
test rdi, rdi
je 0x14004442e
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043c24
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140043c24
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x10]
call fcn.14005d138
cmp dword [rbx + 0x10], 1
jne 0x14004442e
xor edi, edi
mov qword [rbx], rdi
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140043c75
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043c56
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140043c68
call fcn.14004d92c
mov qword [rbx + 8], rdi
mov edx, 0x18
mov rcx, rbx
call fcn.14004d92c
mov rbx, rdi
mov qword [rsp + 0x20], rbx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rdx, str.HotkeyActionRotate90Default
lea rcx, [rsp + 0x50]
call fcn.140024d50
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400443e6
mov r8, rax
lea rdx, [rsp + 0x58]
call fcn.140025110
mov rsi, rax
mov r14, rdi
lea rax, [rsp + 0x20]
cmp rax, rsi
je 0x140043ce9
lea rcx, [rsp + 0x20]
call fcn.1400251f0
mov rbx, qword [rsi]
mov rdi, rbx
mov qword [rsp + 0x20], rbx
mov r14, rbx
test rbx, rbx
je 0x140043ce9
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x58]
test rsi, rsi
je 0x140043d45
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
cmp eax, 1
mov rdi, r14
jne 0x140043d40
test rsi, rsi
je 0x140043d40
mov rcx, qword [rsi]
test rcx, rcx
je 0x140043d1d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi], 0
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140043d33
call fcn.14004d92c
mov qword [rsi + 8], 0
mov edx, 0x18
mov rcx, rsi
call fcn.14004d92c
mov rbx, qword [rsp + 0x20]
test rdi, rdi
je 0x140044423
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043d74
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140043d74
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x90]
call fcn.14005d138
cmp dword [rbx + 0x10], 1
jne 0x140044423
xor edi, edi
mov qword [rbx], rdi
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140043dc5
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043da6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140043db8
call fcn.14004d92c
mov qword [rbx + 8], rdi
mov edx, 0x18
mov rcx, rbx
call fcn.14004d92c
mov rbx, rdi
mov qword [rsp + 0x20], rbx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rdx, str.HotkeyActionRotate270Default
lea rcx, [rsp + 0x60]
call fcn.140024d50
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400443f1
mov r8, rax
lea rdx, [rsp + 0x68]
call fcn.140025110
mov rsi, rax
mov r14, rdi
lea rax, [rsp + 0x20]
cmp rax, rsi
je 0x140043e39
lea rcx, [rsp + 0x20]
call fcn.1400251f0
mov rbx, qword [rsi]
mov rdi, rbx
mov qword [rsp + 0x20], rbx
mov r14, rbx
test rbx, rbx
je 0x140043e39
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x68]
test rsi, rsi
je 0x140043e95
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
cmp eax, 1
mov rdi, r14
jne 0x140043e90
test rsi, rsi
je 0x140043e90
mov rcx, qword [rsi]
test rcx, rcx
je 0x140043e6d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi], 0
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140043e83
call fcn.14004d92c
mov qword [rsi + 8], 0
mov edx, 0x18
mov rcx, rsi
call fcn.14004d92c
mov rbx, qword [rsp + 0x20]
test rdi, rdi
je 0x140044418
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043ec4
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140043ec4
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x110]
call fcn.14005d138
cmp dword [rbx + 0x10], 1
jne 0x140044418
xor edi, edi
mov qword [rbx], rdi
mov eax, r12d
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140043f15
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140043ef6
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140043f08
call fcn.14004d92c
mov qword [rbx + 8], rdi
mov edx, 0x18
mov rcx, rbx
call fcn.14004d92c
mov rbx, rdi
mov qword [rsp + 0x20], rbx
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rdx, str.HotkeyActionRotate180Default
lea rcx, [rsp + 0x70]
call fcn.140024d50
nop
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400443fc
mov r8, rax
lea rdx, [rsp + 0x38]
call fcn.140025110
mov rsi, rax
mov r14, rdi
lea rax, [rsp + 0x20]
cmp rax, rsi
je 0x140043f89
lea rcx, [rsp + 0x20]
call fcn.1400251f0
mov rbx, qword [rsi]
mov rdi, rbx
mov qword [rsp + 0x20], rbx
mov r14, rbx
test rbx, rbx
je 0x140043f89
lock inc dword [rbx + 0x10]
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
test rsi, rsi
je 0x140043fe5
mov eax, r12d
lock xadd dword [rsi + 0x10], eax
cmp eax, 1
mov rdi, r14
jne 0x140043fe0
test rsi, rsi
je 0x140043fe0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140043fbd
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi], 0
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140043fd3
call fcn.14004d92c
mov qword [rsi + 8], 0
mov edx, 0x18
mov rcx, rsi
call fcn.14004d92c
mov rbx, qword [rsp + 0x20]
test rdi, rdi
je 0x14004440d
mov rcx, qword [rbx]
test rcx, rcx
je 0x140044014
call qword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x140044014
mov r8, qword [rbx]
mov edx, 0x40
lea rcx, [rbp + 0x190]
call fcn.14005d138
cmp dword [rbx + 0x10], 1
jne 0x14004440d
xor edi, edi
mov qword [rbx], rdi
lock xadd dword [rbx + 0x10], r12d
cmp r12d, 1
jne 0x140044064
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140044045
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140044057
call fcn.14004d92c
mov qword [rbx + 8], rdi
mov edx, 0x18
mov rcx, rbx
call fcn.14004d92c
mov qword [rsp + 0x20], rdi
mov rdx, r15
lea rcx, [rbp + 0x10]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x1400440c9
mov rax, qword [rbp - 0x68]
cmp rax, 2
jb 0x1400440b8
lea rbx, [rbp - 0x80]
cmp rax, 8
cmovae rbx, qword [rbp - 0x80]
mov qword [rbp - 0x70], 2
mov r8d, 4
lea rdx, [0x14009ec28]
mov rcx, rbx
call fcn.1400537d0
mov word [rbx + 4], di
jmp 0x1400441ee
lea r9, [0x14009ec28]
mov edx, 2
jmp 0x1400441df
mov rdx, r15
lea rcx, [rbp + 0x90]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x140044127
mov rax, qword [rbp - 0x68]
cmp rax, 4
jb 0x14004411b
lea rbx, [rbp - 0x80]
cmp rax, 8
cmovae rbx, qword [rbp - 0x80]
mov qword [rbp - 0x70], 4
mov r8d, 8
lea rdx, str.Left
mov rcx, rbx
call fcn.1400537d0
mov word [rbx + 8], di
jmp 0x1400441ee
lea r9, str.Left
jmp 0x1400441da
mov rdx, r15
lea rcx, [rbp + 0x110]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x140044184
mov rax, qword [rbp - 0x68]
cmp rax, 5
jb 0x140044176
lea rbx, [rbp - 0x80]
cmp rax, 8
cmovae rbx, qword [rbp - 0x80]
mov qword [rbp - 0x70], 5
mov r8d, 0xa
lea rdx, str.Right
mov rcx, rbx
call fcn.1400537d0
mov word [rbx + 0xa], di
jmp 0x1400441ee
lea r9, str.Right
mov edx, 5
jmp 0x1400441df
mov rdx, r15
lea rcx, [rbp + 0x190]
call qword [sym.imp.SHLWAPI.dll_StrStrW]
test rax, rax
je 0x1400441ee
mov rax, qword [rbp - 0x68]
cmp rax, 4
jb 0x1400441d3
lea rbx, [rbp - 0x80]
cmp rax, 8
cmovae rbx, qword [rbp - 0x80]
mov qword [rbp - 0x70], 4
mov r8d, 8
lea rdx, str.Down
mov rcx, rbx
call fcn.1400537d0
mov word [rbx + 8], di
jmp 0x1400441ee
lea r9, str.Down
mov edx, 4
xor eax, eax
movzx r8d, al
lea rcx, [rbp - 0x80]
call fcn.1400422c0
lea rbx, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rbx, qword [rbp - 0x80]
call fcn.140045b60
mov rdx, rax
mov r8, rbx
mov rcx, r13
call fcn.140046290
mov esi, eax
mov rbx, qword [rbp - 0x60]
test rbx, rbx
je 0x14004422f
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.14000dba0]
mov rcx, rbx
call rdi
cmp esi, 0xffffffff
jne 0x14004436d
xor eax, eax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov word [rbp - 0x48], ax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov word [rbp - 0x18], ax
xor r9d, r9d
lea r8, str._04x
lea edx, [rsi + 0xa]
lea rcx, [rbp - 0x58]
call fcn.14001d450
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx ecx, ax
and ecx, 0x3ff
lea r9d, [rsi + 0xa]
lea r8, [rbp - 0x28]
lea edx, [rsi + 2]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1400442d2
lea r8, [rbp - 0x28]
lea edx, [rsi + 0xa]
lea rcx, [rbp - 0x58]
call fcn.14005d0b8
lea edx, [rsi + 2]
lea rcx, [rbp - 0x58]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x1400442d2
lea r8, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae r8, qword [rbp - 0x80]
mov rdx, rax
mov rcx, r13
call fcn.140046290
mov esi, eax
cmp eax, 0xffffffff
jne 0x14004436d
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov word [rbp - 0x30], ax
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
mov word [rbp], ax
mov r9d, 9
lea r8, str._04x
mov edx, r9d
lea rcx, [rbp - 0x40]
call fcn.14001d450
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
and ecx, 0x3ff
mov r9d, 9
lea r8, [rbp - 0x10]
lea edx, [r9 - 8]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x14004436d
lea r8, [rbp - 0x10]
mov edx, 9
lea rcx, [rbp - 0x40]
call fcn.14005d0b8
mov edx, 1
lea rcx, [rbp - 0x40]
call qword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
test rax, rax
je 0x14004436d
lea r8, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae r8, qword [rbp - 0x80]
mov rdx, rax
mov rcx, r13
call fcn.140046290
mov esi, eax
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x1400443a9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400443a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140044407
call fcn.14004d92c
mov eax, esi
mov rcx, qword [rbp + 0x210]
xor rcx, rsp
call fcn.14004e4a0
lea r11, [rsp + 0x320]
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.14004ebc0
nop
mov ecx, 0x80004003
call fcn.14004ebc0
nop
mov ecx, 0x80004003
call fcn.14004ebc0
nop
mov ecx, 0x80004003
call fcn.14004ebc0
nop
call fcn.14005cd9c
nop
mov ecx, 0x80004003
call fcn.14004ebc0
int3
mov ecx, 0x80004003
call fcn.14004ebc0
int3
mov ecx, 0x80004003
call fcn.14004ebc0
int3
mov ecx, 0x80004003
call fcn.14004ebc0
int3