Function at 0x402400
Capabilities:
Accept command line arguments
Get file size
Get process heap flags
Read file on windows
Set console window title
Set current directory
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x548
mov eax, dword [ecx + 4]
mov dword [ebp - 0x510], eax
mov esi, eax
call dbg.__main
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x402a4a
mov dword [esp + 4], str.__app_name
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_strcmp]
test eax, eax
jne 0x4028f5
mov eax, dword [ebp - 0x510]
mov esi, dword [eax + 8]
mov dword [ebp - 0x50c], esi
test esi, esi
je 0x402a4a
add eax, 0xc
mov edx, dword [eax]
test edx, edx
je 0x402985
mov ebx, dword [eax + 4]
lea edi, [eax + 4]
mov dword [ebp - 0x4fc], edi
test ebx, ebx
je 0x40297f
mov dword [ebp - 0x500], edi
xor esi, esi
lea esi, [esi]
nop
movzx eax, byte [ebx]
xor ecx, ecx
test al, al
sete cl
mov edi, ecx
je 0x40283d
mov edx, ebx
xor ecx, ecx
jmp 0x4024d5
cmp al, 9
je 0x402760
cmp al, 0x20
je 0x402760
cmp al, 0x22
je 0x402770
xor ecx, ecx
movzx eax, byte [edx + 1]
add edx, 1
test al, al
je 0x4024e7
cmp al, 0x5c
jne 0x4024b0
movzx eax, byte [edx + 1]
add edx, 1
add ecx, 1
test al, al
jne 0x4024d5
sub edx, ebx
add edx, 1
add dword [ebp - 0x500], 4
mov eax, dword [ebp - 0x500]
add esi, edx
lea esi, [esi + edi*2]
mov ebx, dword [eax]
test ebx, ebx
jne 0x402490
lea eax, [esi + 1]
test esi, esi
mov edx, 2
mov dword [ebp - 0x508], esi
cmove eax, edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x40264c
mov ebx, dword [ebp - 0x508]
lea eax, [eax + 1]
mov dword [ebp - 0x500], eax
mov eax, 0xff
cmp ebx, eax
cmovle eax, ebx
mov byte [esi], al
mov eax, dword [ebp - 0x4fc]
mov ebx, dword [eax]
test ebx, ebx
je 0x402635
mov dword [ebp - 0x514], esi
lea esi, [esi]
nop
movzx ecx, byte [ebx]
xor eax, eax
test cl, cl
sete al
mov edi, eax
je 0x402966
mov edx, ebx
mov eax, ecx
xor esi, esi
jmp 0x4025b3
cmp al, 0x22
je 0x402780
movzx eax, byte [edx + 1]
add edx, 1
test al, al
je 0x4025d3
cmp al, 0x20
je 0x4025bb
cmp al, 9
jne 0x4025a0
test esi, esi
jne 0x402790
movzx eax, byte [edx + 1]
add edx, 1
mov edi, 1
test al, al
jne 0x4025b3
test edi, edi
jne 0x402847
test esi, esi
jne 0x402830
mov dword [esp + 4], ebx
mov edi, dword [ebp - 0x500]
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_strcpy]
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_strlen]
lea edx, [edi + eax]
test esi, esi
je 0x40260c
mov byte [edx], 0x22
add edx, 1
lea eax, [edx + 1]
add dword [ebp - 0x4fc], 4
mov dword [ebp - 0x500], eax
mov eax, dword [ebp - 0x4fc]
mov byte [edx], 0x20
mov ebx, dword [eax]
test ebx, ebx
jne 0x402580
mov esi, dword [ebp - 0x514]
cmp dword [ebp - 0x508], 1
adc dword [ebp - 0x500], 0xffffffff
mov eax, dword [ebp - 0x500]
mov byte [eax], 0
test byte [0x404000], 8
jne 0x402874
lea eax, [ebp - 0x3d8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetStartupInfoA]
mov eax, 2
mov word [ebp - 0x4ec], ax
sub esp, 4
mov eax, 1
test byte [ebp - 0x3ac], 1
jne 0x402868
mov word [ebp - 0x4ea], ax
xor eax, eax
mov word [ebp - 0x4dd], ax
mov dword [esp], esi
call sym._MapLS_4
mov dword [ebp - 0x4db], eax
sub esp, 4
lea eax, [ebp - 0x4ec]
mov dword [esp], eax
call sym._MapLS_4
mov dword [ebp - 0x4d3], 0
sub esp, 4
mov dword [ebp - 0x4d7], eax
mov dword [esp], 1
call sym._RestoreThunkLock_4
sub esp, 4
mov dword [esp], str.gdi.exe
call sym._LoadLibrary16_4
sub esp, 4
mov dword [esp], str.user.exe
call sym._LoadLibrary16_4
sub esp, 4
mov dword [esp], str.mmsystem.dll
call sym._LoadLibrary16_4
lea eax, [ebp - 0x4dd]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x50c]
mov dword [esp], eax
call sym._LoadModule16_8
movzx ebx, ax
sub esp, 8
cmp bx, 0x1f
jbe 0x402a63
lea eax, [ebp - 0x18c]
mov dword [esp], eax
call sym._ReleaseThunkLock_4
sub esp, 4
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_Sleep]
xor eax, eax
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
xor ecx, ecx
mov edi, 1
jmp 0x4024ca
lea esi, [esi + ecx*2 + 1]
xor ecx, ecx
jmp 0x4024ca
test edi, edi
jne 0x402790
mov esi, 1
jmp 0x4025a8
mov eax, dword [ebp - 0x500]
mov byte [eax], 0x22
lea edx, [eax + 1]
movzx ecx, byte [ebx]
test cl, cl
je 0x402606
mov esi, 1
xor edi, edi
mov dword [ebp - 0x500], esi
mov esi, edi
mov edi, ebx
mov ebx, edx
jmp 0x4027d6
cmp cl, 0x22
je 0x402800
mov byte [ebx], cl
xor esi, esi
mov ebx, eax
movzx ecx, byte [edi + 1]
add edi, 1
test cl, cl
je 0x4027f0
lea eax, [ebx + 1]
cmp cl, 0x5c
jne 0x4027c0
add edi, 1
mov byte [ebx], 0x5c
add esi, 1
mov ebx, eax
movzx ecx, byte [edi]
test cl, cl
jne 0x4027d6
mov esi, dword [ebp - 0x500]
mov edx, ebx
jmp 0x402602
lea ecx, [esi + 1]
mov dword [esp + 8], ecx
mov dword [ebp - 0x504], ecx
mov dword [esp], ebx
mov dword [esp + 4], 0x5c
call sym._memset
mov ecx, dword [ebp - 0x504]
add ecx, ebx
lea ebx, [ebx + esi + 2]
xor esi, esi
mov byte [ecx], 0x22
jmp 0x4027cb
mov edx, dword [ebp - 0x500]
xor esi, esi
jmp 0x4027ac
mov edx, 1
jmp 0x4024ec
mov eax, dword [ebp - 0x500]
mov byte [eax], 0x22
lea edx, [eax + 1]
test esi, esi
jne 0x40279c
mov dword [ebp - 0x500], edx
mov esi, edi
jmp 0x4025e3
movzx eax, word [ebp - 0x3a8]
jmp 0x402689
mov dword [esp], global___dbch
call sym.___wine_dbg_get_channel_flags
test al, 8
je 0x402659
test byte [0x404000], 8
jne 0x40299d
mov eax, dword [ebp - 0x510]
mov edi, dword [ebp - 0x510]
xor ebx, ebx
mov eax, dword [eax]
test eax, eax
jne 0x4028be
jmp 0x402659
add ebx, 1
mov eax, dword [edi + ebx*4]
test eax, eax
je 0x402659
test byte [0x404000], 8
je 0x4028b0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.argv__d_:__s_n
mov dword [esp + 8], str.main
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x4028b0
mov dword [esp + 4], ebx
xor ecx, ecx
lea esi, [ebp - 0x394]
xor ebx, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], str..exe
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_SearchPathA]
mov dword [ebp - 0x50c], esi
mov edx, eax
mov eax, dword [ebp - 0x510]
sub esp, 0x18
add eax, 4
test edx, edx
jne 0x402465
mov eax, dword [ebp - 0x510]
mov eax, dword [eax + 4]
mov dword [esp], str.winevdm:_unable_to_exec__s:_file_not_found_n
mov dword [esp + 4], eax
call dbg.wine_dbg_printf
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov eax, dword [ebp - 0x500]
mov esi, edi
mov byte [eax], 0x22
add eax, 1
mov dword [ebp - 0x500], eax
jmp 0x4025e3
mov eax, dword [ebp - 0x4fc]
mov dword [ebp - 0x4fc], eax
xor eax, eax
mov dword [ebp - 0x508], eax
mov eax, 2
jmp 0x402517
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [esp + 0xc], str.GetCommandLine___s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.main
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402895
mov eax, dword [ebp - 0x50c]
mov dword [esp + 0xc], str.appname___s_n
mov dword [esp + 8], str.main
mov dword [esp + 0x10], eax
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402895
lea eax, [esi + 1]
mov dword [esp + 0x14], eax
movsx eax, byte [esi]
mov dword [esp + 0xc], str.cmdline___.s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.main
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402895
mov dword [esp], str.Usage:_winevdm.exe____app_name_app.exe__command_line_n_n
call dbg.wine_dbg_printf
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
cmp bx, 0xb
je 0x402ab1
mov eax, dword [ebp - 0x50c]
mov dword [esp], str.winevdm:_cant_exec__s:
mov dword [esp + 4], eax
call dbg.wine_dbg_printf
cmp bx, 2
jne 0x402a9f
mov dword [esp], str.file_not_found_n
mov ebx, 2
call dbg.wine_dbg_printf
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 4], ebx
mov dword [esp], str.error_d_n
call dbg.wine_dbg_printf
jmp 0x402a96
mov dword [esp + 4], 0x2e
mov eax, dword [ebp - 0x50c]
lea ebx, [esi + 1]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_strrchr]
mov dword [ebp - 0x518], eax
call eax
mov dword [ebp - 0x500], ebx
test eax, eax
je 0x402afa
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll__stricmp]
mov dword [esp + 4], str..pif
mov dword [ebp - 0x514], eax
call eax
mov ebx, eax
test eax, eax
je 0x402b33
mov esi, dword [ebp - 0x50c]
mov edx, dword [ebp - 0x500]
mov eax, esi
call dbg.start_dosbox
mov dword [esp + 4], esi
mov dword [esp], str.winevdm:_cant_exec__s:
call dbg.wine_dbg_printf
mov dword [esp], str.invalid_program_file_n
mov ebx, 0xb
call dbg.wine_dbg_printf
jmp 0x402a96
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x10], 3
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov eax, dword [ebp - 0x50c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [ebp - 0x4fc], eax
sub esp, 0x1c
add eax, 1
je 0x402d98
lea eax, [ebp - 0x4e8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileSizeEx]
push edx
push edx
test eax, eax
je 0x403470
mov eax, 0x186
cmp eax, dword [ebp - 0x4e8]
sbb ebx, dword [ebp - 0x4e4]
jge 0x403470
xor ebx, ebx
mov eax, dword [sym.imp.kernel32.dll_SetFilePointer]
xor edi, edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x4fc]
mov dword [esp], ebx
mov dword [ebp - 0x510], eax
call eax
lea eax, [ebp - 0x4f0]
sub esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.kernel32.dll_ReadFile]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x18c]
mov dword [esp + 8], 0x171
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [ebp - 0x508], eax
call eax
sub esp, 0x14
test eax, eax
je 0x403428
test byte [0x404000], 8
jne 0x4032ce
xor ecx, ecx
lea eax, [ebp - 0x4f0]
lea ebx, [ebp - 0x4cf]
mov dword [esp + 8], 0x16
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x508]
call eax
sub esp, 0x14
mov dword [esp + 8], 0xf
mov dword [esp + 4], str.MICROSOFT_PIFEX
mov dword [esp], ebx
call sym._strncmp
mov dword [ebp - 0x504], eax
test eax, eax
jne 0x403263
mov dword [ebp - 0x51c], esi
movzx eax, word [ebp - 0x4bf]
test ax, ax
js 0x402f4d
lea edx, [eax + 0x16]
movzx edx, dx
cmp dword [ebp - 0x4e8], edx
mov edx, dword [ebp - 0x4e4]
sbb edx, 0
jl 0x402f4d
xor edx, edx
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x4fc]
mov dword [esp], esi
mov eax, dword [ebp - 0x510]
call eax
sub esp, 0x10
test eax, eax
je 0x403428
xor eax, eax
mov dword [esp + 8], 0x16
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4f0]
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
mov dword [esp], esi
mov eax, dword [ebp - 0x508]
call eax
sub esp, 0x14
test eax, eax
je 0x403428
cmp byte [ebp - 0x4cf], 0
je 0x402c89
test byte [0x404000], 8
jne 0x402ef4
mov dword [esp + 8], 0xb
mov dword [esp + 4], str.WINDOWS_386
mov dword [esp], ebx
call sym._strncmp
test eax, eax
jne 0x402c89
xor eax, eax
mov dword [esp + 8], 0x68
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x4f0]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x290]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x508]
call eax
sub esp, 0x14
test byte [0x404000], 8
jne 0x402df4
mov dword [ebp - 0x504], 1
jmp 0x402c89
test byte [0x404000], 2
jne 0x402dbc
mov eax, dword [ebp - 0x50c]
mov dword [esp], str.winevdm:_cant_exec__s:
mov dword [esp + 4], eax
call dbg.wine_dbg_printf
jmp 0x402b1d
mov eax, dword [ebp - 0x50c]
or edx, 0xffffffff
call sym._wine_dbgstr_an
mov dword [esp + 0xc], str.open_file__s_failed_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.pif_cmd
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x402da1
movzx eax, word [ebp - 0x284]
mov dword [esp + 0x24], eax
movzx eax, word [ebp - 0x282]
mov dword [esp + 0x20], eax
movzx eax, word [ebp - 0x288]
mov dword [esp + 0x1c], eax
movzx eax, word [ebp - 0x286]
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0x290]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0x28e]
mov dword [esp + 0xc], str.386rec:_memory_reqd__d_desd__d_EMS_reqd__d_desd__d_XMS_reqd__d_desd__d_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402d89
movzx eax, word [ebp - 0x27c]
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0x27e]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0x280]
mov dword [esp + 0xc], str.386rec:_option_0x_x_memory_0x_x_video_0x_x_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402d89
or edx, 0xffffffff
lea eax, [ebp - 0x268]
call sym._wine_dbgstr_an
mov dword [esp + 0xc], str.386rec:_optional_parameters__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402d89
movzx ecx, word [ebp - 0x4bf]
or edx, 0xffffffff
mov eax, ebx
movzx esi, word [ebp - 0x4bb]
mov dword [ebp - 0x520], ecx
call sym._wine_dbgstr_an
mov ecx, dword [ebp - 0x520]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], str.reading_record__s_size__d_next_0x_x_n
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402d2a
lea eax, [ebp - 0x168]
mov esi, dword [ebp - 0x51c]
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
lea eax, [ebp - 0x49a]
mov dword [esp], eax
call dbg.lstrcpynA
lea eax, [ebp - 0x18a]
sub esp, 0xc
mov dword [esp + 4], eax
lea eax, [ebp - 0x4b9]
mov dword [esp + 8], 0x1f
mov dword [esp], eax
call dbg.lstrcpynA
sub esp, 0xc
cmp dword [ebp - 0x504], 0
mov dword [esp + 8], 0x41
je 0x4031e3
lea eax, [ebp - 0x268]
lea ebx, [ebp - 0x419]
mov dword [esp + 4], eax
lea eax, [ebp - 0x45a]
mov dword [ebp - 0x508], eax
mov dword [esp], eax
call dbg.lstrcpynA
lea eax, [ebp - 0x127]
sub esp, 0xc
mov dword [esp + 8], 0x41
mov dword [esp + 4], eax
mov dword [esp], ebx
call dbg.lstrcpynA
movzx eax, word [ebp - 0x27c]
sub esp, 0xc
and eax, 0x10
mov dword [ebp - 0x504], eax
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push eax
lea eax, [ebp - 0x49a]
mov dword [esp + 4], 0x2e
mov dword [esp], eax
mov eax, dword [ebp - 0x518]
call eax
test eax, eax
je 0x403053
mov dword [esp + 4], str..bat
mov dword [esp], eax
mov eax, dword [ebp - 0x514]
call eax
test eax, eax
jne 0x403053
test byte [0x404000], 1
jne 0x40323c
cmp byte [ebp - 0x419], 0
jne 0x403155
xor eax, eax
xor ecx, ecx
lea ebx, [ebp - 0x290]
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], eax
lea eax, [ebp - 0x49a]
mov dword [esp + 4], eax
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SearchPathA]
sub esp, 0x18
test eax, eax
je 0x403107
cmp dword [ebp - 0x504], 0
jne 0x4030eb
cmp byte [esi + 1], 0
jne 0x4030c3
mov eax, dword [ebp - 0x508]
cmp byte [ebp - 0x45a], 0
cmove eax, dword [ebp - 0x500]
mov dword [ebp - 0x500], eax
mov edx, dword [ebp - 0x500]
mov eax, ebx
call dbg.start_dosbox
mov eax, dword [ebp - 0x50c]
mov dword [esp], str.winevdm:_cant_exec__s:
mov dword [esp + 4], eax
call dbg.wine_dbg_printf
jmp 0x402b1d
call dword [sym.imp.kernel32.dll_AllocConsole]
test eax, eax
je 0x4030a3
lea eax, [ebp - 0x4b9]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SetConsoleTitleA]
push eax
jmp 0x4030a3
mov eax, dword [ebp - 0x50c]
mov dword [esp + 4], str._s_nInvalid_program_file_name._Check_your_pif_file.
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._sprintf
xor edx, edx
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.16_bit_DOS_subsystem
mov dword [esp], edx
call dword [sym.imp.user32.dll_MessageBoxA]
sub esp, 0x10
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 2
jmp 0x402da1
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryA]
push edx
test eax, eax
jne 0x403060
test byte [0x404000], 2
je 0x4031a2
or edx, 0xffffffff
mov eax, ebx
call sym._wine_dbgstr_an
mov dword [esp + 0xc], str.Cannot_change_directory__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.pif_cmd
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov eax, dword [ebp - 0x50c]
mov dword [esp + 4], str._s_nInvalid_startup_directory._Check_your_pif_file.
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._sprintf
xor eax, eax
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.16_bit_DOS_subsystem
mov dword [esp], eax
call dword [sym.imp.user32.dll_MessageBoxA]
sub esp, 0x10
jmp 0x403060
lea eax, [ebp - 0xe7]
lea ebx, [ebp - 0x419]
mov dword [esp + 4], eax
lea eax, [ebp - 0x45a]
mov dword [ebp - 0x508], eax
mov dword [esp], eax
call dbg.lstrcpynA
lea eax, [ebp - 0x127]
sub esp, 0xc
mov dword [esp + 8], 0x41
mov dword [esp + 4], eax
mov dword [esp], ebx
call dbg.lstrcpynA
movzx eax, byte [ebp - 0x129]
sub esp, 0xc
and eax, 2
mov dword [ebp - 0x504], eax
jmp 0x403002
xor ecx, ecx
mov dword [esp + 0xc], str..bat_programs_in_pif_files_are_not_supported._n
mov dword [esp + 8], str.pif_cmd
mov dword [esp + 4], global___dbch
mov dword [esp], ecx
call sym._wine_dbg_log.constprop.0
jmp 0x403053
test byte [0x404000], 2
jne 0x403404
mov eax, dword [ebp - 0x4fc]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push eax
mov eax, dword [ebp - 0x50c]
mov dword [esp + 4], str._s_nInvalid_file_format._Check_your_pif_file.
mov dword [esp + 8], eax
mov dword [esp], edi
call sym._sprintf
xor eax, eax
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.16_bit_DOS_subsystem
mov dword [esp], eax
call dword [sym.imp.user32.dll_MessageBoxA]
sub esp, 0x10
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xb
jmp 0x402da1
or edx, 0xffffffff
lea eax, [ebp - 0xe7]
call sym._wine_dbgstr_an
or edx, 0xffffffff
mov ebx, eax
lea eax, [ebp - 0x127]
call sym._wine_dbgstr_an
mov edx, 0x1e
mov dword [ebp - 0x51c], eax
lea eax, [ebp - 0x18a]
call sym._wine_dbgstr_an
or edx, 0xffffffff
mov dword [ebp - 0x504], eax
lea eax, [ebp - 0x168]
call sym._wine_dbgstr_an
mov dword [esp + 0x1c], ebx
mov ecx, dword [ebp - 0x51c]
mov dword [esp + 0x18], ecx
mov ebx, dword [ebp - 0x504]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], str.header:_program__s_title__s_startdir__s_params__s_n
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402c27
movzx eax, byte [ebp - 0xa7]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x128]
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0x16c]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0x16a]
mov dword [esp + 0xc], str.header:_memory_reqd__d_desrd__d_drive__d_videomode__d_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 8
je 0x402c27
movzx eax, byte [ebp - 0x1c]
mov dword [esp + 0x18], eax
movzx eax, byte [ebp - 0x1d]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp - 0x129]
mov dword [esp + 0xc], str.header:_flags_0x_x_0x_x_0x_x_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402c27
mov dword [esp + 0xc], str.Invalid_pif_file:_magic_string_not_found_n
mov dword [esp + 8], 0x40550c
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
test byte [0x404000], 2
je 0x403270
mov eax, dword [ebp - 0x50c]
or edx, 0xffffffff
call sym._wine_dbgstr_an
mov dword [esp + 0xc], str.failed_to_read__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.pif_cmd
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403270
test byte [0x404000], 2
jne 0x403484
lea edi, [ebp - 0x18c]
jmp 0x403270
mov eax, dword [ebp - 0x4e8]
mov dword [esp + 0xc], str.Invalid_pif_file:_size_error__d_n
lea edi, [ebp - 0x18c]
mov dword [esp + 8], 0x40550c
mov dword [esp + 0x10], eax
mov dword [esp + 4], global___dbch
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x403428