Function at 0x490a00
Capabilities:
Check if file exists
Check os version
Get common file path
Get geographical location
Identify system language via api

Disassembly:
push 0xffffffffffffffff
push 0x4c94bb
mov eax, dword fs:[0]
push eax
sub esp, 0x454
mov eax, dword [0x4f3280]
xor eax, esp
mov dword [esp + 0x450], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f3280]
xor eax, esp
push eax
lea eax, [esp + 0x468]
mov dword fs:[0], eax
mov eax, dword [esp + 0x478]
mov ebp, dword [esp + 0x47c]
lea esi, [eax + 0x10]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
mov eax, esi
mov dword [esp + 0x20], 0x1506
call fcn.00490c80
mov edi, dword [esi + 4]
lea ecx, [esp + 0x18]
call fcn.0041dc10
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
cmp esi, edi
mov dword [esp + 0x18], esi
je 0x490a86
call fcn.004a194d
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x1c], esi
je 0x490adf
test edi, edi
jne 0x490a99
call fcn.004a194d
cmp esi, dword [edi + 4]
jne 0x490aa3
call fcn.004a194d
lea ebx, [esi + 0x10]
mov ecx, ebx
call fcn.00403400
cmp eax, 0x104
jge 0x490c4d
cmp esi, dword [edi + 4]
jne 0x490ac2
call fcn.004a194d
mov ecx, ebx
call fcn.004035c0
push eax
push 0x104
push ebp
call fcn.004a4d7c
add esp, 0xc
xor eax, eax
jmp 0x490c52
xor ebx, ebx
push 0x208
lea edx, [esp + 0x25a]
push ebx
push edx
mov word [esp + 0x260], bx
call fcn.004a1d00
add esp, 0xc
push ebx
push 0x25
lea eax, [esp + 0x25c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp eax, ebx
je 0x490c4d
lea ecx, [esp + 0x254]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00431e70
lea edi, [esp + 0x28]
mov dword [esp + 0x470], ebx
call fcn.0048be70
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
call esi
cmp al, 5
jbe 0x490bca
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0x208
lea edx, [esp + 0x4a]
push ebx
push edx
movzx esi, ax
mov word [esp + 0x50], bx
call fcn.004a1d00
mov ebx, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
add esp, 0xc
push 0x104
lea eax, [esp + 0x48]
push eax
movzx esi, si
push 0x59
push esi
call ebx
push 0x4e2ad0
lea ecx, [esp + 0x48]
push 0x105
push ecx
mov edi, eax
call fcn.004a6a5a
add esp, 0xc
mov edx, 0x104
sub edx, edi
push edx
lea eax, [esp + edi*2 + 0x48]
push eax
push 0x5a
push esi
call ebx
lea ecx, [esp + 0x44]
push ecx
lea ebx, [esp + 0x2c]
call fcn.0048c140
mov edi, ebx
call fcn.0048be70
push 0x4e2ad4
jmp 0x490bdf
call esi
movzx ecx, al
cmp ecx, 5
ja 0x490bda
jb 0x490c44
cmp ah, bl
jbe 0x490c44
push 0x4e2afc
lea ebx, [esp + 0x2c]
call fcn.0048c140
mov ecx, ebx
call fcn.004035c0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov ecx, ebx
je 0x490c48
call fcn.004035c0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x490c44
push 0x104
push ebp
push 0x1506
push edi
call dword [sym.imp.USER32.dll_LoadStringW]
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x7fffbffb
push edi
add esi, 0x80004005
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, ebx
call fcn.004069c0
mov eax, esi
jmp 0x490c52
lea ecx, [esp + 0x28]
call fcn.004069c0
mov eax, 0x80004005
mov ecx, dword [esp + 0x468]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x450]
xor ecx, esp
call fcn.004a1723
add esp, 0x460
ret 8