Function at 0x401c40
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push 0xffffffffffffffff
push 0x412702
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x16c
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x78]
mov dword [esp + 0x180], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x78]
push eax
call fcn.00404180
add esp, 4
call fcn.00403780
or ebp, 0xffffffff
lea edi, [esp + 0x78]
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401eac
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x14]
call fcn.00412206
mov ecx, esi
call fcn.00401ee0
test al, al
je 0x401eac
mov ecx, esi
call fcn.00403120
test eax, eax
jne 0x401ceb
push eax
push 0x415138
push 0x415104
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x401eac
call fcn.00403860
test al, al
je 0x401eac
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x180], 1
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x1c]
mov byte [esp + 0x180], 2
push edx
call fcn.00403a60
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x184], 3
call fcn.00412260
lea ecx, [esp + 0x1c]
mov byte [esp + 0x180], 2
call fcn.00412128
push str.user_sware.dwg
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x34]
push str._acad.exe
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x40], 0x44
mov dword [esp + 0x6c], 1
mov word [esp + 0x70], 3
call sub.MFC42.DLL_operator
push 0x4150e4
lea ecx, [esp + 0x10]
mov byte [esp + 0x184], 4
call sub.MFC42.DLL_CString::CString_2
lea edx, [esp + 0x14]
lea ecx, [esp + 0xc]
push edx
mov byte [esp + 0x184], 5
call sub.MFC42.DLL_CString::operator_1
push str.___p_Veqics
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push str.2004
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push 0x415030
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push str.__b_veqics
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push str.__nologo
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
call fcn.00401b40
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x18]
mov eax, dword [eax - 8]
push eax
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 0xc]
mov esi, eax
mov eax, dword [ecx - 8]
lea ecx, [esp + 0xc]
push eax
call sub.MFC42.DLL_CString::GetBuffer
lea edx, [esp + 0x24]
lea ecx, [esp + 0x34]
push edx
push ecx
push 0
push 0
push 0x20
push 0
push 0
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov edx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [esp + 0x28]
push eax
call esi
push 0x5dc
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0xc]
mov byte [esp + 0x180], 4
call fcn.00412128
lea ecx, [esp + 0x18]
mov byte [esp + 0x180], 2
call fcn.00412128
lea ecx, [esp + 0x14]
mov byte [esp + 0x180], 1
call fcn.00412128
lea ecx, [esp + 0x20]
mov byte [esp + 0x180], 0
call fcn.00412128
lea ecx, [esp + 0x10]
mov dword [esp + 0x180], ebp
call fcn.00412128
mov ecx, dword [esp + 0x178]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x178
ret