Function at 0x499250
Capabilities:
Check if file exists
Get geographical location
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56a90a
mov eax, dword fs:[0]
push eax
sub esp, 0xb90
mov eax, dword [0x5c5ebc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xb44], 0
xor eax, eax
mov word [ebp - 0xa1c], ax
push 0x7fe
push 0
lea ecx, [ebp - 0xa1a]
push ecx
call fcn.005281f0
add esp, 0xc
push 0x58a208
lea edx, [ebp - 0xaf0]
push edx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb48], eax
mov eax, dword [ebp - 0xb48]
mov dword [ebp - 0xb4c], eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0xb4c]
push ecx
lea edx, [ebp - 0xaf4]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb50], eax
mov ecx, dword [ebp - 0xb50]
call fcn.00415f60
push eax
push 0x400
lea eax, [ebp - 0xa1c]
push eax
push 0x58a224
push 0x58a228
push 0x58a23c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0xaf4]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xaf0]
call fcn.00415e20
movzx ecx, word [ebp - 0xa1c]
test ecx, ecx
je 0x49936c
lea edx, [ebp - 0xa1c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00415da0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0xb44]
or eax, 1
mov dword [ebp - 0xb44], eax
mov eax, dword [ebp + 8]
jmp 0x49987f
push 0x58a250
lea ecx, [ebp - 0xafc]
push ecx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb54], eax
mov edx, dword [ebp - 0xb54]
mov dword [ebp - 0xb58], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb58]
push eax
lea ecx, [ebp - 0xb00]
push ecx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb5c], eax
mov ecx, dword [ebp - 0xb5c]
call fcn.00415f60
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0xaf5], al
lea ecx, [ebp - 0xb00]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xafc]
call fcn.00415e20
movzx edx, byte [ebp - 0xaf5]
test edx, edx
je 0x4994ac
push 0x58a26c
lea eax, [ebp - 0xb04]
push eax
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb60], eax
mov ecx, dword [ebp - 0xb60]
mov dword [ebp - 0xb64], ecx
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0xb64]
push edx
lea eax, [ebp - 0xb08]
push eax
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb68], eax
mov ecx, dword [ebp - 0xb68]
call fcn.00415f60
push eax
push 0x58a288
push 0x58a290
push 0x58a2a4
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xb08]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xb04]
call fcn.00415e20
push 0x58a2b8
mov ecx, dword [ebp + 8]
call fcn.00415da0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0xb44]
or ecx, 1
mov dword [ebp - 0xb44], ecx
mov eax, dword [ebp + 8]
jmp 0x49987f
lea ecx, [ebp - 0xae4]
call fcn.004a6ea0
mov dword [ebp - 4], 4
push 0
push 0x74
push 0x58a2c0
lea edx, [ebp - 0xb10]
push edx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb6c], eax
mov eax, dword [ebp - 0xb6c]
mov dword [ebp - 0xb70], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xb70]
push ecx
lea edx, [ebp - 0xb14]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb74], eax
mov eax, dword [ebp - 0xb74]
mov dword [ebp - 0xb78], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xb78]
call fcn.00415f60
push eax
lea ecx, [ebp - 0xb20]
push ecx
lea ecx, [ebp - 0xae4]
call fcn.004a7240
mov ecx, eax
call fcn.004a6d90
movzx edx, al
neg edx
sbb edx, edx
add edx, 1
mov byte [ebp - 0xb09], dl
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xb14]
call fcn.00415e20
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xb10]
call fcn.00415e20
movzx eax, byte [ebp - 0xb09]
test eax, eax
je 0x49962e
push 0x58a2dc
lea ecx, [ebp - 0xb24]
push ecx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb7c], eax
mov edx, dword [ebp - 0xb7c]
mov dword [ebp - 0xb80], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0xb80]
push eax
lea ecx, [ebp - 0xb28]
push ecx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb84], eax
mov ecx, dword [ebp - 0xb84]
call fcn.00415f60
push eax
push 0x58a2f8
push 0x58a300
push 0x58a314
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xb28]
call fcn.00415e20
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xb24]
call fcn.00415e20
push 0x58a328
mov ecx, dword [ebp + 8]
call fcn.00415da0
mov edx, dword [ebp - 0xb44]
or edx, 1
mov dword [ebp - 0xb44], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xae4]
call fcn.004a6ed0
mov eax, dword [ebp + 8]
jmp 0x49987f
xor eax, eax
mov word [ebp - 0x214], ax
push 0x1fe
push 0
lea ecx, [ebp - 0x212]
push ecx
call fcn.005281f0
add esp, 0xc
push 4
lea edx, [ebp - 0x214]
push edx
push 3
push 0xc00
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0
jne 0x49968e
push 4
lea eax, [ebp - 0x214]
push eax
push 3
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov dword [ebp - 0x218], eax
lea ecx, [ebp - 0x21c]
call fcn.00415d60
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x214]
push ecx
push 0x58a330
lea edx, [ebp - 0x21c]
push edx
call fcn.004171c0
add esp, 0xc
push 0
lea ecx, [ebp - 0x21c]
call fcn.00415f60
push eax
lea eax, [ebp - 0xaec]
push eax
lea ecx, [ebp - 0xae4]
call fcn.004aa490
lea ecx, [ebp - 0xb30]
call fcn.004a8f70
push eax
lea ecx, [ebp - 0xaec]
call fcn.004a9170
movzx ecx, al
test ecx, ecx
je 0x4997bd
push 0x58a360
lea edx, [ebp - 0xb34]
push edx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb88], eax
mov eax, dword [ebp - 0xb88]
mov dword [ebp - 0xb8c], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xb8c]
push ecx
lea edx, [ebp - 0xb38]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb90], eax
mov ecx, dword [ebp - 0xb90]
call fcn.00415f60
push eax
push 0x58a37c
push 0x58a384
push 0x58a398
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xb38]
call fcn.00415e20
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xb34]
call fcn.00415e20
push 0x58a3ac
mov ecx, dword [ebp + 8]
call fcn.00415da0
mov eax, dword [ebp - 0xb44]
or eax, 1
mov dword [ebp - 0xb44], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x21c]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xae4]
call fcn.004a6ed0
mov eax, dword [ebp + 8]
jmp 0x49987f
push 0x58a3b4
lea ecx, [ebp - 0xb3c]
push ecx
call fcn.004990c0
add esp, 4
mov dword [ebp - 0xb94], eax
mov edx, dword [ebp - 0xb94]
mov dword [ebp - 0xb98], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0xb98]
push eax
lea ecx, [ebp - 0xb40]
push ecx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0xb9c], eax
mov ecx, dword [ebp - 0xb9c]
call fcn.00415f60
push eax
lea edx, [ebp - 0x214]
push edx
push 0x58a3d0
push 0x58a3e4
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0xb40]
call fcn.00415e20
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xb3c]
call fcn.00415e20
lea eax, [ebp - 0x214]
push eax
mov ecx, dword [ebp + 8]
call fcn.00415da0
mov ecx, dword [ebp - 0xb44]
or ecx, 1
mov dword [ebp - 0xb44], ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x21c]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xae4]
call fcn.004a6ed0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00527aad
mov esp, ebp
pop ebp
ret