Function at 0x1400f4020
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r14, r8
mov edi, edx
mov esi, ecx
mov rax, qword [0x14017b818]
xor rax, rsp
mov qword [rsp + 0xb0], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov eax, 7
movq xmm0, rax
pslldq xmm0, 8
movdqu xmmword [rsp + 0xa0], xmm0
mov word [rsp + 0x90], 0
movdqu xmmword [rsp + 0x80], xmm0
mov word [rsp + 0x70], 0
lea rcx, [0x14014ae76]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400f4159
movsxd rcx, esi
lea rdx, str.GetSystemPreferredUILanguages
mov rdx, qword [rdx + rcx*8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
test rax, rax
je 0x1400f4159
or edi, 8
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x4c], 0
lea rdx, [rsp + 0x50]
lea r9, [rsp + 0x4c]
xor r8d, r8d
mov ecx, edi
call rsi
test eax, eax
je 0x1400f4159
mov edx, dword [rsp + 0x4c]
test edx, edx
je 0x1400f4159
lea rcx, [rsp + 0x30]
mov r8, rcx
call fcn.140098200
mov r8, qword [rsp + 0x30]
lea rdx, [rsp + 0x50]
lea r9, [rsp + 0x4c]
mov ecx, edi
call rsi
test eax, eax
je 0x1400f4159
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x1400f4159
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.140120930
mov rsi, rax
mov rax, qword [rsp + 0xa8]
cmp rax, rsi
jae 0x1400f4357
lea rcx, [rsp + 0x90]
mov rdx, rsi
mov r9, rbx
call fcn.140005da0
jmp 0x1400f4620
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ebx, ax
cmp ebx, 0x1400
je 0x1400f41c4
lea rdi, [rsp + 0x50]
mov edx, 0x59
mov r9d, 9
mov ecx, ebx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp eax, 2
jl 0x1400f41c4
add eax, 0xffffffff
movsxd rsi, eax
mov rax, qword [rsp + 0xa8]
cmp rax, rsi
jae 0x1400f41cc
lea rcx, [rsp + 0x90]
lea r9, [rsp + 0x50]
mov rdx, rsi
call fcn.140005da0
cmp qword [rsp + 0x88], 7
ja 0x1400f420f
lea rax, [rsp + 0x70]
jmp 0x1400f4214
xor r15d, r15d
jmp 0x1400f44c3
cmp rax, 7
jbe 0x1400f41dc
mov rbp, qword [rsp + 0x90]
jmp 0x1400f41e4
lea rbp, [rsp + 0x90]
mov qword [rsp + 0xa0], rsi
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.14011d3a0
mov word [rbp + rsi*2], 0
cmp qword [rsp + 0x88], 7
jbe 0x1400f41bd
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x80], 0
mov word [rax], 0
test ebx, 0xfc00
je 0x1400f4273
lea r8, [rsp + 0x50]
mov edx, 0x5a
mov r9d, 9
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp eax, 2
jl 0x1400f4273
add eax, 0xffffffff
movsxd rsi, eax
mov rax, qword [rsp + 0x88]
cmp rax, rsi
jae 0x1400f436e
lea rcx, [rsp + 0x70]
lea r9, [rsp + 0x50]
mov rdx, rsi
call fcn.140005da0
cmp qword [rsp + 0x80], 0
je 0x1400f44b0
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov rbp, qword [rsp + 0xa0]
cmp qword [rsp + 0xa8], 7
jbe 0x1400f4306
mov rbx, qword [rsp + 0x90]
cmp rbp, 7
jbe 0x1400f4314
mov rsi, rbp
or rsi, 7
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
cmovae rsi, rax
mov rcx, rsi
add rcx, 1
js 0x1400f4724
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400f4382
cmp rcx, 0xffffffffffffffd9
jae 0x1400f4724
add rcx, 0x27
call fcn.14011a310
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x1400f438a
lea rbx, [rsp + 0x90]
cmp rbp, 7
ja 0x1400f42ad
movdqu xmm0, xmmword [rbx]
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], 7
mov esi, 7
cmp rsi, rbp
jne 0x1400f43b1
mov word [rsp + 0x20], 0x2d
lea rcx, [rsp + 0x50]
mov edx, 1
mov r9d, 1
call fcn.14000e570
mov rdi, rax
jmp 0x1400f43d5
cmp rax, 7
jbe 0x1400f45f9
mov rdi, qword [rsp + 0x90]
jmp 0x1400f4601
cmp rax, 7
jbe 0x1400f46e5
mov rbx, qword [rsp + 0x70]
jmp 0x1400f46ea
call fcn.14011a310
mov rcx, rax
mov qword [rsp + 0x50], rcx
lea r8, [rbp + 2]
add r8, rbp
mov rdx, rbx
call fcn.14011d3a0
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rsi
cmp rsi, rbp
je 0x1400f4336
lea rax, [rbp + 1]
mov qword [rsp + 0x60], rax
mov rax, rdi
cmp rsi, 7
jbe 0x1400f43c8
mov rax, qword [rsp + 0x50]
mov word [rax + rbp*2], 0x2d
mov word [rax + rbp*2 + 2], 0
mov r8, qword [rsp + 0x80]
cmp qword [rsp + 0x88], 7
jbe 0x1400f43ef
mov rax, qword [rsp + 0x70]
jmp 0x1400f43f4
lea rax, [rsp + 0x70]
mov rcx, qword [rdi + 0x10]
mov rbp, qword [rdi + 0x18]
mov rdx, rbp
sub rdx, rcx
cmp rdx, r8
jae 0x1400f441f
mov qword [rsp + 0x20], r8
mov rcx, rdi
mov rdx, r8
mov r9, rax
call fcn.140009dd0
mov rdi, rax
jmp 0x1400f4448
lea rsi, [rcx + r8]
mov qword [rdi + 0x10], rsi
mov rbx, rdi
cmp rbp, 8
jb 0x1400f4433
mov rbx, qword [rdi]
lea rcx, [rbx + rcx*2]
add r8, r8
mov rdx, rax
call fcn.14011d3a0
mov word [rbx + rsi*2], 0
mov rcx, r14
mov rdx, rdi
call fcn.1400253a0
mov rax, qword [rsp + 0x68]
cmp rax, 8
jb 0x1400f44a7
add rax, 1
js 0x1400f471d
mov rcx, qword [rsp + 0x50]
add rax, rax
cmp rax, 0x1000
jb 0x1400f44a2
test cl, 0x1f
jne 0x1400f471d
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1400f471d
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x1400f471d
call fcn.14011a350
mov qword [rsp + 0x68], 7
lea rdx, [rsp + 0x90]
mov rcx, r14
call fcn.1400253a0
mov r15b, 1
mov rax, qword [rsp + 0x88]
cmp rax, 8
jb 0x1400f451a
add rax, 1
js 0x1400f471d
mov rcx, qword [rsp + 0x70]
add rax, rax
cmp rax, 0x1000
jb 0x1400f4515
test cl, 0x1f
jne 0x1400f471d
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1400f471d
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x1400f471d
call fcn.14011a350
mov rax, qword [rsp + 0xa8]
cmp rax, 8
jb 0x1400f4574
add rax, 1
js 0x1400f471d
mov rcx, qword [rsp + 0x90]
add rax, rax
cmp rax, 0x1000
jb 0x1400f456f
test cl, 0x1f
jne 0x1400f471d
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1400f471d
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x1400f471d
call fcn.14011a350
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400f45d6
mov rax, qword [rsp + 0x40]
sub rax, rcx
js 0x1400f471d
cmp rax, 0x1000
jb 0x1400f45be
test cl, 0x1f
jne 0x1400f471d
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x1400f471d
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
mov rcx, rax
jae 0x1400f471d
call fcn.14011a350
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.14011a370
mov eax, r15d
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea rdi, [rsp + 0x90]
mov qword [rsp + 0xa0], rsi
mov r8, rsi
add r8, rsi
mov rcx, rdi
mov rdx, rbx
call fcn.14011d3a0
mov word [rdi + rsi*2], 0
mov r15b, 1
cmp qword [rsp + 0xa0], 0
je 0x1400f44c3
lea rsi, [rsp + 0x90]
nop word [rax + rax]
mov rcx, r14
mov rdx, rsi
call fcn.1400253a0
mov rax, qword [rsp + 0xa0]
lea rbx, [rbx + rax*2]
add rbx, 2
mov rcx, rbx
call fcn.140120930
mov rdi, rax
mov rax, qword [rsp + 0xa8]
cmp rax, rdi
jae 0x1400f46a0
mov rcx, rsi
mov rdx, rdi
mov r9, rbx
call fcn.140005da0
cmp qword [rsp + 0xa0], 0
jne 0x1400f4640
jmp 0x1400f44c3
mov rbp, rsi
cmp rax, 7
jbe 0x1400f46b1
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0xa0], rdi
mov r8, rdi
add r8, rdi
mov rcx, rbp
mov rdx, rbx
call fcn.14011d3a0
mov word [rbp + rdi*2], 0
cmp qword [rsp + 0xa0], 0
jne 0x1400f4640
jmp 0x1400f44c3
lea rbx, [rsp + 0x70]
mov qword [rsp + 0x80], rsi
lea r8, [rsi + rsi]
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14011d3a0
mov word [rbx + rsi*2], 0
cmp qword [rsp + 0x80], 0
jne 0x1400f4282
jmp 0x1400f44b0
call fcn.140120f80
ud2
call fcn.14011ae10
ud2
mov rax, rcx
mov ecx, 3
mov edx, 0x30
mov r8, rax
jmp 0x1400f4020