Function at 0x40ce60
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x432c4b
mov eax, dword fs:[0]
push eax
sub esp, 0x164
mov eax, dword [0x445080]
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 esi, dword [ebp + 8]
call fcn.0040cde0
test eax, eax
je 0x40cea2
or eax, 0xffffffff
jmp 0x40d804
mov edi, 5
mov dword [ebp - 0x138], 0
xor eax, eax
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x168], 0xffffffff
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 7
mov word [ebp - 0x12c], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x138]
push eax
mov dword [ebp - 0x164], 1
mov dword [0x446c1c], esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
test ebx, ebx
jne 0x40cfa9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x40cf8a
movzx esi, si
or esi, 0x80070000
test esi, esi
mov eax, 0x80004005
cmovns esi, eax
push esi
push 0x50f
push str.c:_buildagentwork_a8a3f5ed687aa1d8projects_setupexe_setupexe.cpp
call fcn.0040fa20
jmp 0x40d722
mov esi, 1
cmp dword [ebp - 0x138], esi
jle 0x40d48f
mov edi, dword [sym.imp.KERNEL32.dll_CompareStringW]
lea eax, [esi*4]
mov edx, dword [eax + ebx]
mov dword [ebp - 0x130], eax
movzx eax, word [edx]
cmp eax, 0x2d
je 0x40cfe1
cmp eax, 0x2f
jne 0x40d542
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x148], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cff0
sub ecx, dword [ebp - 0x148]
sar ecx, 1
cmp ecx, 1
jbe 0x40d542
push 0xffffffffffffffff
push 0x4412d0
push 0xffffffffffffffff
lea eax, [edx + 2]
push eax
push 1
push 0x7f
call edi
cmp eax, 2
je 0x40d430
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.extract
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
je 0x40d430
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0x4412e8
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
je 0x40d430
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.msicl
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d143
lea ecx, [esi + 1]
cmp ecx, dword [ebp - 0x138]
jge 0x40d47c
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + ebx + 4]
movzx eax, word [eax]
test ax, ax
je 0x40d47c
cmp eax, 0x2d
je 0x40d47c
cmp eax, 0x2f
je 0x40d47c
mov esi, ecx
mov edx, dword [ebx + esi*4]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x148], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d0e0
sub ecx, dword [ebp - 0x148]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x12c]
call fcn.00401930
lea ecx, [ebp - 0x12c]
call fcn.00409ed0
push 0x4409f8
lea ecx, [ebp - 0x12c]
call fcn.00401a80
cmp dword [ebp - 0x118], 8
lea eax, [ebp - 0x12c]
push 0
cmovae eax, dword [ebp - 0x12c]
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.0040e020
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.forcequiet
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d18c
push 0
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x13c]
push str.INSTALL_FROM_BROyes
push eax
mov dword [ebp - 0x160], 1
call fcn.0040e020
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.quiet
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d1b8
mov dword [ebp - 0x134], eax
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.passive
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d1e8
mov dword [ebp - 0x134], 3
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.norestart
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d221
push 0
push str.REBOOTReallySuppress
lea eax, [ebp - 0x13c]
push eax
call fcn.0040e020
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.forcerestart
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d25a
push 0
push str.REBOOTForce
lea eax, [ebp - 0x13c]
push eax
call fcn.0040e020
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.promptrestart
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d293
push 0
push str.REBOOTPROMPT
lea eax, [ebp - 0x13c]
push eax
call fcn.0040e020
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.uninstall
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d2da
mov eax, dword [ebp - 0x134]
mov ecx, 3
cmp eax, 5
mov dword [ebp - 0x164], 7
cmove eax, ecx
mov dword [ebp - 0x134], eax
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0x441078
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d34a
lea ecx, [esi + 1]
cmp ecx, dword [ebp - 0x138]
jge 0x40d47c
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + ebx + 4]
movzx eax, word [eax]
test ax, ax
je 0x40d47c
cmp eax, 0x2d
je 0x40d47c
cmp eax, 0x2f
je 0x40d47c
mov esi, ecx
lea eax, [ebp - 0x154]
push 0
push dword [ebx + esi*4]
push eax
call fcn.0040e3d0
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push str.lang
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d3bd
inc esi
cmp esi, dword [ebp - 0x138]
jge 0x40d542
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + ebx + 4]
movzx eax, word [eax]
test ax, ax
je 0x40d542
cmp eax, 0x2d
je 0x40d542
cmp eax, 0x2f
je 0x40d542
push dword [ebx + esi*4]
call fcn.00422083
add esp, 4
mov dword [ebp - 0x168], eax
mov dword [ebp - 4], 0
jmp 0x40d47c
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0x441460
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
je 0x40d424
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0x441464
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
je 0x40d424
mov eax, dword [ebp - 0x130]
push 0xffffffffffffffff
push 0x441468
push 0xffffffffffffffff
mov eax, dword [eax + ebx]
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, 2
jne 0x40d542
mov dword [ebp - 0x158], 1
jmp 0x40d47c
lea ecx, [esi + 1]
cmp ecx, dword [ebp - 0x138]
jge 0x40d513
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + ebx + 4]
movzx eax, word [eax]
test ax, ax
je 0x40d513
cmp eax, 0x2d
je 0x40d513
cmp eax, 0x2f
je 0x40d513
mov esi, ecx
mov dword [ebp - 0x15c], 1
mov eax, dword [ebx + esi*4]
mov dword [ebp - 0x140], eax
inc esi
cmp esi, dword [ebp - 0x138]
jl 0x40cfc0
mov edi, dword [ebp - 0x134]
call fcn.00410f20
push eax
lea eax, [ebp - 0x144]
push str.ui_s
push eax
call fcn.0040e130
add esp, 0xc
cmp dword [ebp - 0x158], 0
je 0x40d54c
lea eax, [ebp - 0x14c]
push eax
push 0xc739
push dword [0x446c1c]
call fcn.0040eb10
mov esi, eax
test esi, esi
js 0x40d726
lea eax, [ebp - 0x150]
push eax
push 0x7d5
push dword [0x446c1c]
call fcn.0040eb10
mov esi, eax
test esi, esi
js 0x40d726
push 0
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40d722
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.00414fa0
push dword [ebx + esi*4]
lea eax, [ebp - 0x114]
push str.Must_specify_a_filename_with_the__s_switch.
push 0x104
push eax
call fcn.00401c80
add esp, 0x1c
mov esi, 0x80070057
jmp 0x40d726
cmp dword [ebp - 0x15c], 0
je 0x40d65a
push 0
push dword [ebp - 0x140]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x134], 0
call fcn.0040f8e0
mov esi, eax
test esi, esi
js 0x40d63d
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x130]
push eax
push str.MANIFEST
push 0
call fcn.0040e9d0
mov esi, eax
test esi, esi
js 0x40d63d
mov ecx, dword [ebp - 0x130]
xor bl, bl
cmp byte [ecx + 1], bl
jbe 0x40d63d
movzx eax, bl
lea edi, [ecx + 4]
imul eax, eax, 0xa8
push 0
push dword [ebp - 0x140]
add edi, eax
lea eax, [ebp - 0x134]
push eax
call fcn.0040e3d0
mov esi, eax
test esi, esi
js 0x40d63d
push 0
push 0x43fe80
lea eax, [ebp - 0x134]
push eax
call fcn.0040e020
mov esi, eax
test esi, esi
js 0x40d63d
push 0
lea eax, [edi + 0xc]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.0040e020
mov esi, eax
test esi, esi
js 0x40d63d
push 2
push dword [ebp - 0x134]
push edi
call fcn.0040e8c0
mov esi, eax
test esi, esi
js 0x40d63d
mov ecx, dword [ebp - 0x130]
inc bl
cmp bl, byte [ecx + 1]
jb 0x40d5c3
mov eax, dword [ebp - 0x134]
test eax, eax
je 0x40d64d
push eax
call fcn.0040e720
test esi, esi
js 0x40d726
jmp 0x40d773
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x16c]
push eax
push 0xc73a
push 0
call fcn.0040e9d0
mov esi, eax
cmp esi, 0x80070716
jne 0x40d682
xor esi, esi
jmp 0x40d68a
test esi, esi
js 0x40d726
call fcn.0040a7f0
test eax, eax
jne 0x40d705
cmp dword [ebp - 0x160], eax
je 0x40d6b5
call fcn.0040abb0
test eax, eax
jne 0x40d6b5
push dword [ebp - 0x144]
push str.3x.errors.msi_mutex_locked
jmp 0x40d710
push dword [ebp - 0x164]
mov edx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x16c]
push edi
push dword [ebp - 0x154]
push dword [ebp - 0x168]
call fcn.0040bf30
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x40d773
push dword [ebp - 0x144]
push str.3x.errors.process_setup_chain
push 0x11de7
push 0xc6
call fcn.00410c10
add esp, 0x10
jmp 0x40d726
push dword [ebp - 0x144]
push str.3x.errors.is_already_run
push 0x11de7
push 0xc6
call fcn.00410c10
add esp, 0x10
test esi, esi
jns 0x40d773
movzx eax, si
push eax
lea eax, [ebp - 0x140]
mov dword [ebp - 0x140], 0
push str.3x.errors.exit_code._d
push eax
call fcn.0040e130
push dword [ebp - 0x144]
push dword [ebp - 0x140]
push 0x11de7
push 0xc6
call fcn.00410c10
mov eax, dword [ebp - 0x140]
add esp, 0x1c
test eax, eax
je 0x40d773
push eax
call fcn.0040e720
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x40d783
push eax
call fcn.0040e720
mov eax, dword [ebp - 0x13c]
test eax, eax
je 0x40d793
push eax
call fcn.0040e720
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x40d7a3
push eax
call fcn.0040e720
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x40d7b3
push eax
call fcn.0040e720
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x40d7c3
push eax
call fcn.0040e720
mov edx, dword [ebp - 0x118]
movzx esi, si
cmp edx, 8
jb 0x40d802
mov ecx, dword [ebp - 0x12c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40d7f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40d822
push edx
push ecx
call fcn.00412b73
add esp, 8
mov eax, esi
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.00412b32
mov esp, ebp
pop ebp
ret 0x10
call fcn.0041b58d
int3