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

Disassembly:
push 0xffffffffffffffff
push 0x4c94eb
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.00490e50
mov edi, dword [esi + 4]
lea ecx, [esp + 0x18]
call fcn.0042dcc0
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
cmp esi, edi
mov dword [esp + 0x18], esi
je 0x490c56
call fcn.004a1a9d
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x1c], esi
je 0x490caf
test edi, edi
jne 0x490c69
call fcn.004a1a9d
cmp esi, dword [edi + 4]
jne 0x490c73
call fcn.004a1a9d
lea ebx, [esi + 0x10]
mov ecx, ebx
call fcn.004035a0
cmp eax, 0x104
jge 0x490e1d
cmp esi, dword [edi + 4]
jne 0x490c92
call fcn.004a1a9d
mov ecx, ebx
call fcn.00403570
push eax
push 0x104
push ebp
call fcn.004a4ecc
add esp, 0xc
xor eax, eax
jmp 0x490e22
xor ebx, ebx
push 0x208
lea edx, [esp + 0x25a]
push ebx
push edx
mov word [esp + 0x260], bx
call fcn.004a1e50
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 0x490e1d
lea ecx, [esp + 0x254]
push ecx
lea ecx, [esp + 0x2c]
call fcn.004093c0
lea edi, [esp + 0x28]
mov dword [esp + 0x470], ebx
call fcn.0048c000
mov esi, dword [sym.imp.KERNEL32.dll_GetVersion]
call esi
cmp al, 5
jbe 0x490d9a
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.004a1e50
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 0x4e2ae8
lea ecx, [esp + 0x48]
push 0x105
push ecx
mov edi, eax
call fcn.004a6ba9
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.0048c250
mov edi, ebx
call fcn.0048c000
push 0x4e2aec
jmp 0x490daf
call esi
movzx ecx, al
cmp ecx, 5
ja 0x490daa
jb 0x490e14
cmp ah, bl
jbe 0x490e14
push 0x4e2b14
lea ebx, [esp + 0x2c]
call fcn.0048c250
mov ecx, ebx
call fcn.00403570
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov ecx, ebx
je 0x490e18
call fcn.00403570
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x490e14
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.00406930
mov eax, esi
jmp 0x490e22
lea ecx, [esp + 0x28]
call fcn.00406930
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.004a1873
add esp, 0x460
ret 8