Function at 0x4049e0
Capabilities:
Check mutex on windows
Create process on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x447381
mov eax, dword fs:[0]
push eax
mov eax, 0x116c
call fcn.0043fb90
mov eax, dword [0x45636c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.Global0088FC8C_3418_449b_97F0_F5DB4CA9C47B
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x45a8bc], eax
test eax, eax
je 0x404a3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x405125
push 0x410
lea eax, [ebp - 0x930]
push 0
push eax
call fcn.0042f230
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
add esp, 0xc
push 0x208
lea ecx, [ebp - 0x930]
push ecx
push 0
call esi
lea edx, [ebp - 0x116c]
push edx
lea ecx, [ebp - 0x930]
call fcn.004058d0
lea eax, [ebp - 0x930]
mov dword [ebp - 4], 0
mov edi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push eax
call edi
push 0x410
lea ecx, [ebp - 0x520]
push 0
push ecx
call fcn.0042f230
mov ebx, dword [sym.imp.SHLWAPI.dll_PathCombineW]
add esp, 0xc
push 0x44c660
lea edx, [ebp - 0x930]
push edx
lea eax, [ebp - 0x520]
push eax
call ebx
push 0x410
lea ecx, [ebp - 0x1150]
push 0
push ecx
call fcn.0042f230
add esp, 0xc
push str.Mini.exe
lea edx, [ebp - 0x930]
push edx
lea eax, [ebp - 0x1150]
push eax
call ebx
push 0x410
lea ecx, [ebp - 0xd40]
push 0
push ecx
call fcn.0042f230
add esp, 0xc
push 0x208
lea edx, [ebp - 0xd40]
push edx
push 0
call esi
lea eax, [ebp - 0xd40]
push eax
call edi
push str.NmSvr.cfg
lea ecx, [ebp - 0xd40]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0xd40]
push edx
push 0
push str.setuptime
push str.setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor edi, edi
mov esi, eax
or eax, edi
je 0x404b6f
push edi
call fcn.0042bdb0
add esp, 4
sub eax, esi
sbb edx, edi
test edx, edx
jg 0x404b6f
jl 0x4050fc
cmp eax, 0x258
jb 0x4050fc
cmp dword [0x45a1a0], edi
je 0x4050fc
lea ecx, [ebp - 0x1178]
push ecx
call fcn.0042bdb0
lea edx, [ebp - 0x1178]
push edx
call fcn.0042bd38
mov esi, eax
mov eax, dword [0x458f04]
mov edx, dword [eax + 0xc]
add esp, 8
mov ecx, 0x458f04
call edx
add eax, 0x10
mov dword [ebp - 0x115c], eax
mov byte [ebp - 4], 1
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
push eax
push ecx
push edx
push str._d_d_d
lea edi, [ebp - 0x115c]
call fcn.004065d0
xor eax, eax
push 0x3e
push eax
lea ecx, [ebp - 0x8e]
push ecx
mov word [ebp - 0x90], ax
call fcn.0042f230
xor edx, edx
push 0x3e
push edx
lea eax, [ebp - 0xce]
push eax
mov word [ebp - 0xd0], dx
call fcn.0042f230
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0x10e]
push edx
mov word [ebp - 0x110], cx
call fcn.0042f230
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
add esp, 0x34
lea eax, [ebp - 0x520]
push eax
push 0x40
lea ecx, [ebp - 0x90]
push ecx
push 0x44c860
push 0x44c864
push str.setup
call esi
mov edx, dword [0x45a1a0]
mov eax, dword [edx + 0x14]
mov ebx, dword [ebp - 0x115c]
test eax, eax
je 0x4050dc
mov dword [ebp - 0x1160], eax
mov dword [ebp - 0x1164], 1
jmp 0x404c76
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
push 0x3e
push eax
lea ecx, [ebp - 0x4e]
push ecx
mov word [ebp - 0x50], ax
call fcn.0042f230
mov edx, dword [ebp - 0x1164]
push edx
lea eax, [ebp - 0x50]
push str.popup_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea ecx, [ebp - 0x520]
push ecx
push 0x40
lea edx, [ebp - 0xd0]
push edx
push 0x44c860
push str.PopuTimes
lea eax, [ebp - 0x50]
push eax
call esi
mov ecx, dword [ebx - 8]
mov eax, 1
sub eax, dword [ebx - 4]
or ecx, eax
jge 0x404ce3
xor ecx, ecx
lea eax, [ebp - 0x115c]
call fcn.00405ec0
mov ebx, dword [ebp - 0x115c]
lea ecx, [ebp - 0x520]
push ecx
push 0x40
lea edx, [ebp - 0x110]
push edx
push ebx
push str.LastPopudate
lea eax, [ebp - 0x50]
push eax
call esi
lea ecx, [ebp - 0x90]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x404d48
lea edi, [eax + eax]
mov eax, edi
call fcn.00437d80
mov esi, esp
test esi, esi
je 0x404d48
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
lea edx, [ebp - 0x90]
push edx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x404d4a
xor eax, eax
push 0
push eax
call fcn.0040bae0
mov dword [ebp - 0x1168], eax
add esp, 8
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x404da4
lea edi, [eax + eax]
mov eax, edi
call fcn.00437d80
mov esi, esp
test esi, esi
je 0x404da4
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
lea ecx, [ebp - 0xd0]
push ecx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x404da6
xor eax, eax
push 1
push eax
call fcn.0040bae0
add esp, 8
lea edx, [ebp - 0x110]
push edx
mov dword [ebp - 0x1154], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x404e00
lea edi, [eax + eax]
mov eax, edi
call fcn.00437d80
mov esi, esp
test esi, esi
je 0x404e00
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x404e02
xor eax, eax
push 0
push eax
call fcn.0040bae0
mov ecx, dword [ebx - 8]
mov dword [ebp - 0x1158], eax
mov eax, 1
sub eax, dword [ebx - 4]
add esp, 8
or ecx, eax
jge 0x404e35
xor ecx, ecx
lea eax, [ebp - 0x115c]
call fcn.00405ec0
mov ebx, dword [ebp - 0x115c]
test ebx, ebx
je 0x404e76
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jg 0x404e76
lea edi, [eax + eax]
mov eax, edi
call fcn.00437d80
mov esi, esp
test esi, esi
je 0x404e76
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 3
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, esi
jmp 0x404e78
xor eax, eax
push 0
push eax
call fcn.0040bae0
add esp, 8
cmp dword [ebp - 0x1154], 0xffffffff
mov esi, eax
jne 0x404ebd
cmp esi, dword [ebp - 0x1158]
jle 0x404ebd
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea ecx, [ebp - 0x520]
push ecx
push 0x44c860
push str.PopuTimes
lea edx, [ebp - 0x50]
push edx
call edi
test eax, eax
je 0x4050c2
jmp 0x404ec3
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp - 0x1158], esi
jle 0x404ee3
mov eax, dword [ebp - 0x1160]
mov ecx, dword [ebp - 0x1154]
cmp ecx, dword [eax + 0x404]
ja 0x4050bc
cmp dword [ebp - 0x1154], 0xffffffff
je 0x4050bc
mov ecx, dword [ebp - 0x1168]
cmp ecx, 0x5265c00
jle 0x404f1d
mov eax, 0xce4a2bc5
imul ecx
sar edx, 0x18
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x5265c00
add ecx, eax
mov dword [ebp - 0x1168], ecx
cmp dword [ebp - 0x1158], esi
jge 0x404f5f
lea ecx, [ebp - 0x520]
push ecx
push ebx
push str.LastPopudate
lea edx, [ebp - 0x50]
push edx
call edi
lea eax, [ebp - 0x520]
push eax
push 0x44c860
push str.PopuTimes
lea ecx, [ebp - 0x50]
push ecx
call edi
mov ecx, dword [ebp - 0x1168]
mov dword [ebp - 0x1154], 1
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x258
jle 0x40508d
mov edx, dword [ebp - 0x1160]
mov ecx, dword [edx + 0x408]
imul ecx, dword [ebp - 0x1154]
imul ecx, ecx, 0xe10
cmp eax, ecx
jle 0x40508d
lea edx, [ebp - 0x520]
push edx
push ebx
push str.LastPopudate
lea eax, [ebp - 0x50]
push eax
call edi
test eax, eax
je 0x4050c2
mov edx, dword [0x458f04]
mov eax, dword [edx + 0xc]
mov ecx, 0x458f04
call eax
add eax, 0x10
mov dword [ebp - 0x1158], eax
mov eax, dword [ebp - 0x1154]
inc eax
push eax
push 0x44c684
lea edi, [ebp - 0x1158]
mov byte [ebp - 4], 2
mov dword [ebp - 0x1154], eax
call fcn.004065d0
mov edx, dword [ebp - 0x1158]
add esp, 8
lea ecx, [ebp - 0x520]
push ecx
push edx
push str.PopuTimes
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
test eax, eax
jne 0x405026
mov eax, edi
mov byte [ebp - 4], 1
call fcn.00405a10
jmp 0x4050c2
mov esi, dword [ebp - 0x1160]
add esi, 4
jne 0x405035
xor eax, eax
jmp 0x405062
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
cmp edi, 0x3fffffff
jle 0x40504b
xor eax, eax
jmp 0x405062
lea eax, [edi + edi]
call fcn.00437d80
mov ecx, esp
mov eax, esi
push 3
mov edx, edi
mov esi, ecx
call fcn.00401030
push 5
push 0
push eax
lea ecx, [ebp - 0x1150]
push ecx
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea eax, [ebp - 0x1158]
mov byte [ebp - 4], 1
call fcn.00405a10
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, dword [ebp - 0x1154]
mov eax, dword [ebp - 0x1160]
cmp edx, dword [eax + 0x404]
jbe 0x4050bc
lea ecx, [ebp - 0x520]
push ecx
push 0x44c8b4
push str.PopuTimes
lea edx, [ebp - 0x50]
push edx
call edi
test eax, eax
je 0x4050c2
inc dword [ebp - 0x1164]
mov eax, dword [ebp - 0x1160]
mov eax, dword [eax + 0x40c]
mov dword [ebp - 0x1160], eax
test eax, eax
jne 0x404c70
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4050fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x116c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405125
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esp, [ebp - 0x1188]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042a9a5
mov esp, ebp
pop ebp
ret