Function at 0x40c550
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x440221
mov eax, dword fs:[0]
push eax
sub esp, 0x9dc
mov eax, dword [0x45407c]
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
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push str.Reading_pinstall_xml...
mov dword [ebp - 0x9a4], ecx
push str.INFO
mov ecx, edi
mov dword [ebp - 0x978], eax
mov ebx, edx
mov dword [ebp - 0x980], edi
call fcn.00404920
xor esi, esi
cmp word [ebx], si
jne 0x40c5c6
push str.xml_is_empty
push str.INFO
mov ecx, edi
call fcn.00404920
jmp 0x40cd27
mov edx, dword [0x4554d8]
mov eax, dword [edx + 0xc]
mov ecx, 0x4554d8
call eax
mov edx, dword [0x4554d8]
add eax, 0x10
mov dword [ebp - 0x9e8], eax
mov eax, dword [edx + 0xc]
mov ecx, 0x4554d8
call eax
add eax, 0x10
mov dword [ebp - 0x9e4], eax
mov dword [ebp - 0x9dc], esi
mov dword [ebp - 0x9d8], esi
mov dword [ebp - 0x9d4], esi
mov dword [ebp - 0x9cc], esi
mov dword [ebp - 0x9c8], esi
mov dword [ebp - 0x9c4], esi
mov dword [ebp - 0x9e0], esi
mov dword [ebp - 0x9b8], esi
mov dword [ebp - 0x9bc], esi
push 0x458994
push ebx
lea ecx, [ebp - 0x9e8]
mov dword [ebp - 4], esi
call fcn.00425990
push str.installer
lea ecx, [ebp - 0x99c]
push ecx
lea edx, [ebp - 0x9e8]
push edx
call fcn.00425ee0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x998]
mov eax, dword [ebp - 0x99c]
sub ecx, eax
test ecx, 0xfffffffc
jne 0x40c68d
cmp eax, esi
je 0x40c681
push eax
call fcn.00427715
add esp, 4
lea edx, [ebp - 0x9e8]
push edx
jmp 0x40cd09
mov eax, dword [eax]
push 0x448488
mov dword [ebp - 0x97c], eax
call fcn.00425e50
cmp eax, esi
je 0x40c6ae
mov eax, dword [eax + 4]
mov dword [ebp - 0x974], eax
jmp 0x40c6b4
mov dword [ebp - 0x974], esi
mov ecx, dword [ebp - 0x974]
mov edi, dword [ebp - 0x978]
push ecx
lea esi, [edi + 0x2a4]
push 0x40
push esi
call fcn.00428080
add esp, 0xc
push esi
push str.pid_from_tail_s
lea edx, [ebp - 0x150]
push 0x40
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
mov ecx, dword [ebp - 0x980]
add esp, 0x10
lea eax, [ebp - 0x150]
push eax
push str.INFO
call fcn.00404920
mov ebx, str._pid
lea eax, [edi + 0x1868]
call fcn.004045c0
test al, al
je 0x40c766
lea eax, [edi + 0x1868]
call fcn.00404660
mov ebx, eax
test ebx, ebx
je 0x40c766
mov ecx, dword [ebp - 0x974]
push ebx
push ecx
lea edx, [ebp - 0x350]
push str.Replace_PID_from_commandline_old_s__new_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x980]
add esp, 0x10
lea eax, [ebp - 0x350]
push eax
push str.INFO
call fcn.00404920
push ebx
push 0x40
push esi
call fcn.00428080
add esp, 0xc
mov ebx, dword [ebp - 0x97c]
push str.statUrl
mov eax, ebx
call fcn.00425e50
test eax, eax
je 0x40c781
mov eax, dword [eax + 4]
jmp 0x40c783
xor eax, eax
test eax, eax
je 0x40c79e
push eax
lea ecx, [ebp - 0x768]
push 0x104
push ecx
call fcn.00428080
add esp, 0xc
jmp 0x40c7a7
xor edx, edx
mov word [ebp - 0x768], dx
lea eax, [ebp - 0x768]
push eax
lea ecx, [edi + 0x1c]
push 0x104
push ecx
call fcn.00428080
add esp, 0xc
push str.checkOld
mov eax, ebx
call fcn.00425e50
test eax, eax
je 0x40c7d4
mov eax, dword [eax + 4]
jmp 0x40c7d6
xor eax, eax
test eax, eax
je 0x40c7f1
push eax
lea edx, [ebp - 0x560]
push 0x104
push edx
call fcn.00428080
add esp, 0xc
jmp 0x40c7fa
xor eax, eax
mov word [ebp - 0x560], ax
push str.downloadDate
mov eax, ebx
call fcn.00425e50
test eax, eax
je 0x40c80f
mov eax, dword [eax + 4]
jmp 0x40c811
xor eax, eax
test eax, eax
je 0x40c829
push eax
lea ecx, [ebp - 0xd0]
push 0x40
push ecx
call fcn.00428080
add esp, 0xc
jmp 0x40c832
xor edx, edx
mov word [ebp - 0xd0], dx
lea eax, [ebp - 0xd0]
push eax
lea ecx, [edi + 0xf3c]
push 0x40
push ecx
call fcn.00428080
add esp, 0xc
push str.userAgent
mov eax, ebx
call fcn.00425e50
test eax, eax
je 0x40c85f
mov eax, dword [eax + 4]
jmp 0x40c861
xor eax, eax
push edi
mov esi, eax
call fcn.00409980
mov edx, dword [edi]
mov eax, dword [edx + 0x1c]
mov esi, 1
mov ecx, edi
mov dword [ebp - 0x988], esi
call eax
test al, al
je 0x40c8cd
push str.pinstallMax
mov eax, ebx
call fcn.00425e50
test eax, eax
je 0x40c896
mov eax, dword [eax + 4]
jmp 0x40c898
xor eax, eax
test eax, eax
je 0x40c8ad
push eax
lea ecx, [ebp - 0x50]
push 0x20
push ecx
call fcn.00428080
add esp, 0xc
jmp 0x40c8b3
xor edx, edx
mov word [ebp - 0x50], dx
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.SHLWAPI.dll_StrToIntW]
mov dword [ebp - 0x988], eax
test eax, eax
jne 0x40c8cd
mov dword [ebp - 0x988], esi
push str.dwnloader_web_setup_mutex
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push edi
cmp eax, 0xb7
je 0x40ccce
mov ebx, str.pinstall:
call fcn.00408f00
mov edx, dword [ebp - 0x97c]
push str.pinstall
lea ecx, [ebp - 0x9b4]
push ecx
push edx
call fcn.00425ee0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x9b4]
mov dword [ebp - 0x97c], eax
cmp eax, dword [ebp - 0x9b0]
je 0x40ccab
add edi, 0x136b8
mov dword [ebp - 0x974], edi
mov esi, dword [ebp - 0x974]
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40c943
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x104
jge 0x40c96f
push 0x448584
push 0x104
push esi
call fcn.0042800b
add esp, 0xc
mov eax, dword [ebp - 0x97c]
mov eax, dword [eax]
push str.pinstall
mov dword [ebp - 0x9a0], eax
call fcn.00425e50
test eax, eax
je 0x40c996
mov edi, dword [eax + 4]
mov dword [ebp - 0x98c], edi
jmp 0x40c9a6
mov dword [ebp - 0x98c], 0
mov edi, dword [ebp - 0x98c]
mov ebx, dword [ebp - 0x980]
push edi
push str.INFO
mov ecx, ebx
call fcn.00404920
mov eax, esi
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40c9c0
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, edi
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40c9d6
sub eax, esi
sar eax, 1
lea eax, [eax + edx + 1]
cmp eax, 0x104
jge 0x40ca05
mov ecx, dword [ebp - 0x974]
push edi
push 0x104
push ecx
call fcn.0042800b
add esp, 0xc
mov eax, dword [ebp - 0x974]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ca10
sub eax, edx
sar eax, 1
add eax, 2
cmp eax, 0x104
jge 0x40ca42
mov edx, dword [ebp - 0x974]
push 0x448588
push 0x104
push edx
call fcn.0042800b
add esp, 0xc
mov edx, dword [ebp - 0x978]
push edi
mov ecx, ebx
call fcn.0040c340
add esp, 4
test al, al
jne 0x40cc79
lea esi, [ebp - 0x560]
call fcn.004057b0
test al, al
je 0x40ca83
push edi
mov edi, dword [ebp - 0x978]
mov ecx, ebx
call fcn.0040c180
add esp, 4
test al, al
jne 0x40cc79
mov eax, dword [ebp - 0x978]
push eax
mov ebx, str.free
call fcn.00408f00
mov esi, dword [ebp - 0x9a0]
push str.pparams
mov eax, esi
call fcn.00425e50
test eax, eax
je 0x40caaf
mov edi, dword [eax + 4]
jmp 0x40cab1
xor edi, edi
push str.campaignId
mov eax, esi
call fcn.00425e50
test eax, eax
je 0x40cac6
mov ebx, dword [eax + 4]
jmp 0x40cac8
xor ebx, ebx
push str.pinstallUrl
mov eax, esi
call fcn.00425e50
test eax, eax
je 0x40cadd
mov eax, dword [eax + 4]
jmp 0x40cadf
xor eax, eax
test eax, eax
je 0x40cafa
push eax
lea ecx, [ebp - 0x358]
push 0x104
push ecx
call fcn.00428080
add esp, 0xc
jmp 0x40cb03
xor edx, edx
mov word [ebp - 0x358], dx
push str.asyncPinstall
mov eax, esi
call fcn.00425e50
test eax, eax
je 0x40cb18
mov eax, dword [eax + 4]
jmp 0x40cb1a
xor eax, eax
test eax, eax
je 0x40cb2f
push eax
lea eax, [ebp - 0x50]
push 0x20
push eax
call fcn.00428080
add esp, 0xc
jmp 0x40cb35
xor ecx, ecx
mov word [ebp - 0x50], cx
push 0x5a0
call fcn.00427771
add esp, 4
mov dword [ebp - 0x984], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x40cb98
lea esi, [ebp - 0x50]
call fcn.004057b0
test al, al
je 0x40cb71
mov ecx, dword [ebp - 0x978]
mov edx, dword [ecx]
mov eax, dword [edx + 0x44]
call eax
test al, al
je 0x40cb71
mov al, 1
jmp 0x40cb73
xor al, al
mov ecx, dword [ebp - 0x98c]
mov esi, dword [ebp - 0x984]
push eax
push ecx
mov ecx, ebx
lea ebx, [ebp - 0x358]
call fcn.0040be00
mov esi, dword [ebp - 0x9a0]
mov edi, eax
jmp 0x40cb9a
xor edi, edi
mov byte [ebp - 4], 2
push edi
mov eax, esi
mov dword [ebp - 0x984], edi
call fcn.0040c450
add esp, 4
push str.success
mov eax, esi
call fcn.00425e50
xor ebx, ebx
cmp eax, ebx
je 0x40cbc6
mov eax, dword [eax + 4]
jmp 0x40cbc8
xor eax, eax
cmp eax, ebx
je 0x40cbe3
push eax
lea edx, [ebp - 0x970]
push 0x104
push edx
call fcn.00428080
add esp, 0xc
jmp 0x40cbec
xor eax, eax
mov word [ebp - 0x970], ax
lea eax, [ebp - 0x970]
call fcn.00406c70
mov esi, eax
mov eax, edi
call fcn.0040bf70
mov edi, dword [ebp - 0x9a4]
lea eax, [ebp - 0x984]
call fcn.004266e0
mov eax, edi
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ecx, dword [ebp - 0x988]
jb 0x40cc8a
mov eax, dword [ebp - 0x9b4]
cmp eax, ebx
je 0x40cc36
push eax
call fcn.00427715
add esp, 4
mov eax, dword [ebp - 0x99c]
mov dword [ebp - 0x9b4], ebx
mov dword [ebp - 0x9b0], ebx
mov dword [ebp - 0x9ac], ebx
cmp eax, ebx
je 0x40cc5b
push eax
call fcn.00427715
add esp, 4
lea edx, [ebp - 0x9e8]
mov dword [ebp - 0x99c], ebx
mov dword [ebp - 0x998], ebx
mov dword [ebp - 0x994], ebx
push edx
jmp 0x40cd1b
push 0x44858c
push str.INFO
mov ecx, ebx
call fcn.00404920
mov eax, dword [ebp - 0x97c]
add eax, 4
mov dword [ebp - 0x97c], eax
cmp eax, dword [ebp - 0x9b0]
jne 0x40c938
mov eax, dword [ebp - 0x9b4]
xor esi, esi
cmp eax, esi
je 0x40ccba
push eax
call fcn.00427715
add esp, 4
mov dword [ebp - 0x9b4], esi
mov dword [ebp - 0x9b0], esi
mov dword [ebp - 0x9ac], esi
jmp 0x40ccef
mov ebx, str.secondIns
call fcn.00408f00
mov ecx, dword [ebp - 0x980]
push str.secont_instance__skipping_partner
push str.INFO
call fcn.00404920
xor esi, esi
mov eax, dword [ebp - 0x99c]
cmp eax, esi
je 0x40cd02
push eax
call fcn.00427715
add esp, 4
lea eax, [ebp - 0x9e8]
push eax
mov dword [ebp - 0x99c], esi
mov dword [ebp - 0x998], esi
mov dword [ebp - 0x994], esi
mov dword [ebp - 4], 0xffffffff
call fcn.00424c70
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.004276fb
mov esp, ebp
pop ebp
ret