Function at 0x405330
Capabilities:
Accept command line arguments
Create process on windows
Delete file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x406edb
push eax
mov al, byte [0x40989c]
mov dword fs:[0], esp
sub esp, 0x44c
test al, 1
push ebx
push ebp
push esi
push edi
jne 0x40537c
mov bl, al
push 0xa
or bl, 1
mov ecx, 0x409880
mov byte [0x40989c], bl
call sub.MFC42.DLL_CStringList::CStringList
push 0x405b80
call fcn.00405fdc
add esp, 4
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x30]
mov dword [esp + 0x464], 0
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 1
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 2
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 3
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 4
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 5
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 6
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x50]
mov byte [esp + 0x464], 7
call sub.MFC42.DLL_CString::CString_1
push 0
mov dword [esp + 0x468], 8
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call sub.MFC42.DLL_AfxWinInit
test eax, eax
je 0x405aa2
mov eax, dword [esp + 0x46c]
cmp eax, 0xb
je 0x405aa2
cmp eax, 2
jge 0x40550b
push str.Need_one_param__
call fcn.00402a30
add esp, 4
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x18
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0x17
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0x16
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0x15
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0x14
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0x13
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x12
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x464], 0x11
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x464], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 3
jmp 0x405b62
mov esi, dword [esp + 0x470]
mov eax, dword [esi + 4]
push eax
call fcn.004029f0
or ebx, 0xffffffff
mov edi, str.ssi:__
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
mov ebp, dword [sym.imp.MSVCRT.dll__strnicmp]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + 4]
push str.ssi:__
push ecx
call ebp
add esp, 0x10
test eax, eax
je 0x4055fb
push str.Unrecognized_format__
call fcn.00402a30
add esp, 4
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x20
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0x1f
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0x1e
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0x1d
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0x1c
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0x1b
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x1a
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x464], 0x19
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x464], ebx
call sub.MFC42.DLL_CString::CString
mov eax, 2
jmp 0x405b62
mov edi, str.ssi:__replay
mov ecx, ebx
xor eax, eax
mov edx, dword [esi + 4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
push edi
push str.ssi:__replay
push edx
call ebp
add esp, 0xc
test eax, eax
jne 0x4056e0
mov eax, dword [esi]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00402ca0
mov edx, dword [esi + 4]
mov eax, dword [eax]
add edx, edi
push eax
push edx
mov byte [esp + 0x474], 0x21
call fcn.00404d30
add esp, 0x10
lea ecx, [esp + 0x10]
mov byte [esp + 0x464], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x29
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0x28
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0x27
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0x26
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0x25
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0x24
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x23
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x464], 0x22
jmp 0x405a82
mov edi, str.ssi:__review
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + 4]
not ecx
dec ecx
mov edi, ecx
push edi
push str.ssi:__review
push eax
call ebp
add esp, 0xc
test eax, eax
jne 0x4057c5
mov ecx, dword [esi]
lea edx, [esp + 0x10]
push ecx
push edx
call fcn.00402ca0
mov eax, dword [eax]
mov byte [esp + 0x46c], 0x2a
push eax
mov eax, dword [esi + 4]
add eax, edi
push eax
call fcn.00405050
add esp, 0x10
lea ecx, [esp + 0x10]
mov byte [esp + 0x464], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x32
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0x31
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0x30
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0x2f
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0x2e
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0x2d
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x2c
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x464], 0x2b
jmp 0x405a82
mov edx, dword [esi + 4]
mov ecx, ebx
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push str.SsiParam
call fcn.00402a80
mov ecx, dword [esi + 4]
lea edx, [esp + 0x1c]
push ecx
push edx
call fcn.00402bd0
mov eax, dword [eax]
push 0x409880
push eax
mov byte [esp + 0x480], 0x33
call fcn.00402d10
add esp, 0x1c
lea ecx, [esp + 0x10]
mov byte [esp + 0x464], 8
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00402ca0
add esp, 8
push eax
mov ecx, 0x409880
mov byte [esp + 0x468], 0x37
call sub.MFC42.DLL_CStringList::AddTail_1
lea ecx, [esp + 0x10]
mov byte [esp + 0x464], 8
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x20]
push edx
push 0x409880
call fcn.004044d0
add esp, 8
test eax, eax
je 0x405a00
mov eax, dword [esp + 0x40]
push eax
call fcn.004029f0
push 1
lea ecx, [esp + 0x18]
push 0x409880
push ecx
call fcn.00402e10
mov eax, dword [eax]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 0x14
lea ecx, [esp + 0x10]
mov edi, eax
call sub.MFC42.DLL_CString::CString
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, 0x4b
jl 0x4058af
cmp edi, 0x4f
jle 0x4058ab
cmp edi, 0x59
jne 0x4058af
push 0x32
call ebp
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push 5
push edx
push eax
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x20
jbe 0x4059ed
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
push 0x14
lea edx, [esp + 0x20]
push 0x409880
push edx
mov byte [esp + 0x470], 0x38
call fcn.00402e10
mov eax, dword [esi]
lea ecx, [esp + 0x1c]
mov bl, 0x39
push eax
push ecx
mov byte [esp + 0x478], bl
call fcn.00402ca0
add esp, 0x14
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
push 0x7e
push edx
push ecx
push eax
lea edx, [esp + 0x28]
push str._sSsiMessage.exe__s__d__d
push edx
mov byte [esp + 0x47c], 0x3a
call sub.MFC42.DLL_CString::Format
add esp, 0x18
lea ecx, [esp + 0x10]
mov byte [esp + 0x464], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x18]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
cmp edi, 0x4b
jl 0x4059c6
cmp edi, 0x4f
jle 0x405966
cmp edi, 0x59
jne 0x4059c6
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x3b
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator
push 0x4090ec
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator_2
lea edx, [esp + 0x40]
lea ecx, [esp + 0x14]
push edx
call fcn.00405e8e
push 0x3a98
call ebp
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
lea ecx, [esp + 0x14]
mov byte [esp + 0x464], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x464], 0x38
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x464], 8
call sub.MFC42.DLL_CString::CString
or ebx, 0xffffffff
jmp 0x405a00
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push str.Execute_pragram__s_error___lu___
call fcn.00402a30
add esp, 0xc
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x43
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0x42
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0x41
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0x40
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0x3f
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0x3e
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0x3d
call sub.MFC42.DLL_CString::CString
mov byte [esp + 0x464], 0x3c
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x464], ebx
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x405b62
mov edx, dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
push str.Fatal_Error:_MFC_initialization_failed
push edx
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
push eax
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
add esp, 0xc
lea ecx, [esp + 0x50]
mov dword [esp + 0x464], 0x10
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x4c]
mov byte [esp + 0x464], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x48]
mov byte [esp + 0x464], 0xe
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x44]
mov byte [esp + 0x464], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x40]
mov byte [esp + 0x464], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3c]
mov byte [esp + 0x464], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x38]
mov byte [esp + 0x464], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x464], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov dword [esp + 0x464], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
mov ecx, dword [esp + 0x45c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x458
ret