Function at 0x4116e0
Capabilities:
Check mutex on windows
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x5071ad
mov eax, dword fs:[0]
push eax
sub esp, 0x33c
mov eax, dword [0x5466b0]
xor eax, esp
mov dword [esp + 0x338], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5466b0]
xor eax, esp
push eax
lea eax, [esp + 0x350]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [esp + 0x364]
mov esi, dword [esp + 0x360]
mov ecx, dword [esp + 0x368]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x60], ebp
mov dword [esi + 0x1b4], ecx
mov dword [esi + 0x1b8], edi
mov dword [esi + 0x1bc], eax
cmp edx, ebp
je 0x4117ad
mov eax, edx
lea ebx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bp
jne 0x411770
sub eax, ebx
sar eax, 1
je 0x4117ad
mov ecx, edx
lea eax, [esi + 0x1d0]
lea ebx, [ecx + 2]
lea esp, [esp]
mov si, word [ecx]
add ecx, 2
cmp si, bp
jne 0x411790
sub ecx, ebx
sar ecx, 1
push edx
mov ebx, ecx
call fcn.00408500
mov esi, dword [esp + 0x1c]
xor ebp, ebp
mov ecx, dword [esp + 0x37c]
mov dword [esi + 0x24], ecx
cmp edi, ebp
jne 0x411926
cmp dword [esp + 0x378], ebp
je 0x411926
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexW]
push str.Q360SoftManagerSrvPushPopupMutex
push 1
push ebp
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [esp + 0x50], ebx
call edi
push eax
push ebx
push str.mutex:h:_x__err:_d
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 0xc
cmp ebx, ebp
je 0x4118a1
call edi
cmp eax, 0xb7
jne 0x4118a1
cmp dword [esp + 0x368], ebp
je 0x411883
push str.Q360SoftManagerSrvPushPopupMutex_ForNews
push 1
push ebp
call esi
mov esi, eax
mov dword [esp + 0x60], esi
call edi
push eax
push esi
push str.news_mutex:h:_x__err:_d
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 0xc
cmp esi, ebp
je 0x411926
call edi
cmp eax, 0xb7
jne 0x411926
push 0x515d6c
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 4
jmp 0x4120fa
push 0x515d90
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 4
jmp 0x4120fa
cmp dword [esp + 0x368], ebp
je 0x4118e2
push str.Q360SoftManagerSrvPushPopupMutex_ForNews
push 1
push ebp
call esi
mov ebx, eax
call edi
push eax
push ebx
push str.news_mutex:h:_x__err:_d
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 0xc
cmp ebx, ebp
je 0x411912
call edi
cmp eax, 0xb7
jne 0x411912
jmp 0x411865
push str.Q360Soft.Cuttle.Video
push 1
push ebp
call esi
mov ebx, eax
cmp ebx, ebp
je 0x411912
call edi
push ebx
cmp eax, 0xb7
jne 0x41190c
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x515dd8
jmp 0x41186a
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.Q360_SE_SAFE_PopupWindowMutex
push 1
push ebp
call esi
mov dword [esp + 0x48], eax
cmp eax, ebp
je 0x411926
call edi
push 0x208
lea edx, [esp + 0x148]
push ebp
push edx
call fcn.004d7710
add esp, 0xc
push 0x104
lea eax, [esp + 0x148]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x411a20
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x148]
mov dword [esp + 0x60], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ebp
call fcn.004085e0
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x36c], ebp
call fcn.0045bbe4
mov esi, dword [eax]
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or ebx, 0xffffffff
add esp, 0x14
lea ecx, [eax + 0xc]
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4119c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x358], ebx
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4119ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, ebp
je 0x411a23
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x60]
push edx
push eax
push ecx
push 0x515e2c
add edi, 0x1e0
call fcn.00404c10
add esp, 0x14
jmp 0x411a23
or ebx, 0xffffffff
push 0x54cfe0
push 8
call fcn.004cba2a
add esp, 8
cmp eax, ebp
je 0x411a41
mov dword [eax], vtable.MessagePopup::classmgr.0
mov dword [eax + 4], ebp
jmp 0x411a43
xor eax, eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x30]
add esi, 0x30
push eax
mov eax, dword [edx + 0x60]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 0x410cf0
mov ecx, esi
call eax
push 0x54cfe0
push 0x10
call fcn.004cba2a
mov ecx, eax
add esp, 8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x358], 1
cmp ecx, ebp
je 0x411a95
mov eax, dword [esp + 0x36c]
call fcn.0041a730
jmp 0x411a97
xor eax, eax
mov dword [esp + 0x358], ebx
mov edi, vtable.os::script_shared_ptr_class__variant__.0
push eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x70], edi
call fcn.0040ed50
mov dword [esp + 0x358], 2
mov edx, dword [esi]
mov edx, dword [edx + 0x38]
lea eax, [esp + 0x6c]
push eax
push str.__timeout
mov ecx, esi
call edx
mov dword [esp + 0x358], ebx
mov eax, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
cmp eax, ebp
je 0x411b11
mov esi, eax
add eax, 8
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x411b11
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
lea ecx, [esi + 0xc]
lock xadd dword [ecx], ebx
jne 0x411b11
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push ecx
mov ecx, dword [esp + 0x34]
call fcn.004085e0
lea ebx, [esp + 0x38]
call fcn.0047332a
add esp, 8
mov dword [esp + 0x358], 4
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, eax
sub ecx, edx
jne 0x411b62
lea esi, [esp + 0x30]
mov dword [esp + 0x358], 0xffffffff
call fcn.00417930
jmp 0x4120f8
xor ebp, ebp
mov byte [esp + 0x1b], 0
cmp edx, ebp
jne 0x411b71
xor esi, esi
jmp 0x411b77
mov esi, dword [esp + 0x44]
sub esi, edx
cmp ecx, esi
jae 0x411b85
mov byte [eax], 0
inc eax
mov dword [esp + 0x40], eax
jmp 0x411bac
mov esi, eax
cmp edx, eax
jbe 0x411b90
call fcn.004cb4f7
mov eax, dword [esp + 0x30]
push esi
push eax
lea edx, [esp + 0x23]
push edx
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x40]
call fcn.004181c0
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x16c]
mov eax, dword [edx + 8]
lea ecx, [esi + 0x16c]
call eax
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x3c]
jne 0x411bd0
call fcn.004cb4f7
mov ecx, dword [esp + 0x3c]
push esi
call fcn.00412f40
test eax, eax
je 0x411b49
mov dword [esp + 0x80], vtable.WTL::CMessageLoop.0
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], ebp
mov byte [esp + 0x358], 5
mov ebx, dword [0x54f4d8]
add ebx, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x54f07c]
mov edx, dword [esi + 8]
lea edi, [esi + 8]
push 4
inc edx
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
push edx
push eax
call fcn.004ccad7
add esp, 0xc
cmp eax, ebp
je 0x411c9a
mov ecx, dword [edi]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.004ccad7
add esp, 0xc
cmp eax, ebp
je 0x411c9a
mov dword [esi + 4], eax
mov eax, dword [edi]
lea ecx, [eax*4]
mov eax, dword [esi]
add eax, ecx
je 0x411c88
mov edx, dword [esp + 0x28]
mov dword [eax], edx
mov esi, dword [esi + 4]
add esi, ecx
je 0x411c98
lea eax, [esp + 0x80]
mov dword [esi], eax
inc dword [edi]
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x2c]
lea ebp, [esi + 0x2c]
push ecx
push 0x515e50
call fcn.00401f50
mov edx, 0x515e64
mov ecx, eax
call fcn.00401fd0
mov edx, dword [esp + 0x378]
mov dword [esi + 0x1cc], edx
mov edi, 7
add esp, 8
mov eax, edi
lea ecx, [esp + 0x2c]
mov edx, ebp
call fcn.004177a0
mov byte [esp + 0x358], 6
mov eax, dword [eax]
push str.http:__
mov ebx, 1
push eax
mov dword [esp + 0x28], ebx
call fcn.004cc42a
add esp, 8
test eax, eax
je 0x411d64
lea eax, [edi + 1]
lea ecx, [esp + 0x7c]
mov edx, ebp
call fcn.004177a0
mov dword [esp + 0x358], edi
mov eax, dword [eax]
push str.https:__
mov ebx, 3
push eax
mov dword [esp + 0x28], ebx
call fcn.004cc42a
add esp, 8
test eax, eax
je 0x411d64
lea eax, [edi - 3]
lea ecx, [esp + 0x78]
mov edx, ebp
call fcn.004177a0
mov eax, dword [eax]
push str.www.
push eax
mov ebx, edi
call fcn.004cc42a
add esp, 8
mov byte [esp + 0x1b], 0
test eax, eax
jne 0x411d69
mov byte [esp + 0x1b], 1
mov dword [esp + 0x358], edi
test bl, 4
je 0x411d9c
mov eax, dword [esp + 0x78]
and ebx, 0xfffffffb
add eax, 0xfffffff0
mov dword [esp + 0x20], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411d9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x358], 6
test bl, 2
je 0x411dd3
mov eax, dword [esp + 0x7c]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x20], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411dd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x358], 5
test bl, 1
je 0x411e03
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x411e03
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x1b], 0
je 0x411f84
lea ecx, [esp + 0x64]
push str.message
push ecx
call fcn.004384a0
add esp, 8
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x358], 9
mov ecx, dword [eax]
mov esi, dword [ebx + 0x14c]
lea edi, [ebx + 0x14c]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x411e8c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x411e7d
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x411e7d
call fcn.00408780
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x411e72
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x411e88
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.00408500
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x358], 5
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411eb4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi]
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push eax
call esi
push ebx
call fcn.00411540
test eax, eax
jne 0x411ef8
mov ecx, dword [edi]
push ecx
push 0x515eb4
call fcn.00401f50
mov edx, 0x515e64
mov ecx, eax
call fcn.00401fd0
add esp, 8
lea esi, [esp + 0x80]
call fcn.00412220
jmp 0x411b49
push 0
call fcn.004cbb5a
add esp, 4
push edx
push eax
push 0x515ed8
call fcn.0041a2e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push str.__d_
call fcn.0041a2e0
mov edi, dword [edi]
add esp, 8
push 0
push edi
call esi
cmp dword [esp + 0x370], 0
je 0x411f44
push ebx
call fcn.00415d60
test eax, eax
jne 0x412063
mov edx, dword [ebp]
mov ecx, ebx
call fcn.00412e50
test eax, eax
jne 0x412063
mov edx, dword [ebp]
push edx
push 0x515eec
call fcn.00401f50
mov edx, 0x515e64
mov ecx, eax
call fcn.00401fd0
add esp, 8
lea esi, [esp + 0x80]
call fcn.00412220
jmp 0x411b49
mov ecx, dword [esi + 0x14c]
cmp dword [ecx - 0xc], 0
mov edi, dword [ecx - 0x10]
lea eax, [ecx - 0x10]
je 0x411feb
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x411fc3
cmp dword [ecx - 8], 0
jge 0x411faf
push 0x80070057
call fcn.00408810
mov dword [ecx - 0xc], 0
mov eax, dword [esi + 0x14c]
xor ecx, ecx
mov word [eax], cx
jmp 0x411feb
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x411fd9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0xc]
mov ecx, edi
call eax
add eax, 0x10
mov dword [esi + 0x14c], eax
mov ebp, dword [ebp]
push 3
lea ecx, [esp + 0xc8]
push ebp
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], ecx
call fcn.00418470
mov byte [esp + 0x358], 0xa
mov edx, dword [esi + 0x30]
mov eax, dword [esp + 0xc0]
mov edx, dword [edx + 0xc]
lea ecx, [esi + 0x30]
push eax
call edx
test eax, eax
mov byte [esp + 0x358], 5
mov eax, dword [esp + 0xc0]
lea ecx, [esp + 0xc4]
sete bl
cmp eax, ecx
je 0x41204e
push eax
call fcn.004cc15e
add esp, 4
test bl, bl
je 0x412063
lea esi, [esp + 0x80]
call fcn.00412220
jmp 0x411b49
lea edi, [esp + 0x80]
call fcn.0041a1c0
mov eax, dword [esp + 0x90]
xor esi, esi
cmp eax, esi
je 0x41208c
push eax
call fcn.004cc15e
add esp, 4
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x84]
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
cmp eax, esi
je 0x4120b5
push eax
call fcn.004cc15e
add esp, 4
mov dword [esp + 0x84], esi
mov dword [esp + 0x358], 0xffffffff
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
cmp eax, esi
je 0x4120df
push eax
call fcn.004cb380
add esp, 4
mov edx, dword [esp + 0x30]
push edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
call fcn.004cb380
add esp, 4
xor ebp, ebp
mov eax, dword [esp + 0x50]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebp
je 0x41210b
push eax
call edi
mov eax, dword [esp + 0x60]
cmp eax, ebp
je 0x412116
push eax
call edi
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1d4]
cmp eax, ebp
je 0x41212d
push eax
call edi
mov dword [esi + 0x1d4], ebp
mov ebx, dword [esp + 0x48]
cmp ebx, ebp
je 0x412151
push 0x515f18
call fcn.00401f50
mov edx, str.MultiTip
mov ecx, eax
call fcn.00401fd0
add esp, 4
push ebx
call edi
call fcn.0041a070
test byte [0x54f524], 1
jne 0x412179
or dword [0x54f524], 1
push 0x50a9e0
mov dword [0x54f528], ebp
call fcn.004cb9f4
add esp, 4
mov eax, dword [0x54f528]
cmp eax, ebp
jne 0x412195
mov edi, 0x54f528
call fcn.0040f6e0
mov eax, dword [0x54f528]
cmp eax, ebp
je 0x41219d
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push eax
call edx
cmp dword [esp + 0x368], ebp
jne 0x4121b1
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x14c]
cmp dword [eax - 0xc], ebp
je 0x4121c5
push eax
call fcn.0045b6e8
add esp, 4
mov eax, dword [esi + 0x16c]
mov edx, dword [eax + 0xc]
lea ecx, [esi + 0x16c]
call edx
mov eax, dword [esi + 0x170]
cmp eax, ebp
je 0x4121ec
push 0x1770
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, 1
mov ecx, dword [esp + 0x350]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x338]
xor ecx, esp
call fcn.004cb38b
add esp, 0x348
ret 0x20