Function at 0x4172f0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x454cd0
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x478990]
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
push str.LaunchAppCreateProcess
lea ecx, [ebp - 0x6c]
mov dword [ebp - 4], 1
mov dword [ebp - 0x6c], 0
call fcn.00406740
push str.Start_function_LaunchAppCreateProcess...
push dword [ebp - 0x6c]
mov byte [ebp - 4], 2
push 0xa
push 0x47d0b4
call fcn.00417de0
push dword [ebp + 8]
push str.szCommand_s
push dword [ebp - 0x6c]
push 0xa
push 0x47d0b4
call fcn.00417de0
push dword [ebp + 0xc]
push str.szParameters_s
push dword [ebp - 0x6c]
push 0xa
push 0x47d0b4
call fcn.00417de0
movzx eax, byte [ebp + 0x10]
push eax
push str.bWait_d
push dword [ebp - 0x6c]
push 0xa
push 0x47d0b4
call fcn.00417de0
mov bl, byte [ebp + 0x14]
add esp, 0x4c
movzx eax, bl
push eax
push str.bSilent_d
push dword [ebp - 0x6c]
push 0xa
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
call fcn.0041c8d4
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4173d2
push 0x80004005
call fcn.00406820
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x70], esi
xor eax, eax
mov byte [ebp - 4], 3
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x68], 0x44
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov word [ebp - 0x38], ax
mov dword [ebp - 0x3c], 1
test bl, bl
jne 0x41744b
mov dword [ebp - 0x3c], eax
xor eax, eax
mov word [ebp - 0x36], ax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x74]
push 0x4695c8
push eax
call fcn.00410d10
push 0x45adfc
push eax
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 4], 4
call fcn.004057f0
lea ecx, [ebp + 0xc]
push ecx
push eax
lea eax, [ebp - 0x80]
push eax
mov byte [ebp - 4], 5
call fcn.00405730
add esp, 0x24
mov edi, eax
mov ecx, dword [edi]
mov edx, 1
sub edx, dword [ecx - 4]
mov ecx, dword [ecx - 8]
or ecx, edx
mov byte [ebp - 4], 6
jge 0x4174b7
push 0
mov ecx, edi
call fcn.00406510
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x68]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push dword [edi]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov edx, dword [ebp - 0x80]
test eax, eax
sete byte [ebp - 0x75]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 5
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4174ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41751f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41753f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x75], 0
je 0x4175a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x409
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x74]
push eax
call fcn.00416190
push dword [eax]
mov byte [ebp - 4], 7
push dword [ebp - 0x14]
push dword [ebp + 8]
push str.CreateProcess_failed_to_start_file_s._Errorcode_d___s_
push dword [ebp - 0x6c]
push 1
push 0x47d0b4
call fcn.00417de0
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
add esp, 0x28
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417876
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x417876
push dword [ebp + 8]
push str.CreateProcess_successfully_starts_file_s
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x70]
jne 0x41764a
push str.Do_not_wait_for_started_process_due_WAITfalse
push eax
call fcn.00405f50
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x103
cmove eax, ecx
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x70]
push str.Return_from_function_with_errorcode_d
push eax
call fcn.00405f50
mov esi, dword [ebp - 0x70]
push esi
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0x1c
push dword [ebp - 0x24]
call edi
push dword [ebp - 0x20]
call edi
jmp 0x417876
push str.Wait_for_exit_started_process...
push eax
call fcn.00405f50
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
mov edi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
add esp, 0x18
push 0x493e0
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
push esi
push str.Loop_returns__d
push dword [ebp - 0x6c]
push 0xa
push 0x47d0b4
call fcn.00417de0
add esp, 0x14
cmp esi, 0x102
jne 0x4176a9
mov dword [ebp - 0x14], 0x103
jmp 0x417670
cmp esi, 0xffffffff
je 0x4177b2
cmp esi, 0x80
je 0x41778a
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x24]
call edi
test eax, eax
jne 0x417778
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0x409
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.00416190
push dword [eax]
mov byte [ebp - 4], 0xa
push esi
push esi
push str.GetExitCodeProcess_from_SIA_fails_with__lu__0x_x___message__s__
push dword [ebp - 0x6c]
push 0
push 0x47d0b4
call fcn.00417de0
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
add esp, 0x28
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417725
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x409
push dword [ebp - 0x14]
lea eax, [ebp - 0x7c]
push eax
call fcn.00416190
push dword [eax]
mov eax, dword [ebp - 0x14]
push eax
push eax
push str.Read_error_code_from_SIA__can_be_random_value_:__lu__0x_x___message__s__
push dword [ebp - 0x6c]
mov byte [ebp - 4], 0xb
push 0
push 0x47d0b4
call fcn.00417de0
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
add esp, 0x28
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417778
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x14], 0x103
je 0x417670
jmp 0x417819
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x409
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x74]
push eax
call fcn.00416190
push dword [eax]
mov byte [ebp - 4], 9
push dword [ebp - 0x14]
push str.WaitForSingleObject_failed__WAIT_ABANDONED____GetLastError__d___description__s_
jmp 0x4177d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x409
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x74]
push eax
call fcn.00416190
push dword [eax]
mov byte [ebp - 4], 8
push dword [ebp - 0x14]
push str.WaitForSingleObject_failed__WAIT_FAILED____GetLastError__d___description__s_
lea eax, [ebp - 0x70]
push eax
call fcn.00405f50
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
mov byte [ebp - 4], 3
add esp, 0x1c
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417804
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
push 1
push 0x47d0b4
call fcn.00417de0
add esp, 0x10
push dword [ebp - 0x14]
lea eax, [ebp - 0x70]
push str.Started_process_exits_with_errocode_d
push eax
call fcn.00405f50
push dword [ebp - 0x70]
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0x1c
push dword [ebp - 0x24]
call esi
push dword [ebp - 0x20]
call esi
push dword [ebp - 0x14]
lea eax, [ebp - 0x70]
push str.Return_from_LaunchAppCreateProcess_with_errorcode_d
push eax
call fcn.00405f50
mov esi, dword [ebp - 0x70]
push esi
push dword [ebp - 0x6c]
push 8
push 0x47d0b4
call fcn.00417de0
add esp, 0x1c
mov edi, dword [ebp - 0x14]
add esi, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x417896
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4178b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4178d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0xc]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4178f7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
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.0043e7dc
mov esp, ebp
pop ebp
ret