Function at 0x40c7b0
Capabilities:
Check if file exists
Check mutex on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2590
call fcn.004c65d0
mov eax, dword [0x5159c4]
xor eax, ebp
mov dword [ebp - 0xc], eax
push str._close
mov eax, dword [ebp + 8]
push eax
call fcn.004120f0
add esp, 8
test eax, eax
je 0x40c7e8
call fcn.0040c570
xor eax, eax
jmp 0x40cd52
push str._uninst
mov ecx, dword [ebp + 8]
push ecx
call fcn.004120f0
add esp, 8
test eax, eax
je 0x40c8ab
push 0
push 0x4f6aa0
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x10c4], eax
cmp dword [ebp - 0x10c4], 0
je 0x40c830
push 0
push 0
push 0x10
mov edx, dword [ebp - 0x10c4]
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
push str.Q360AdMgr
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x10cc], eax
cmp dword [ebp - 0x10cc], 0
je 0x40c85f
push 0
push 0
push 0x10
mov eax, dword [ebp - 0x10cc]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0x4f6ae4
push str.PopWndCleanTip
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x10c8], eax
cmp dword [ebp - 0x10c8], 0
je 0x40c8a4
push 0
push 0
push 0x10
mov ecx, dword [ebp - 0x10c8]
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x12
mov edx, dword [ebp - 0x10c8]
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
jmp 0x40cd52
push str._query
mov eax, dword [ebp + 8]
push eax
call fcn.004120f0
add esp, 8
test eax, eax
je 0x40c995
lea ecx, [ebp - 0x2570]
push ecx
call fcn.00410200
add esp, 4
mov ecx, eax
call fcn.00413b20
push eax
push 1
push str.FirstOpen
push 0x4f6b48
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x10d0], eax
lea ecx, [ebp - 0x2570]
call fcn.00413a40
cmp dword [ebp - 0x10d0], 1
jne 0x40c95f
lea edx, [ebp - 0x2574]
push edx
call fcn.00410200
add esp, 4
mov ecx, eax
call fcn.00413b20
push eax
push 0x4f6b5c
push 0x4f6b60
push 0x4f6b74
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x2574]
call fcn.00413a40
lea ecx, [ebp - 0x2141]
call fcn.00482410
lea ecx, [ebp - 0x2141]
call fcn.004829a0
lea ecx, [ebp - 0x2141]
call fcn.00482420
lea ecx, [ebp - 0x2140]
call fcn.0046a250
lea ecx, [ebp - 0x2140]
call fcn.00472420
mov dword [ebp - 0x2578], 0
lea ecx, [ebp - 0x2140]
call fcn.0046a5c0
mov eax, dword [ebp - 0x2578]
jmp 0x40cd52
lea eax, [ebp - 8]
push eax
call fcn.0040d290
add esp, 4
lea ecx, [ebp - 0x1088]
push ecx
call fcn.0040d370
add esp, 4
mov dword [ebp - 0x1084], 0
lea ecx, [ebp - 8]
call fcn.00413b50
test eax, eax
jle 0x40ca7d
lea ecx, [ebp - 8]
call fcn.00413b20
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40ca7d
push 0x208
push 0
lea edx, [ebp - 0x2558]
push edx
call fcn.004c62e0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x2558]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x2558]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x208
push 0
lea edx, [ebp - 0x2350]
push edx
call fcn.004c62e0
add esp, 0xc
push 0x4f6b88
lea ecx, [ebp - 8]
call fcn.00413b20
push eax
lea eax, [ebp - 0x2350]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x2350]
push ecx
call fcn.004c635a
add esp, 4
push eax
lea edx, [ebp - 0x2558]
push edx
lea eax, [ebp - 0x2350]
push eax
call fcn.004c64f6
add esp, 0xc
test eax, eax
jne 0x40ca7d
mov dword [ebp - 0x1084], 1
mov ecx, dword [ebp - 0x1084]
push ecx
push str.Run_in_safe_dir___d
call fcn.004139b0
add esp, 8
cmp dword [ebp - 0x1084], 0
je 0x40caa9
mov dword [0x518d28], 1
call fcn.0040c640
lea ecx, [ebp - 0x10c0]
call fcn.00412110
lea edx, [ebp - 0x10c0]
push edx
mov ecx, 0x517464
call fcn.00412f60
call fcn.0040c090
test eax, eax
jne 0x40cb01
mov dword [ebp - 0x257c], 0
lea ecx, [ebp - 0x10c0]
call fcn.00412140
lea ecx, [ebp - 0x1088]
call fcn.00413a40
lea ecx, [ebp - 8]
call fcn.00413a40
mov eax, dword [ebp - 0x257c]
jmp 0x40cd52
mov dword [0x517460], 0
push str.Global__Q360PopwndTracker
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x517460], eax
cmp dword [0x517460], 0
je 0x40cc0d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40cc0d
push 0
push 0x4f6bf8
call dword [sym.imp.USER32.dll_FindWindowW]
mov dword [ebp - 0x255c], eax
cmp dword [ebp - 0x255c], 0
je 0x40cc0d
mov eax, dword [ebp - 0x255c]
push eax
call fcn.0048e460
add esp, 4
cmp dword [ebp + 8], 0
je 0x40cbda
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c635a
add esp, 4
cmp eax, 3
jbe 0x40cbda
push 0
push 0
push 0x8205
mov edx, dword [ebp - 0x255c]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2568], 0x360366
mov eax, dword [ebp + 8]
push eax
call fcn.004c635a
add esp, 4
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x2564], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2560], edx
lea eax, [ebp - 0x2568]
push eax
push 0
push 0x4a
mov ecx, dword [ebp - 0x255c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x2580], 0
lea ecx, [ebp - 0x10c0]
call fcn.00412140
lea ecx, [ebp - 0x1088]
call fcn.00413a40
lea ecx, [ebp - 8]
call fcn.00413a40
mov eax, dword [ebp - 0x2580]
jmp 0x40cd52
cmp dword [ebp - 0x1084], 0
je 0x40cc39
lea ecx, [ebp - 0x2569]
call fcn.00482410
push 0
lea ecx, [ebp - 0x2569]
call fcn.004829f0
lea ecx, [ebp - 0x2569]
call fcn.00482420
lea ecx, [ebp - 0x1080]
call fcn.0046a250
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x1080]
call fcn.00470e00
push 0
push ecx
mov ecx, esp
push 0
call fcn.00413240
push 0
push 0
push 0
push ecx
mov ecx, esp
push 0
call fcn.00413220
push 0
lea ecx, [ebp - 0x1054]
call fcn.00412590
test eax, eax
jne 0x40ccbe
mov dword [ebp - 0x258c], 0
lea ecx, [ebp - 0x1080]
call fcn.0046a5c0
lea ecx, [ebp - 0x10c0]
call fcn.00412140
lea ecx, [ebp - 0x1088]
call fcn.00413a40
lea ecx, [ebp - 8]
call fcn.00413a40
mov eax, dword [ebp - 0x258c]
jmp 0x40cd52
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x1050]
call fcn.004132d0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
lea ecx, [ebp - 0x1080]
call fcn.0046fe50
push str._safeuninst
mov eax, dword [ebp + 8]
push eax
call fcn.004120f0
add esp, 8
test eax, eax
je 0x40cd02
push 1
lea ecx, [ebp - 0x1080]
call fcn.00472730
lea ecx, [ebp - 0x10c0]
call fcn.00412a00
mov dword [ebp - 4], eax
mov ecx, 0x517464
call fcn.00413040
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x2590], ecx
lea ecx, [ebp - 0x1080]
call fcn.0046a5c0
lea ecx, [ebp - 0x10c0]
call fcn.00412140
lea ecx, [ebp - 0x1088]
call fcn.00413a40
lea ecx, [ebp - 8]
call fcn.00413a40
mov eax, dword [ebp - 0x2590]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004c62c9
mov esp, ebp
pop ebp
ret