Function at 0x40df60
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x547600
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x5a10e0]
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 eax, dword [ebp + 8]
mov dword [ebp - 0x84], eax
test ecx, ecx
je 0x40e8a3
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x40dfa4
sub eax, esi
sar eax, 1
je 0x40e8a3
lea edx, [ebp - 0x90]
push edx
push ecx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
mov eax, 1
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x90], eax
jle 0x40e637
jmp 0x40dff0
mov ebx, dword [ebp - 0x88]
mov esi, dword [edi + ebx*4]
mov ecx, str.__modesilent
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40e026
test dx, dx
je 0x40e022
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40e026
add eax, 4
add ecx, 4
test dx, dx
jne 0x40e000
xor eax, eax
jmp 0x40e02b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40e614
mov ecx, str.__modeSilent
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40e066
test dx, dx
je 0x40e062
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40e066
add eax, 4
add ecx, 4
test dx, dx
jne 0x40e040
xor eax, eax
jmp 0x40e06b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40e614
push 0x57b264
push esi
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e841
mov eax, dword [edi + ebx*4]
push 7
push str.__mode
push eax
call fcn.0051814b
add esp, 0xc
test eax, eax
je 0x40e841
mov ecx, dword [edi + ebx*4]
push 0x57b2f8
push ecx
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e81f
mov edx, dword [edi + ebx*4]
push str.__overrideFile
push edx
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e81f
mov eax, dword [edi + ebx*4]
push 0xf
push 0x57b2f8
push eax
call fcn.0051814b
add esp, 0xc
test eax, eax
jne 0x40e1a3
mov ecx, dword [ebp - 0x88]
mov eax, dword [edi + ecx*4]
lea esi, [ebp - 0x48]
call fcn.00402e40
push 1
mov ebx, esi
mov dword [ebp - 4], 0
call fcn.004126e0
cmp eax, 0xffffffff
je 0x40e183
lea ecx, [eax + 1]
push 0xffffffffffffffff
lea eax, [ebp - 0x2c]
mov edx, esi
call fcn.00411550
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x2c]
mov ebx, 8
cmp dword [ebp - 0x18], ebx
jae 0x40e13a
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40e709
mov esi, dword [ebp - 0x84]
add esi, 0x58
push esi
mov eax, str.__overrideFile_
call fcn.00402e80
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ebx
jae 0x40e168
lea eax, [ebp - 0x2c]
push esi
call fcn.00408950
push esi
mov eax, 0x57b3ac
call fcn.00408950
lea esi, [ebp - 0x2c]
call fcn.004015b0
jmp 0x40e188
mov ebx, 8
mov eax, dword [ebp - 0x84]
add eax, 0x58
cmp dword [eax + 0x14], ebx
jb 0x40e198
mov eax, dword [eax]
push eax
push 0x57b3b0
jmp 0x40e474
mov eax, dword [edi + ebx*4]
push 0x57b3e4
push eax
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e7f3
mov ecx, dword [edi + ebx*4]
push str.__deploymentFile
push ecx
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e7f3
mov edx, dword [edi + ebx*4]
push 0x11
push 0x57b3e4
push edx
call fcn.0051814b
add esp, 0xc
test eax, eax
jne 0x40e2ab
mov eax, dword [ebp - 0x88]
mov eax, dword [edi + eax*4]
lea esi, [ebp - 0x48]
call fcn.00402e40
push 1
mov ebx, esi
mov dword [ebp - 4], 2
call fcn.004126e0
cmp eax, 0xffffffff
je 0x40e282
lea ecx, [eax + 1]
push 0xffffffffffffffff
lea eax, [ebp - 0x2c]
mov edx, esi
call fcn.00411550
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x2c]
mov ebx, 8
cmp dword [ebp - 0x18], ebx
jae 0x40e239
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40e751
mov esi, dword [ebp - 0x84]
add esi, 0x74
push esi
mov eax, str.__deploymentFile_
call fcn.00402e80
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ebx
jae 0x40e267
lea eax, [ebp - 0x2c]
push esi
call fcn.00408950
push esi
mov eax, 0x57b3ac
call fcn.00408950
lea esi, [ebp - 0x2c]
call fcn.004015b0
jmp 0x40e287
mov ebx, 8
mov eax, dword [ebp - 0x84]
add eax, 0x74
cmp dword [eax + 0x14], ebx
jb 0x40e297
mov eax, dword [eax]
mov ecx, dword [ebp - 0x84]
push eax
mov eax, dword [ecx + 0x50]
push str.Deployment_file_path_____s_
jmp 0x40e47d
mov edx, dword [edi + ebx*4]
push 0x57b4dc
push edx
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e841
mov eax, dword [edi + ebx*4]
push str.__installSourcePath
push eax
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e841
mov ecx, dword [edi + ebx*4]
push 0x14
push 0x57b4dc
push ecx
call fcn.0051814b
add esp, 0xc
test eax, eax
jne 0x40e49e
mov edx, dword [ebp - 0x88]
mov eax, dword [edi + edx*4]
lea esi, [ebp - 0x48]
call fcn.00402e40
push 1
mov ebx, esi
mov dword [ebp - 4], 4
call fcn.004126e0
cmp eax, 0xffffffff
je 0x40e45b
lea ecx, [eax + 1]
push 0xffffffffffffffff
lea eax, [ebp - 0x2c]
mov edx, esi
call fcn.00411550
mov byte [ebp - 4], 5
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx + ebx + 0x14]
push eax
call fcn.0051632c
mov esi, eax
add esp, 4
test esi, esi
jne 0x40e37e
push str.Error_allocating_memory_for_szSourcePath
call fcn.00415aa0
mov ebx, 0x576f68
call fcn.004160f0
add esp, 4
lea esi, [ebp - 0x2c]
call fcn.004015b0
lea esi, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.004015b0
jmp 0x40e61e
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x40e38a
lea eax, [ebp - 0x2c]
push eax
inc ebx
push ebx
push esi
call fcn.0051641f
add esp, 0xc
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveBackslashW]
lea eax, [esi - 2]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x40e3a0
mov ecx, dword [str.payloads]
mov dword [eax], ecx
mov edx, dword [0x57776c]
mov dword [eax + 4], edx
mov ecx, dword [0x577770]
mov dword [eax + 8], ecx
mov edx, dword [0x577774]
mov dword [eax + 0xc], edx
mov ecx, dword [0x577778]
push esi
mov dword [eax + 0x10], ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40e76d
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x40e3f3
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsRootW]
mov ebx, dword [ebp - 0x84]
add ebx, 0x90
push ebx
test eax, eax
jne 0x40e42e
mov eax, str.__installSourcePath_
call fcn.00402e80
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x40e421
lea eax, [ebp - 0x2c]
push ebx
call fcn.00408950
mov eax, 0x57b3ac
jmp 0x40e444
mov eax, 0x57b4dc
call fcn.00402e80
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x2c]
jae 0x40e444
lea eax, [ebp - 0x2c]
push ebx
call fcn.00408950
push esi
call fcn.0051784d
add esp, 4
lea esi, [ebp - 0x2c]
call fcn.004015b0
mov eax, dword [ebp - 0x84]
add eax, 0x90
cmp dword [eax + 0x14], 8
jb 0x40e46e
mov eax, dword [eax]
push eax
push str.Install_Source_path_____s_
mov edx, dword [ebp - 0x84]
mov eax, dword [edx + 0x50]
mov ebx, 0x576f68
call fcn.00416060
add esp, 8
lea esi, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.004015b0
jmp 0x40e61e
mov eax, dword [edi + ebx*4]
push 0x57b640
push eax
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e7c7
mov ecx, dword [edi + ebx*4]
push str.__action
push ecx
call fcn.005176c6
add esp, 8
test eax, eax
je 0x40e7c7
mov edx, dword [edi + ebx*4]
push 9
push 0x57b640
push edx
call fcn.0051814b
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x88]
jne 0x40e5f3
mov eax, dword [edi + eax*4]
lea esi, [ebp - 0x80]
call fcn.00402e40
push 1
mov ebx, esi
mov dword [ebp - 4], 6
call fcn.004126e0
cmp eax, 0xffffffff
je 0x40e5e2
lea ecx, [eax + 1]
push 0xffffffffffffffff
lea eax, [ebp - 0x64]
mov edx, esi
call fcn.00411550
mov esi, str.install
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 7
call fcn.00411580
test eax, eax
jne 0x40e54b
mov ecx, dword [ebp - 0x84]
mov dword [ecx + 0xac], 4
jmp 0x40e5b2
mov esi, str.repair
lea ecx, [ebp - 0x64]
call fcn.00411580
test eax, eax
jne 0x40e56a
mov edx, dword [ebp - 0x84]
mov dword [edx + 0xac], eax
jmp 0x40e5b2
mov esi, str.update
lea ecx, [ebp - 0x64]
call fcn.00411580
test eax, eax
jne 0x40e58d
mov eax, dword [ebp - 0x84]
mov dword [eax + 0xac], 2
jmp 0x40e5b2
mov esi, str.uninstall
lea ecx, [ebp - 0x64]
call fcn.00411580
mov ecx, dword [ebp - 0x84]
test eax, eax
jne 0x40e791
mov dword [ecx + 0xac], 3
cmp dword [ebp - 0x50], 8
mov eax, dword [ebp - 0x64]
jae 0x40e5be
lea eax, [ebp - 0x64]
mov edx, dword [ebp - 0x84]
push eax
mov eax, dword [edx + 0x50]
push str.Action_specified_____s_
mov ebx, 0x576f68
call fcn.00416090
add esp, 8
lea esi, [ebp - 0x64]
call fcn.004015b0
lea esi, [ebp - 0x80]
mov dword [ebp - 4], 0xffffffff
call fcn.004015b0
jmp 0x40e61e
mov ecx, dword [edi + eax*4]
mov edx, dword [ebp - 0x84]
mov eax, dword [edx + 0x50]
push ecx
push str.Error_parsing_command_line_arguments_at_____s_._nExpected_arguments_are____n_t__modesilent_n_t__overrideFile__FilePath__
mov ebx, 0x576f68
call fcn.004160f0
add esp, 8
jmp 0x40e61e
mov eax, dword [ebp - 0x84]
mov byte [eax + 0x4c], 1
mov eax, dword [ebp - 0x88]
inc eax
mov dword [ebp - 0x88], eax
cmp eax, dword [ebp - 0x90]
jl 0x40dff0
mov ecx, dword [ebp - 0x84]
cmp dword [ecx + 0xac], 2
je 0x40e6b5
push 0x800
call fcn.0051632c
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40e6b5
push 0x104
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x40e671
mov ecx, 0xa
mov esi, str.packagesupdate.sig
rep movsd dword es:[edi], dword [esi]
push ebx
movsw word es:[edi], word [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40e6a6
mov edx, dword [ebp - 0x84]
mov dword [edx + 0xac], 1
push ebx
call fcn.0051784d
mov edi, dword [ebp - 0x8c]
add esp, 4
mov esi, dword [ebp - 0x84]
cmp byte [esi + 0x4c], 0
jne 0x40e6d5
mov eax, dword [esi + 0xac]
cmp eax, 2
je 0x40e6d5
cmp eax, 1
jne 0x40e86a
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x40e86a
mov eax, dword [esi + 0x50]
push str.Administrative_Privileges_required_to_continue
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0xfffffff6
jmp 0x40e8a5
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ebx
jae 0x40e714
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x84]
push eax
mov eax, dword [ecx + 0x50]
push str.Override_file_does_not_exist_____s_
mov ebx, 0x576f68
call fcn.00416120
add esp, 8
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea esi, [ebp - 0x2c]
call fcn.004015b0
lea esi, [ebp - 0x48]
call fcn.004015b0
mov eax, 0xfffffff7
jmp 0x40e8a5
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ebx
jae 0x40e75c
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x84]
push eax
mov eax, dword [edx + 0x50]
push str.Deployment_file_does_not_exist_____s_
jmp 0x40e723
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x50]
push esi
push str.Payloads_does_not_exist_at_the_location:__s
mov ebx, 0x576f68
call fcn.00416120
push esi
call fcn.0051784d
add esp, 0xc
jmp 0x40e730
mov eax, dword [ecx + 0x50]
push str.Incomplete_Missing_set_of_command_line_arguments_passed
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea esi, [ebp - 0x64]
call fcn.004015b0
lea esi, [ebp - 0x80]
call fcn.004015b0
mov eax, 0xfffffff8
jmp 0x40e8a5
mov edx, dword [ebp - 0x84]
mov eax, dword [edx + 0x50]
push str.Incomplete_Missing_set_of_command_line_arguments_passed
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0xfffffff8
jmp 0x40e8a5
mov ecx, dword [ebp - 0x84]
mov eax, dword [ecx + 0x50]
push str.Incomplete_Missing_set_of_command_line_arguments_passed
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0xfffffff8
jmp 0x40e8a5
mov edx, dword [ebp - 0x84]
mov eax, dword [edx + 0x50]
push str.Incomplete_Missing_set_of_command_line_arguments_passed
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
mov eax, 0xfffffff8
jmp 0x40e8a5
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x50]
push str.Incomplete_Missing_set_of_command_line_arguments_passed
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0xfffffff8
jmp 0x40e8a5
cmp dword [esi + 0xac], 3
jne 0x40e89c
cmp byte [esi + 0x4c], 0
jne 0x40e89c
mov eax, dword [esi + 0x50]
push str.Uninstall_through_Bootstrapper_supported_only_in_silent_mode
mov ebx, 0x576f68
call fcn.00416120
add esp, 4
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, 0xfffffff8
jmp 0x40e8a5
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
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.00515d64
mov esp, ebp
pop ebp
ret 4