Function at 0x41f058
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
push ebx
push esi
xor esi, esi
push edi
push 0x44
lea eax, [ebp - 0x8c]
push esi
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], esi
call fcn.004284d0
xor eax, eax
lea edi, [ebp - 0x38]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [ebp - 0x48]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x1c]
mov dword [eax], esi
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call fcn.0043057a
mov edi, eax
cmp edi, esi
jge 0x41f0cd
push str.Failed_to_determine_WOW64_status.
jmp 0x41f24d
cmp dword [ebp - 0x24], esi
je 0x41f10e
lea eax, [ebp - 0x14]
push eax
push 0x24
call fcn.004325a1
mov edi, eax
cmp edi, esi
jge 0x41f0ed
push str.Failed_to_find_Windows_directory.
jmp 0x41f24d
lea eax, [ebp - 0x10]
push eax
push str.SysNative_
push dword [ebp - 0x14]
call fcn.004325d7
mov edi, eax
cmp edi, esi
jge 0x41f129
push str.Failed_to_append_SysNative_directory.
jmp 0x41f24d
lea eax, [ebp - 0x10]
push eax
push 0x25
call fcn.004325a1
mov edi, eax
cmp edi, esi
jge 0x41f129
push str.Failed_to_find_System32_directory.
jmp 0x41f24d
lea eax, [ebp - 8]
push eax
push str.wusa.exe
push dword [ebp - 0x10]
call fcn.004325d7
mov edi, eax
cmp edi, esi
jge 0x41f14a
push str.Failed_to_allocate_WUSA.exe_path.
jmp 0x41f24d
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x10]
dec eax
je 0x41f1e3
dec eax
je 0x41f169
mov edi, 0x8000ffff
push str.Failed_to_get_action_arguments_for_MSU_package.
jmp 0x41f24d
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx + 8]
push dword [eax + 0x24]
push 1
call fcn.004188b9
mov edi, eax
cmp edi, esi
jge 0x41f198
mov eax, dword [ebx + 8]
push dword [eax]
push str.Failed_to_get_cached_path_for_package:__ls
push edi
call fcn.00430126
add esp, 0xc
jmp 0x41f43b
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
push dword [eax + 0x18]
push dword [ebp - 0x18]
call fcn.004325d7
mov edi, eax
cmp edi, esi
jge 0x41f1bf
push str.Failed_to_build_MSU_path.
jmp 0x41f24d
push dword [ebp - 0xc]
lea eax, [ebp - 4]
push dword [ebp - 8]
push str.__ls____ls___quiet__norestart
push eax
call fcn.00431d32
mov edi, eax
add esp, 0x10
cmp edi, esi
jge 0x41f20d
push str.Failed_to_format_MSU_install_command.
jmp 0x41f24d
mov eax, dword [ebx + 8]
push dword [eax + 0x94]
lea eax, [ebp - 4]
push dword [ebp - 8]
push str.__ls___uninstall__kb:_ls__quiet__norestart
push eax
call fcn.00431d32
mov edi, eax
add esp, 0x10
cmp edi, esi
jge 0x41f20d
push str.Failed_to_format_MSU_uninstall_command.
jmp 0x41f24d
mov eax, dword [ebx + 0xc]
cmp eax, esi
je 0x41f25a
cmp word [eax], si
je 0x41f25a
push esi
push str.__log:
lea eax, [ebp - 4]
push eax
call fcn.004318dd
mov edi, eax
cmp edi, esi
jge 0x41f235
push str.Failed_to_append_log_switch_to_MSU_command_line.
jmp 0x41f24d
push esi
push dword [ebx + 0xc]
lea eax, [ebp - 4]
push eax
call fcn.004318dd
mov edi, eax
cmp edi, esi
jge 0x41f25a
push str.Failed_to_append_log_path_to_MSU_command_line.
push edi
call fcn.00430126
pop ecx
pop ecx
jmp 0x41f43b
mov eax, dword [ebp - 0xc]
cmp eax, esi
jne 0x41f26a
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x94]
push dword [ebp - 4]
push eax
push dword [ebx + 0x10]
call fcn.004117d3
push eax
mov eax, dword [ebx + 8]
push dword [eax]
push dword [ebp + 0xc]
call fcn.00411b9a
push eax
push 0x2000012d
push 2
pop esi
push esi
call fcn.00401566
add esp, 0x1c
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 0x10]
lea ebx, [ebp - 0x20]
call fcn.0041eea6
mov edi, eax
xor ebx, ebx
cmp edi, ebx
jge 0x41f2bf
push str.Failed_to_ensure_WU_service_was_enabled_to_install_MSU_package.
push edi
call fcn.00430126
pop ecx
pop ecx
jmp 0x41f439
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x8c]
push eax
push ebx
push ebx
push 0x8000000
push ebx
push ebx
push ebx
push dword [ebp - 4]
mov dword [ebp - 0x8c], 0x44
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x41f333
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x41f302
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
cmp edi, ebx
jl 0x41f30d
mov edi, 0x80004005
push edi
push 0x156
push str.msuengine.cpp
call fcn.00432f06
push dword [ebp - 8]
push str.Failed_to_CreateProcess_on_path:__ls
push edi
call fcn.00430126
add esp, 0xc
jmp 0x41f439
push dword [ebp + 0x18]
xor ebx, ebx
lea eax, [ebp - 0x48]
inc ebx
push eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], 0x32
call dword [ebp + 0x14]
cmp eax, ebx
je 0x41f355
test eax, eax
jne 0x41f3be
lea eax, [ebp - 0x1c]
push eax
push 0x1f4
push dword [ebp - 0x38]
call fcn.004306d3
mov edi, eax
cmp edi, 0x80070102
je 0x41f333
test edi, edi
js 0x41f3e5
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x41f3f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x41f399
and eax, 0xffff
or eax, 0x80070000
mov edi, eax
test edi, edi
js 0x41f3a4
mov edi, 0x80004005
push edi
push 0x16d
push str.msuengine.cpp
call fcn.00432f06
push str.Failed_to_get_process_exit_code.
jmp 0x41f2b2
xor ecx, ecx
cmp eax, esi
setne cl
lea edi, [ecx - 0x7ff8f9be]
push edi
push 0x160
push str.msuengine.cpp
call fcn.00432f06
push str.Bootstrapper_application_aborted_during_MSU_progress.
jmp 0x41f2b2
push dword [ebp - 8]
push str.Failed_to_wait_for_executable_to_complete:__ls
jmp 0x41f325
mov edi, dword [ebp - 0x1c]
cmp edi, 0x80070bc2
jne 0x41f405
mov edi, 0xbc2
mov dword [ebp - 0x1c], edi
mov eax, edi
sub eax, 0
je 0x41f437
dec eax
je 0x41f437
sub eax, 0xbc1
je 0x41f432
sub eax, 0x23f443
je 0x41f432
dec eax
je 0x41f437
test edi, edi
jle 0x41f439
and edi, 0xffff
or edi, 0x80070000
jmp 0x41f439
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
xor edi, edi
xor esi, esi
cmp dword [ebp - 0x18], esi
je 0x41f448
push dword [ebp - 0x18]
call fcn.00430887
cmp dword [ebp - 0xc], esi
je 0x41f455
push dword [ebp - 0xc]
call fcn.00430887
cmp dword [ebp - 0x14], esi
je 0x41f462
push dword [ebp - 0x14]
call fcn.00430887
cmp dword [ebp - 0x10], esi
je 0x41f46f
push dword [ebp - 0x10]
call fcn.00430887
cmp dword [ebp - 8], esi
je 0x41f47c
push dword [ebp - 8]
call fcn.00430887
cmp dword [ebp - 4], esi
je 0x41f489
push dword [ebp - 4]
call fcn.00430887
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x38], esi
je 0x41f49c
push dword [ebp - 0x38]
call ebx
mov dword [ebp - 0x38], esi
cmp dword [ebp - 0x34], esi
je 0x41f4a9
push dword [ebp - 0x34]
call ebx
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x20], esi
je 0x41f4b8
push 4
push dword [ebp - 0x28]
call fcn.0041edc2
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0x18