Function at 0x440ec5
Capabilities:
Create process on windows
Get common file path

Disassembly:
mov eax, 0x44c44e
call fcn.00444524
sub esp, 0xe70
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
cmp edi, esi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], esi
je 0x4413a1
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
push edi
call fcn.004203af
test eax, eax
jl 0x4413a1
cmp dword [ebp - 0x14], 0x104
ja 0x4413a1
call sub.MFC42u.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42u.DLL_CCmdTarget::BeginWaitCursor
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 4], esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x24], esi
call fcn.00440871
cmp eax, esi
jge 0x440f79
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00440a07
mov ebx, eax
cmp ebx, esi
jge 0x440f79
cmp ebx, 0x800401f8
mov ecx, dword [0x456778]
push esi
push esi
push esi
jne 0x440f67
push dword [0x455ed0]
push 0x10
push 0x12af
jmp 0x440f6f
push edi
push 0x10
push 0x126a
call fcn.0042ee8a
jmp 0x44138c
push dword [ebp - 0x24]
call fcn.00437733
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
push edi
mov byte [ebp - 4], 1
mov dword [ebp - 0x1c], esi
call fcn.0044065e
mov ebx, eax
cmp ebx, esi
jge 0x440fc9
push dword [ebp + 0xc]
call sub.MFC42u.DLL_operatordelete
pop ecx
mov ecx, dword [0x456778]
push esi
push esi
push esi
push edi
push 0x10
push 0x126a
call fcn.0042ee8a
jmp 0x441384
push edi
call fcn.0043760a
cmp dword [ebp - 0x10], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], esi
je 0x441353
cmp eax, 2
je 0x441353
mov ecx, dword [ebp - 0x20]
push 0x104
lea eax, [ebp - 0x67c]
push eax
push edi
call fcn.00440cc1
mov ebx, eax
cmp ebx, esi
jl 0x441030
push dword [0x455ed8]
lea eax, [ebp - 0xe7c]
push dword [0x455ed4]
push dword [ebp + 0xc]
push 0x40a2d0
push 0x400
push eax
call fcn.00440c99
mov ebx, eax
add esp, 0x18
cmp ebx, esi
jge 0x441046
push dword [ebp + 0xc]
call sub.MFC42u.DLL_operatordelete
push dword [ebp - 0x1c]
call sub.MFC42u.DLL_operatordelete
pop ecx
jmp 0x440fad
xor eax, eax
push 0xf
pop ecx
lea edi, [ebp - 0x64]
rep stosd dword es:[edi], eax
mov eax, dword [0x456778]
mov dword [ebp - 0x64], 0x3c
mov dword [ebp - 0x60], 0x400
mov eax, dword [eax + 0x20]
cmp eax, esi
jne 0x44106f
mov dword [ebp - 0x5c], esi
jmp 0x441075
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0xe7c]
push 0x41
mov dword [ebp - 0x50], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x26c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x67c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov edi, eax
lea eax, [ebp - 0x67c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
cmp edi, eax
jbe 0x4410ce
sub edi, eax
sar edi, 1
push edi
push eax
push 0x104
lea eax, [ebp - 0x26c]
push eax
call fcn.004171e7
push eax
call fcn.00416530
mov dword [ebp - 0x14], esi
push 0x20019
mov edi, 0x40a2c0
push edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.0044050a
test eax, eax
jne 0x441169
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
mov ecx, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x26c]
push eax
push dword [ebp + 0xc]
call fcn.00440b7b
lea eax, [ebp - 0x64]
push eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x48], 7
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x441162
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x44113a
call edi
mov ebx, eax
jmp 0x44114a
call edi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
mov ecx, dword [0x456778]
push esi
push esi
push esi
push dword [ebp + 8]
push 0x10
push 0x126a
call fcn.0042ee8a
mov dword [ebp - 0x18], 1
push 0x20019
mov edi, 0x40a2b4
push edi
push dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
call fcn.0044050a
test eax, eax
jne 0x441207
cmp dword [ebp - 0x18], esi
jne 0x441342
push dword [ebp + 0xc]
call fcn.0044053f
test eax, eax
je 0x441210
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
mov ecx, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x26c]
push eax
push dword [ebp + 0xc]
call fcn.00440b7b
mov eax, dword [0x456778]
mov eax, dword [eax + 0x20]
cmp eax, esi
jne 0x4411cd
xor eax, eax
jmp 0x4411d0
mov eax, dword [eax + 0x20]
push esi
push esi
push esi
push dword [ebp + 8]
push edi
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jg 0x441200
mov ecx, dword [0x456778]
push esi
push esi
push esi
push dword [ebp + 8]
mov ebx, 0x80004005
push 0x10
push 0x126a
call fcn.0042ee8a
mov dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], esi
jne 0x441342
cmp dword [ebp - 0x28], 3
jne 0x441342
lea eax, [ebp - 0x26c]
push eax
call dword [sym.imp.msvcrt.dll_wcslen]
pop ecx
mov ecx, dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x26c]
push eax
push dword [ebp + 0xc]
call fcn.00440b7b
xor eax, eax
mov word [ebp - 0x474], si
mov ecx, 0x81
lea edi, [ebp - 0x472]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, 0x104
push edi
lea eax, [ebp - 0x474]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x441319
lea eax, [ebp - 0x67c]
push eax
push dword [0x455ed4]
lea eax, [ebp - 0x474]
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
push 0x40a258
lea eax, [ebp - 0xe7c]
push 0x400
push eax
call fcn.00440c99
mov ebx, eax
add esp, 0x20
cmp ebx, esi
jl 0x4412bb
push 0x40a23c
push edi
lea eax, [ebp - 0x474]
push eax
call fcn.00417208
mov ebx, eax
cmp ebx, esi
lea eax, [ebp - 0x474]
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x54], eax
jl 0x44133b
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x44133b
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x4412ef
call edi
mov ebx, eax
jmp 0x4412ff
call edi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
mov ecx, dword [0x456778]
push esi
push esi
push esi
push dword [ebp + 8]
push 0x10
push 0x126a
call fcn.0042ee8a
jmp 0x44133b
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jg 0x44132b
call edi
mov ebx, eax
jmp 0x44133b
call edi
mov ebx, eax
and ebx, 0xffff
or ebx, 0x80070000
mov dword [ebp - 0x18], 1
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.00413ca6
cmp dword [ebp - 0x18], esi
jne 0x441372
mov ecx, dword [0x456778]
push esi
push esi
push dword [ebp + 0xc]
push dword [ebp - 0x1c]
push 0x10
push 0x126d
call fcn.0042ee8a
mov ebx, 0x80004005
push dword [ebp + 0xc]
call sub.MFC42u.DLL_operatordelete
push dword [ebp - 0x1c]
call sub.MFC42u.DLL_operatordelete
pop ecx
pop ecx
lea ecx, [ebp - 0x10]
call fcn.00413ca6
or dword [ebp - 4], 0xffffffff
call sub.MFC42u.DLL_AfxGetModuleState
mov ecx, dword [eax + 4]
call sub.MFC42u.DLL_CCmdTarget::EndWaitCursor
mov eax, ebx
jmp 0x4413a6
mov eax, 0x80070057
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8