Function at 0x477050
Capabilities:
Create process on windows
Get common file path
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
xor ebx, ebx
push str._________Inside_execute_Method___________n
mov dword [ebp - 4], ebx
call fcn.00423960
add esp, 4
cmp dword [0x515dac], ebx
je 0x47709a
mov eax, dword [ebp + 0xc]
push eax
push str.execute_:_Shutdown_is_in_Progress._So_returning_without_executing_the_process__s_._n
call fcn.00423ad0
mov ecx, dword [ebp + 0x10]
push str.Machine_is_shutdown._Installation_will_retried_in_the_next_reboot
push ecx
call fcn.0042bfe0
add esp, 0x10
mov eax, 0x4d5
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x4771cf
push 0x1000
push 1
call fcn.00491e51
add esp, 8
mov ebx, eax
push ebx
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [ebp - 4], eax
test eax, eax
jne 0x477107
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.execute:_Failed_to_get_the_CurrentWorkingDirectory__n
mov dword [ebp - 4], eax
call fcn.00423ad0
mov edx, dword [ebp - 4]
push edx
call fcn.004635b0
mov eax, dword [ebp - 4]
push eax
call fcn.00463420
mov ecx, dword [ebp + 0x10]
push eax
push ecx
call fcn.0042bfe0
mov eax, dword [ebp - 4]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x1000
jbe 0x477139
push eax
push str.execute_:_CurrentWorkingDirectory_Buffer_overflow._Need_to_allocate_the_length_for__d_chars__n
call fcn.00423ad0
mov edx, dword [ebp - 4]
push edx
call fcn.00463420
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0042bfe0
mov eax, dword [ebp - 4]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4771b2
push ebx
push str.execute_:_Current_Working_Directory_:__s__n
call fcn.00423db0
push esi
push str.execute_:_Executing_Application_Source_:__s__n
call fcn.00423db0
push edi
push str.execute_:_Set_Working_Directory_:__s__n
call fcn.00423db0
add esp, 0x18
push edi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x4771d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
push str.execute_:_Failed_to_set_the_WorkingDirectory__s__n
mov dword [ebp - 4], eax
call fcn.00423ad0
mov ecx, dword [ebp - 4]
push ecx
call fcn.004635b0
push ebx
call fcn.0048efd8
mov edx, dword [ebp - 4]
push edx
call fcn.00463420
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0042bfe0
mov eax, dword [ebp - 4]
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push eax
call fcn.00463420
mov ecx, dword [ebp + 0x10]
push eax
push ecx
call fcn.0042bfe0
mov eax, dword [ebp - 4]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
xor eax, eax
push 0x44
push eax
lea edx, [ebp - 0x58]
push edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
call fcn.00492ac0
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov dword [ebp - 0x58], 0x44
je 0x47720c
mov eax, 1
mov dword [ebp - 0x2c], 1
mov word [ebp - 0x28], ax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x58]
push edx
push edi
push 0
push 0xc000000
push 0
push 0
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x47725d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.execute_:_Failed_to_Create_the_Process_for_the_application__n
mov dword [ebp - 4], eax
call fcn.00423db0
mov eax, dword [ebp - 4]
push eax
call fcn.00463420
mov ecx, dword [ebp + 0x10]
push eax
push ecx
call fcn.0042bfe0
add esp, 0x10
jmp 0x4773b6
mov esi, dword [ebp + 0x14]
test esi, esi
jne 0x47727f
push esi
mov dword [ebp - 4], esi
call fcn.00463420
mov edx, dword [ebp + 0x10]
push eax
push edx
call fcn.0042bfe0
add esp, 0xc
jmp 0x4773b6
mov ecx, dword [ebp - 0x14]
mov eax, esi
imul eax, eax, 0xea60
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x4772b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_:_WaitForSingleObject_Failed_with_error_code__d__n
call fcn.00423ad0
add esp, 8
jmp 0x4773b6
test eax, eax
je 0x477357
push esi
mov esi, dword [ebp + 0xc]
push esi
push str.execute_:_Terminating_the_Process_for_application__s_as_time_is_exceeded__d_Minutes__n
mov dword [ebp - 4], 0x102
call fcn.00423db0
mov edx, dword [ebp - 4]
push edx
call fcn.00463420
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0042bfe0
mov ecx, dword [ebp - 0x14]
add esp, 0x18
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
je 0x477341
push str.execute_:_The_process_has_been_successfully_terminated_..___n
call fcn.00423db0
push str.dcinventory.exe
push esi
call fcn.00495a60
add esp, 0xc
test eax, eax
je 0x4773b6
mov edx, esi
push edx
push str.executeFileName_:__s_contains_dcinventory.exe._Reset_Asset_Lock_n
call fcn.00423db0
push 4
push 0x4d08a4
push str.AssetLock
push str.SoftwareAdventNetDesktopCentralDCAgent
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00478900
add esp, 0x1c
jmp 0x4773b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_:_The_process_termination_is_failed_with_error_code_:__d__n
call fcn.00423ad0
add esp, 8
jmp 0x4773b6
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x477392
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.execute_:_Unable_to_find_the_exit_code_for_the_application_and_the_error_code_is_:__d__n
mov dword [ebp - 4], eax
call fcn.00423db0
mov edx, dword [ebp - 4]
push edx
call fcn.00463420
push eax
mov eax, dword [ebp + 0x10]
push eax
call fcn.0042bfe0
jmp 0x4773b3
mov ecx, dword [ebp - 4]
push ecx
call fcn.00463420
mov edx, dword [ebp + 0x10]
push eax
push edx
call fcn.0042bfe0
mov eax, dword [ebp - 4]
push eax
push str.execute_:_Exit_code_for_the_application_:__d__n
call fcn.00423db0
add esp, 0x14
mov ecx, dword [ebp - 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov edx, dword [ebp - 0x14]
push edx
call esi
test edi, edi
je 0x4773e0
test ebx, ebx
je 0x4773e0
push ebx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push ebx
call fcn.0048efd8
add esp, 4
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push eax
push edx
push str.execute_:_Remarks_from_the_CreateProcess_is__s_for_the_executable__s__n
call fcn.00423db0
push str._________End_Of_execute_Method___________n
call fcn.00423960
mov eax, dword [ebp - 4]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret