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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3c0]
sub rsp, 0x4c0
mov rax, qword [0x7ff7c1620328]
xor rax, rsp
mov qword [rbp + 0x3b0], rax
xor ebx, ebx
mov word [rsp + 0x38], r8w
mov dword [rsp + 0x40], edx
movzx r14d, r8w
mov qword [rsp + 0x48], rcx
mov r15d, edx
mov qword [rsp + 0x30], rbx
mov r12, rcx
test rcx, rcx
je 0x7ff7c15bbdc7
test edx, 0xffffffe3
jne 0x7ff7c15bbdc7
test r8w, r8w
jne 0x7ff7c15bb60d
test r15b, 0x10
jne 0x7ff7c15bbdc7
call fcn.7ff7c15bb09c
mov dword [0x7ff7c16212bc], eax
xor edx, edx
and eax, 0x20
mov rcx, r12
or eax, 2
mov rdi, rbx
mov r8d, eax
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
test rax, rax
je 0x7ff7c15bbdc7
test byte [0x7ff7c16212bc], 0x20
jne 0x7ff7c15bbdc9
lea rax, [rsp + 0x30]
mov r9d, 0x104
mov qword [rsp + 0x28], rax
xor r8d, r8d
lea rax, [rbp + 0x1a0]
mov rdx, r12
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
je 0x7ff7c15bbdbe
mov rax, qword [rsp + 0x30]
test rax, rax
jne 0x7ff7c15bb695
lea rax, [rbp + 0x1a0]
mov r12, rbx
mov qword [rsp + 0x30], rax
jmp 0x7ff7c15bb6a0
lea r12, [rbp + 0x1a0]
mov word [rax - 2], bx
xor r9d, r9d
lea rdx, [0x7ff7c15f9568]
mov rcx, rsi
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
test rax, rax
je 0x7ff7c15bbb06
test r14w, r14w
jne 0x7ff7c15bbd2a
mov eax, dword [0x7ff7c16212bc]
test al, 4
je 0x7ff7c15bbb8f
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx r14d, ax
mov r13d, 0x404
mov eax, 0xc04
cmp r14w, r13w
jne 0x7ff7c15bb736
mov r9d, 0x20
lea r8, [rbp + 0x160]
mov ecx, r13d
mov r14d, eax
lea edx, [r9 - 0x18]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x7ff7c15bb736
mov r8d, 3
lea rdx, [0x7ff7c15f95b4]
lea rcx, [rbp + 0x160]
call qword [sym.imp.msvcrt.dll_wcsncmp]
test eax, eax
je 0x7ff7c15bb736
movzx r14d, r13w
mov eax, r15d
lea r13, str.MUI_04hx
and eax, 8
mov r15d, 0x55
mov dword [rsp + 0x3c], eax
test eax, eax
je 0x7ff7c15bb81f
lea r9, [rbp + 0xb0]
movzx ecx, r14w
lea r8, [rbp]
lea rdx, [rsp + 0x50]
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbafd
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bb79a
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bb79d
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
test r9, r9
je 0x7ff7c15bb7c4
lea r8, [rbp]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bb7c7
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
cmp word [rbp + 0xb0], bx
je 0x7ff7c15bb801
test r9, r9
je 0x7ff7c15bb7f5
lea r8, [rbp + 0xb0]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
jmp 0x7ff7c15bb7f8
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
mov eax, 0xc04
cmp r14w, ax
jne 0x7ff7c15bb923
mov eax, dword [rsp + 0x3c]
mov r14d, 0x404
jmp 0x7ff7c15bb74d
movzx r9d, r14w
lea rcx, [rsp + 0x50]
mov r8, r13
mov rdx, r15
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bb852
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
jmp 0x7ff7c15bb855
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
xor r9d, r9d
lea r8, [rbp]
lea rdx, [rsp + 0x50]
movzx ecx, r14w
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bb8c4
lea rcx, [rbp]
call fcn.7ff7c15bbf40
test ax, ax
je 0x7ff7c15bb8c4
movzx r9d, ax
lea rcx, [rsp + 0x50]
mov r8, r13
mov rdx, r15
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bb8b8
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
jmp 0x7ff7c15bb8bb
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
mov eax, 0xc04
cmp r14w, ax
je 0x7ff7c15bb810
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx r15d, ax
cmp ax, r14w
je 0x7ff7c15bbaaa
movzx r9d, ax
lea rcx, [rsp + 0x50]
mov r8, r13
mov edx, 0x55
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bba35
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
jmp 0x7ff7c15bba38
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx r15d, ax
cmp ax, r14w
je 0x7ff7c15bb9ec
lea r9, [rbp + 0xb0]
movzx ecx, ax
lea r8, [rbp]
lea rdx, [rsp + 0x50]
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbb06
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bb97b
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bb97e
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
test r9, r9
je 0x7ff7c15bb9a1
lea r8, [rbp]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bb9a4
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
cmp word [rbp + 0xb0], bx
je 0x7ff7c15bb9f1
test r9, r9
je 0x7ff7c15bb9d3
lea r8, [rbp + 0xb0]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bb9d6
mov rdi, rbx
test rdi, rdi
je 0x7ff7c15bb9f1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, rdi
jmp 0x7ff7c15bbdc9
mov r9, qword [rsp + 0x30]
mov eax, 0x409
cmp ax, r14w
je 0x7ff7c15bbaed
cmp ax, r15w
je 0x7ff7c15bbaed
mov ecx, eax
lea r8, [rbp]
xor r9d, r9d
lea rdx, [rsp + 0x50]
call fcn.7ff7c15bb528
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bbae1
lea r8, [rsp + 0x50]
jmp 0x7ff7c15bbacc
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
xor r9d, r9d
lea r8, [rbp]
lea rdx, [rsp + 0x50]
movzx ecx, r15w
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbaaa
lea rcx, [rbp]
call fcn.7ff7c15bbf40
test ax, ax
je 0x7ff7c15bbaaa
movzx r9d, ax
lea edx, [rdi + 0x55]
mov r8, r13
lea rcx, [rsp + 0x50]
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bba9c
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bba9f
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
jmp 0x7ff7c15bbaaf
mov r9, qword [rsp + 0x30]
mov eax, 0x409
cmp ax, r14w
je 0x7ff7c15bbaed
cmp ax, r15w
je 0x7ff7c15bbaed
test r9, r9
je 0x7ff7c15bbae1
lea r8, str.MUI0409
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bbae4
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
test r9, r9
je 0x7ff7c15bbafa
xor r8d, r8d
jmp 0x7ff7c15bbd89
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
test byte [rsp + 0x40], 0x10
je 0x7ff7c15bbb32
movzx r9d, word [rsp + 0x38]
lea rdx, [0x7ff7c15f9568]
mov r8d, 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
test rax, rax
je 0x7ff7c15bbdbe
test sil, 1
je 0x7ff7c15bbdb9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.7ff7c15bb09c
test al, 0x38
je 0x7ff7c15bbd9c
mov rax, qword [rsp + 0x30]
lea r8, str._s_s
mov r9, r12
mov qword [rsp + 0x20], rax
mov edx, 0x104
lea rcx, [rbp + 0x1a0]
call fcn.7ff7c15bae88
xor r8d, r8d
lea rcx, [rbp + 0x1a0]
lea edx, [r8 + 1]
call fcn.7ff7c15bafd4
jmp 0x7ff7c15bbdb6
test al, 3
je 0x7ff7c15bbb06
call fcn.7ff7c15bb30c
movzx r14d, ax
test r15b, 8
je 0x7ff7c15bbc63
lea r9, [rbp + 0xb0]
movzx ecx, ax
lea r8, [rbp]
lea rdx, [rsp + 0x50]
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbb06
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bbbec
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
test rdi, rdi
jne 0x7ff7c15bb9db
test r9, r9
je 0x7ff7c15bbc13
lea r8, [rbp]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bbc16
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
cmp word [rbp + 0xb0], bx
je 0x7ff7c15bbc55
test r9, r9
je 0x7ff7c15bbc49
lea r8, [rbp + 0xb0]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bbc4c
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
mov eax, 0x409
cmp ax, r14w
jmp 0x7ff7c15bba04
lea r13, str.MUI_04hx
movzx r9d, r14w
mov r15d, 0x55
lea rcx, [rsp + 0x50]
mov r8, r13
mov edx, r15d
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bbca1
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
test rdi, rdi
jne 0x7ff7c15bb9db
xor r9d, r9d
lea r8, [rbp]
lea rdx, [rsp + 0x50]
movzx ecx, r14w
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbd17
lea rcx, [rbp]
call fcn.7ff7c15bbf40
test ax, ax
je 0x7ff7c15bbd17
movzx r9d, ax
lea rcx, [rsp + 0x50]
mov r8, r13
mov rdx, r15
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bbd09
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov r9, qword [rsp + 0x30]
mov rdi, rax
jmp 0x7ff7c15bbd0c
mov rdi, rbx
test rdi, rdi
jne 0x7ff7c15bb9db
jmp 0x7ff7c15bbd1c
mov r9, qword [rsp + 0x30]
mov eax, 0x409
cmp ax, r14w
jmp 0x7ff7c15bbabe
test byte [0x7ff7c16212bc], 7
je 0x7ff7c15bbb06
test r15b, 8
je 0x7ff7c15bbd5c
xor r9d, r9d
lea r8, [rbp]
lea rdx, [rsp + 0x50]
movzx ecx, r14w
call fcn.7ff7c15bb528
test eax, eax
je 0x7ff7c15bbb06
jmp 0x7ff7c15bbd76
movzx r9d, r14w
lea r8, str.MUI_04hx
mov edx, 0x55
lea rcx, [rsp + 0x50]
call fcn.7ff7c15bae88
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x7ff7c15bbafd
lea r8, [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.7ff7c15bb2a0
mov rdi, rax
jmp 0x7ff7c15bbafd
call fcn.7ff7c15bb09c
mov rcx, qword [rsp + 0x48]
test al, 0x26
setne bl
xor edx, edx
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rsi, rax
mov rax, rsi
jmp 0x7ff7c15bbdc9
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rcx, qword [rbp + 0x3b0]
xor rcx, rsp
call fcn.7ff7c15e78d0
mov rbx, qword [rsp + 0x508]
add rsp, 0x4c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret