Function at 0x478fc0
Capabilities:
Check if file exists
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f7f78
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x676580]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x14]
call fcn.00403290
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00479320
mov byte [ebp - 4], 1
push 0x400000
lea eax, [ebp - 0x18]
push eax
call fcn.0057a250
add esp, 8
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x40], ecx
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x40]
call fcn.00493020
push eax
lea ecx, [ebp - 0x10]
call fcn.00479360
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.00403270
mov ecx, dword [ebp + 8]
call fcn.00493020
push eax
lea ecx, [ebp - 0x10]
call fcn.00479360
lea ecx, [ebp - 0x10]
call fcn.00479340
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x47908c
mov dword [ebp - 0x1c], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x1c]
jmp 0x47923f
mov ecx, dword [ebp + 8]
call fcn.00493020
push eax
mov ecx, dword [ebp + 8]
call fcn.00493020
push eax
call fcn.005c7570
mov ecx, eax
call fcn.005c8310
call fcn.005c7570
mov ecx, eax
call fcn.005c6e80
movzx edx, al
test edx, edx
jne 0x4790f4
push str.switchoff
mov ecx, dword [ebp + 0xc]
call fcn.0040b1c0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x20]
jmp 0x47923f
call fcn.005c7570
mov ecx, eax
call fcn.005c8350
movzx eax, al
test eax, eax
je 0x47913e
push str.cityoff
mov ecx, dword [ebp + 0xc]
call fcn.0040b1c0
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x24]
jmp 0x47923f
lea ecx, [ebp - 0x14]
push ecx
call fcn.005c7570
mov ecx, eax
call fcn.005c6da0
movzx edx, al
test edx, edx
je 0x47918c
push str.softnoshow
mov ecx, dword [ebp + 0xc]
call fcn.0040b1c0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x28]
jmp 0x47923f
call fcn.005c7570
mov ecx, eax
call fcn.005c6b70
movzx eax, al
test eax, eax
je 0x4791d3
push str.newuseroff
mov ecx, dword [ebp + 0xc]
call fcn.0040b1c0
mov dword [ebp - 0x2c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x2c]
jmp 0x47923f
call fcn.005c7570
mov ecx, eax
call fcn.005c6ab0
movzx ecx, al
test ecx, ecx
je 0x47921a
push str.uninstall
mov ecx, dword [ebp + 0xc]
call fcn.0040b1c0
mov dword [ebp - 0x30], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x30]
jmp 0x47923f
mov dword [ebp - 0x34], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.00405410
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00403270
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 8