Function at 0x4777e0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d7b67
mov eax, dword fs:[0]
push eax
sub esp, 0x580
mov eax, dword [0x65a000]
xor eax, esp
mov dword [esp + 0x578], eax
push ebx
push esi
push edi
mov eax, dword [0x65a000]
xor eax, esp
push eax
lea eax, [esp + 0x590]
mov dword fs:[0], eax
mov edi, ecx
lea eax, [esp + 0x54]
push eax
mov dword [esp + 0x58], 8
mov dword [esp + 0x5c], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, edi
call fcn.0049219b
push 0
call fcn.00492b1e
add esp, 4
push 0x5df2d8
call fcn.0049adb1
xor eax, eax
push 0x206
push eax
mov word [esp + 0x384], ax
lea eax, [esp + 0x386]
push eax
call fcn.005a7690
add esp, 0xc
lea eax, [esp + 0x37c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x37c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
xor eax, eax
mov dword [esp + 0x70], 7
mov dword [esp + 0x6c], 0
mov word [esp + 0x5c], ax
cmp word [esp + 0x37c], ax
jne 0x4778c0
xor ecx, ecx
jmp 0x4778df
lea ecx, [esp + 0x37c]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4778d0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x380]
push eax
lea ecx, [esp + 0x64]
call fcn.004058d0
push 0x5c
lea edx, [esp + 0x60]
lea ecx, [esp + 0x14]
mov dword [esp + 0x59c], 0
call fcn.004658b0
add esp, 4
push str.Msetup4.ini
mov edx, eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x59c], 1
call fcn.00406060
add esp, 4
mov byte [esp + 0x598], 3
cmp dword [esp + 0x24], 8
jb 0x477944
push dword [esp + 0x10]
call fcn.0048166b
add esp, 4
xor eax, eax
cmp dword [esp + 0x50], 8
lea edx, [esp + 0x3c]
cmovae edx, dword [esp + 0x3c]
mov dword [esp + 0x24], 7
mov dword [esp + 0x20], 0
mov word [esp + 0x10], ax
call fcn.00415c90
mov ecx, 0x6fb060
call fcn.00401d90
push 0x6fb408
call fcn.005a4e64
add esp, 4
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
call fcn.0048bb88
test eax, eax
je 0x4779af
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x74]
jmp 0x4779b1
xor eax, eax
push eax
lea ecx, [esp + 0x2c]
call fcn.004895a3
mov byte [esp + 0x598], 4
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
xorps xmm0, xmm0
push 8
push dword [esp + 0x34]
xor eax, eax
mov word [esp + 0x364], ax
movq qword [esp + 0x366], xmm0
movq qword [esp + 0x36e], xmm0
movq qword [esp + 0x376], xmm0
mov dword [esp + 0x37e], eax
call ebx
push 0xa
push dword [esp + 0x34]
mov esi, eax
call ebx
push eax
push esi
push str._dx_d
push 0xffffffffffffffff
lea eax, [esp + 0x36c]
push 0xf
push eax
call fcn.005a4e29
add esp, 0x18
cmp word [esp + 0x35c], 0
jne 0x477a34
xor ecx, ecx
jmp 0x477a4f
lea ecx, [esp + 0x35c]
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x477a40
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x360]
push eax
mov ecx, 0x6fb150
call fcn.004058d0
push 0x58
push dword [esp + 0x34]
xor eax, eax
xorps xmm0, xmm0
mov word [esp + 0x350], ax
movq qword [esp + 0x352], xmm0
movq qword [esp + 0x35a], xmm0
mov word [esp + 0x362], ax
call ebx
push eax
push 0x60ee14
push 0xffffffffffffffff
lea eax, [esp + 0x354]
push 0xa
push eax
call fcn.005a4e29
add esp, 0x14
cmp word [esp + 0x348], 0
jne 0x477aba
xor ecx, ecx
jmp 0x477ad3
lea ecx, [esp + 0x348]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x477ac4
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x34c]
push eax
mov ecx, 0x6fb090
call fcn.004058d0
push dword [edi + 0x64]
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 0xcc], eax
call esi
cmp eax, 0xb7
je 0x477b1f
call fcn.004785f0
test eax, eax
jne 0x477b95
push str.CMSetupApp::InitInstance_IsAdministrators___Failed
call fcn.00415fc0
xor esi, esi
lea ecx, [esp + 0x28]
mov byte [esp + 0x598], 3
call fcn.004896fc
cmp dword [esp + 0x50], 8
jb 0x477b45
push dword [esp + 0x3c]
call fcn.0048166b
add esp, 4
xor eax, eax
cmp dword [esp + 0x70], 8
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
jb 0x477b6f
push dword [esp + 0x5c]
call fcn.0048166b
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x590]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x578]
xor ecx, esp
call fcn.005a4646
mov esp, ebp
pop ebp
ret
call fcn.00478570
cmp eax, 1
jne 0x477ba9
push str.CMSetupApp::InitInstance_IsWow64___Failed
jmp 0x477b1a
call fcn.00477cb0
test eax, eax
jne 0x477bbc
push str.CMSetupApp::InitInstance_Initialize___Failed
jmp 0x477b1a
call fcn.0045b360
test eax, eax
jne 0x477bcf
push str.CMSetupApp::InitInstance_InitializeMacro___Failed
jmp 0x477b1a
call fcn.00478740
test eax, eax
jne 0x477be7
call fcn.00479120
push str.CMSetupApp::InitInstance_IsAdministratorGroup___Failed
jmp 0x477b1a
call fcn.004781c0
test eax, eax
jne 0x477bfa
push str.CMSetupApp::InitInstance_InitializeLoadLibrary___Failed
jmp 0x477b1a
call fcn.004789f0
test eax, eax
jne 0x477c0d
push str.CMSetupApp::InitInstance_IsSupportOS___Failed
jmp 0x477b1a
call fcn.00458010
push ecx
lea ecx, [esp + 0x78]
call fcn.00477c70
push ecx
lea ecx, [esp + 0x78]
call fcn.0041d430
lea ecx, [esp + 0x74]
mov byte [esp + 0x598], 5
call fcn.0048cf4a
test eax, eax
je 0x477c48
call esi
push eax
push str.CMSetupApp::InitInstance_DlgBase.DoModal___Failed:0x_08x
call fcn.00416140
lea ecx, [esp + 0x74]
mov esi, 1
mov byte [esp + 0x598], 4
call fcn.0041d5b0
jmp 0x477b21