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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x4b0
mov rax, qword [0x004115d0]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
xor ebx, ebx
mov r14, rcx
mov qword [rsp + 0x30], rbx
call fcn.00403f70
xor edx, edx
movzx r8d, al
mov rcx, r14
mov rsi, rbx
and r8d, 0x20
mov dword [0x00411b08], eax
or r8d, 2
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rdi, rax
cmp rax, rbx
je 0x404962
test byte [0x00411b08], 0x20
jne 0x404964
lea rax, [rsp + 0x30]
mov r9d, 0x104
xor r8d, r8d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x290]
mov rdx, r14
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_SearchPathW]
cmp eax, ebx
je 0x404959
mov rax, qword [rsp + 0x30]
cmp rax, rbx
jne 0x4045d0
lea rax, [rsp + 0x290]
mov rbp, rbx
mov qword [rsp + 0x30], rax
jmp 0x4045dc
lea rbp, [rsp + 0x290]
mov word [rax - 2], bx
xor r9d, r9d
lea rdx, [0x0040e118]
mov rcx, rdi
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
cmp rax, rbx
je 0x4048e4
mov eax, dword [0x00411b08]
test al, 4
je 0x4047d1
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov r13d, 0x404
mov r15d, 0xc04
mov r12w, ax
cmp ax, r13w
jne 0x40466a
mov r9d, 0x20
lea r8, [rsp + 0x250]
mov ecx, r13d
lea edx, [r9 - 0x18]
mov r12d, r15d
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp eax, ebx
je 0x40466a
lea rdx, [0x0040e184]
lea rcx, [rsp + 0x250]
mov r8d, 3
call sub.msvcrt.dll_wcsncmp
cmp eax, ebx
je 0x40466a
mov r12w, r13w
lea r9, [rsp + 0xf0]
lea r8, [rsp + 0x1a0]
lea rdx, [rsp + 0x40]
movzx ecx, r12w
call fcn.00404408
cmp eax, ebx
je 0x4048ce
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x1a0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
cmp word [rsp + 0xf0], bx
je 0x404703
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0xf0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
cmp r12w, r15w
je 0x404666
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx r13d, ax
cmp ax, r12w
je 0x4047b9
lea r9, [rsp + 0xf0]
lea r8, [rsp + 0x1a0]
lea rdx, [rsp + 0x40]
movzx ecx, ax
call fcn.00404408
cmp eax, ebx
je 0x4048e4
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x1a0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
cmp word [rsp + 0xf0], bx
je 0x4047b9
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0xf0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov ecx, 0x409
cmp cx, r12w
je 0x4048b3
cmp cx, r13w
jmp 0x40487f
test al, 3
je 0x4048e4
call fcn.004041f4
lea r9, [rsp + 0xf0]
lea r8, [rsp + 0x1a0]
lea rdx, [rsp + 0x40]
movzx ecx, ax
movzx r12d, ax
call fcn.00404408
cmp eax, ebx
je 0x4048e4
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x1a0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
cmp word [rsp + 0xf0], bx
je 0x404876
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0xf0]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov ecx, 0x409
cmp cx, r12w
je 0x4048b3
lea r8, [rsp + 0x1a0]
lea rdx, [rsp + 0x40]
xor r9d, r9d
call fcn.00404408
mov r9, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
mov r9, qword [rsp + 0x30]
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call fcn.00404184
mov rsi, rax
cmp rax, rbx
jne 0x4048d3
cmp rsi, rbx
je 0x4048e4
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, rsi
jmp 0x404964
test dil, 1
je 0x404954
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00403f70
test al, 0x38
je 0x404938
mov rax, qword [rsp + 0x30]
lea r8, str._s_s
lea rcx, [rsp + 0x290]
mov r9, rbp
mov edx, 0x104
mov qword [rsp + 0x20], rax
call fcn.004031fc
xor r8d, r8d
lea rcx, [rsp + 0x290]
lea edx, [r8 + 1]
call fcn.00403e9c
jmp 0x404951
call fcn.00403f70
mov rcx, r14
and eax, 0x26
setne bl
xor edx, edx
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov rdi, rax
mov rax, rdi
jmp 0x404964
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.00403050
lea r11, [rsp + 0x4b0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret