Function at 0x402bc0
Capabilities:
Accept command line arguments
Check if file exists
Get common file path
Get file attributes
Query environment variable
Read file on windows

Disassembly:
push ebp
mov eax, 0x9488
mov ebp, esp
push edi
push esi
push ebx
call fcn.00404c18
mov ecx, 0x82
lea esi, [ebp - 0x9254]
sub esp, eax
lea ebx, [ebp - 0x400c]
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x904c]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x945c]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8e44]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8c3c]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8a34]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x2000
mov dword [esp + 4], ebx
mov dword [esp], 0x40625c
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x40345b
mov dword [ebp - 0x9474], 0x1000
call dword [sym.imp.kernel32.dll_GetCommandLineW]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [ebp - 0x9470], eax
test eax, eax
je 0x4037c1
mov eax, dword [ebp - 0x9470]
lea edx, [ebp - 0x9460]
call sym._find_end_of_word
mov dword [ebp - 0x9464], eax
test eax, eax
jne 0x4034c0
mov edi, dword [ebp - 0x9460]
movzx eax, word [edi]
test ax, ax
jne 0x402cb4
jmp 0x402cc0
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
je 0x402cc0
cmp ax, 0x20
je 0x402ca8
cmp ax, 9
je 0x402ca8
mov eax, dword [ebp - 0x9474]
mov dword [ebp - 0x9460], edi
cmp word [edi], 0
mov dword [ebp - 0x9478], eax
je 0x402dd0
lea eax, [ebp - 0x882c]
mov dword [ebp - 0x946c], eax
lea esi, [esi]
nop
mov edx, dword [ebp - 0x946c]
mov eax, edi
call sym._find_end_of_word
mov dword [ebp - 0x9464], eax
test eax, eax
jne 0x4034c0
mov eax, dword [ebp - 0x882c]
movzx edx, word [eax]
mov edi, eax
test dx, dx
jne 0x402d2c
jmp 0x402d38
movzx edx, word [edi + 2]
add edi, 2
test dx, dx
je 0x402d38
cmp dx, 0x20
je 0x402d20
cmp dx, 9
je 0x402d20
mov edx, dword [ebp - 0x9460]
movzx ebx, word [edx]
xor edx, edx
mov word [eax], dx
mov ecx, dword [ebp - 0x9460]
movzx edx, word [ecx]
test dx, dx
je 0x402d7c
mov eax, ecx
lea esi, [esi]
lea esi, [esi]
cmp dx, 0x22
je 0x402d70
cmp ecx, eax
jae 0x402d6d
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x402d60
xor eax, eax
mov word [ecx], ax
mov dword [ebp - 0x882c], ecx
test byte [0x405004], 8
jne 0x402e70
cmp bx, 0x2f
je 0x402ead
cmp word [ebp - 0x9254], 0
jne 0x402e20
mov ecx, dword [ebp - 0x9460]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x402db0
mov dword [ebp - 0x9460], edi
cmp word [edi], 0
jne 0x402cf0
cmp word [ebp - 0x904c], 0
jne 0x402df7
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x40611a]
mov word [ebp + eax - 0x904c], dx
add eax, 2
test dx, dx
jne 0x402de0
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x9478]
mov dword [ebp - 0x9474], eax
jmp 0x402f30
cmp word [ebp - 0x904c], 0
jne 0x403f64
mov ecx, dword [ebp - 0x9460]
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x904c], dx
add eax, 2
test dx, dx
jne 0x402e40
mov dword [ebp - 0x9460], edi
cmp word [edi], 0
jne 0x402cf0
jmp 0x402dd0
mov eax, dword [ebp - 0x9460]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Processing_Arg:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
cmp bx, 0x2f
jne 0x402d9e
mov ebx, dword [ebp - 0x9460]
cmp word [ebx], 0
je 0x402dc0
mov dword [ebp - 0x9468], 0
mov dword [ebp - 0x947c], edi
mov edi, dword [ebp - 0x9478]
lea esi, [esi]
nop
movzx eax, word [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
sub eax, 0x2d
cmp eax, 0x2c
ja case.0x402eed.46
jmp dword [eax*4 + 0x406434]
test byte [0x405004], 8
jne 0x403780
mov ebx, dword [ebp - 0x9460]
mov eax, 0x66
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
test byte [0x405004], 8
jne 0x4037d9
lea ebx, [ebp - 0x8214]
mov dword [esp], esi
mov edi, dword [sym.imp.kernel32.dll_GetFullPathNameW]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x104
call edi
sub esp, 0x10
test eax, eax
je 0x4037b4
test byte [ebp - 0x9474], 0x10
je 0x402f90
xor eax, eax
lea esi, [esi]
nop
movzx edx, word [ebx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x402f80
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [esp + 4], 0x2a
mov dword [esp], esi
mov dword [ebp - 0x9464], eax
call eax
mov ecx, dword [ebp - 0x9464]
mov dword [esp + 4], 0x3f
mov dword [ebp - 0x9468], eax
mov dword [esp], esi
call ecx
mov ecx, dword [ebp - 0x9468]
mov edx, eax
movzx eax, byte [0x405004]
or ecx, edx
je 0x40387e
test al, 8
jne 0x4034f4
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov edx, eax
test eax, eax
je 0x403aa5
xor eax, eax
lea esi, [esi]
movzx ecx, word [esi + eax]
mov word [ebp + eax - 0x945c], cx
add eax, 2
test cx, cx
jne 0x403000
mov eax, edx
xor ecx, ecx
sub eax, esi
mov word [ebp + eax - 0x945a], cx
xor eax, eax
lea esi, [esi]
movzx ecx, word [edx + eax + 2]
mov word [ebp + eax - 0x8e44], cx
add eax, 2
test cx, cx
jne 0x403028
lea eax, [ebp - 0x882c]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x946c], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x904c]
mov dword [esp + 4], 0x104
mov dword [esp], eax
call edi
sub esp, 0x10
test eax, eax
je 0x403a58
mov eax, dword [ebp - 0x946c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x40397d
lea esi, [ebp - 0x841c]
test al, 0x10
jne 0x4039c8
lea eax, [ebp - 0x800c]
lea edi, [ebp - 0x8624]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x946c]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [sym.imp.ucrtbase.dll__wsplitpath]
xor eax, eax
lea esi, [esi]
movzx edx, word [edi + eax]
mov word [ebp + eax - 0x8c3c], dx
add eax, 2
test dx, dx
jne 0x4030d0
cmp word [ebp - 0x8c3c], 0
lea edx, [ebp - 0x8c3c]
je 0x403101
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4030f8
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403108
xor eax, eax
lea esi, [esi]
movzx edx, word [ebx + eax]
mov word [ebp + eax - 0x8a34], dx
add eax, 2
test dx, dx
jne 0x403120
cmp word [ebp - 0x8a34], 0
lea edx, [ebp - 0x8a34]
je 0x403151
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x403148
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebp + eax - 0x800c]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403158
test byte [0x405004], 8
jne 0x403b5c
test byte [ebp - 0x9474], 0x40
jne 0x403b0b
mov eax, dword [ebp - 0x9474]
lea ecx, [ebp - 0x8c3c]
lea edx, [ebp - 0x8e44]
mov ebx, dword fs:[0x18]
mov dword [esp + 4], eax
lea eax, [ebp - 0x8a34]
mov dword [esp], eax
lea eax, [ebp - 0x945c]
call sym._XCOPY_DoCopy
mov esi, dword [0x40c450]
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x9464], eax
test esi, esi
je 0x403218
lea esi, [esi]
mov eax, dword [esi]
mov dword [0x40c450], eax
mov eax, dword [esi + 4]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov esi, dword [0x40c450]
sub esp, 0xc
test esi, esi
jne 0x4031d0
test byte [ebp - 0x9474], 0x20
jne 0x403c85
test byte [ebp - 0x9474], 0x80
jne 0x403417
mov ebx, dword [0x40c454]
mov eax, 0x69
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
jmp 0x403417
or edi, 0x100
lea esi, [esi]
mov eax, dword [ebp - 0x9460]
lea ebx, [eax + 4]
mov eax, dword [ebp - 0x9468]
test eax, eax
jne 0x403450
movzx eax, word [ebx]
cmp ax, 0x2f
je 0x403450
test ax, ax
je 0x403450
test byte [0x405004], 1
jne 0x403485
mov dword [ebp - 0x9468], 1
mov ebx, dword [ebp - 0x9460]
lea esi, [esi]
cmp word [ebx], 0
jne 0x402ed8
mov dword [ebp - 0x9478], edi
mov edi, dword [ebp - 0x947c]
jmp 0x402dc0
or edi, 0x40
jmp 0x403260
test byte [0x405004], 1
je 0x403260
mov dword [esp + 0xc], str.ignoring__V_n
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x403260
or edi, 0x400
jmp 0x403260
or edi, 0x82
jmp 0x403260
or edi, 2
jmp 0x403260
or edi, 0x800
jmp 0x403260
or edi, 8
jmp 0x403260
or edi, 0x4000
jmp 0x403260
or edi, 0x200
jmp 0x403260
or edi, 0x18000
jmp 0x403260
or edi, 0x20
jmp 0x403260
or edi, 0x100000
jmp 0x403260
or edi, 1
jmp 0x403260
or edi, 0x1000
jmp 0x403260
or edi, 0x10
jmp 0x403260
lea ecx, [ebx + 2]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], str.EXCLUDE:
mov dword [esp + 0xc], 8
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x1001
mov dword [esp], 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
sub esp, 0x18
cmp eax, 2
je 0x403ca6
or edi, 6
jmp 0x403260
cmp word [ebx + 4], 0x3a
je 0x40351d
or edi, 0x80000
jmp 0x403260
or edi, 0x2000
jmp 0x403260
or edi, 0x8000
jmp 0x403260
mov eax, 0x75
call sym._XCOPY_LoadMessage
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x9464]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
cmp eax, 0x59
jne 0x403260
and edi, 0xfffffeff
add ebx, 6
jmp 0x403269
mov dword [ebp - 0x9460], ebx
jmp 0x4032b0
mov dword [esp + 4], 0x40626c
mov edi, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [esp], ebx
call edi
test eax, eax
je 0x403af1
mov dword [ebp - 0x9474], 0x1100
jmp 0x402c58
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Unexpected_characters_found_and_ignored__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x40329a
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov esi, dword [ebp - 0x9464]
mov eax, 0
cmp esi, 6
cmovne eax, esi
mov dword [ebp - 0x9464], eax
mov eax, dword [ebp - 0x9464]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], str.Filename_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402fe0
movzx eax, word [ebx + 6]
sub eax, 0x30
cmp ax, 9
ja 0x4033d5
mov dword [ebp - 0x8624], 0
lea edx, [ebx + 6]
mov dword [esp], edx
mov dword [ebp - 0x9478], edx
mov dword [ebp - 0x8620], 0
mov dword [ebp - 0x861c], 0
mov dword [ebp - 0x8618], 0
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9478]
mov word [ebp - 0x8622], ax
movzx eax, word [ebx + 6]
test ax, ax
jne 0x403594
jmp 0x403f46
movzx eax, word [edx]
test ax, ax
je 0x403f46
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x403588
cmp ax, 0x2d
jne 0x403f46
mov dword [esp], edx
mov dword [ebp - 0x9478], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9478]
mov word [ebp - 0x861e], ax
movzx eax, word [ebx + 2]
test ax, ax
jne 0x4035ec
jmp 0x403f46
movzx eax, word [edx]
test ax, ax
je 0x403f46
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x4035e0
cmp ax, 0x2d
jne 0x403f46
mov dword [esp], edx
mov dword [ebp - 0x9478], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9478]
mov word [ebp - 0x8624], ax
mov ecx, eax
movzx eax, word [ebx + 2]
mov ebx, edx
test ax, ax
jne 0x40363c
jmp 0x403645
movzx eax, word [ebx + 2]
add ebx, 2
test ax, ax
je 0x403645
sub eax, 0x30
cmp ax, 9
jbe 0x403630
cmp cx, 0x63
ja 0x403658
lea eax, [ecx + 0x7d0]
mov word [ebp - 0x8624], ax
lea eax, [ebp - 0x8624]
mov dword [esp + 4], 0x40c448
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
sub esp, 8
test eax, eax
je 0x403f46
lea ecx, [ebp - 0x841c]
mov dword [esp], 0x40c448
or edi, 0x40000
mov dword [esp + 4], ecx
mov dword [ebp - 0x9478], ecx
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
mov ecx, dword [ebp - 0x9478]
lea eax, [ebp - 0x8214]
sub esp, 8
mov dword [esp + 8], ecx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetDateFormatW]
mov ecx, dword [ebp - 0x9478]
lea edx, [ebp - 0x800c]
sub esp, 0x18
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
lea edx, [ebp - 0x800c]
sub esp, 0x18
test byte [0x405004], 8
je 0x403269
mov eax, edx
call sym._wine_dbgstr_wn.constprop.0
mov dword [ebp - 0x9478], eax
lea eax, [ebp - 0x8214]
call sym._wine_dbgstr_wn.constprop.0
mov edx, dword [ebp - 0x9478]
mov dword [esp + 0xc], str.Date_being_used_is:__s__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403269
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Unhandled_parameter__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402f05
test byte [0x405004], 1
jne 0x403e9e
mov dword [ebp - 0x9464], 4
mov eax, dword [ebp - 0x9464]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], str.Supplied_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x402f3d
mov eax, esi
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Source______:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x402f3d
lea eax, [ebp - 0x904c]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Destination_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x402f3d
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
mov edx, eax
cmp eax, 0xffffffff
je 0x404020
movzx eax, byte [0x405004]
mov ecx, eax
and ecx, 8
and edx, 0x10
je 0x402fd8
test cl, cl
jne 0x403954
xor eax, eax
lea esi, [esi]
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x945c], dx
add eax, 2
test dx, dx
jne 0x4038b8
cmp word [ebp - 0x945c], 0
je 0x403f8a
lea eax, [ebp - 0x945c]
add eax, 2
cmp word [eax], 0
jne 0x4038e0
lea esi, [ebp - 0x945c]
sub eax, esi
movzx eax, word [ebp + eax - 0x945e]
cmp ax, 0x3a
je 0x403933
cmp ax, 0x5c
je 0x403933
lea edx, [ebp - 0x945c]
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x403910
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x406258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403920
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x40621c]
mov word [ebp + eax - 0x8e44], dx
add eax, 2
test dx, dx
jne 0x403938
jmp 0x40303d
mov dword [esp + 0xc], str.Directory_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x4038b2
test byte [ebp - 0x9474], 1
je 0x403d28
lea eax, [ebp - 0x8e44]
mov dword [esp + 4], 0x3f
mov dword [esp], eax
mov eax, dword [ebp - 0x9464]
call eax
test eax, eax
jne 0x4039c8
lea eax, [ebp - 0x8e44]
mov dword [esp + 4], 0x2a
mov dword [esp], eax
mov eax, dword [ebp - 0x9464]
call eax
test eax, eax
je 0x403d28
mov ecx, dword [ebp - 0x946c]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x8c3c], dx
add eax, 2
test dx, dx
jne 0x4039d0
xor eax, eax
cmp word [ebp - 0x8c3c], 0
mov word [ebp - 0x8a34], ax
je 0x403ff0
lea eax, [ebp - 0x8c3c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x403a08
lea esi, [ebp - 0x8c3c]
sub eax, esi
cmp word [ebp + eax - 0x8c3e], 0x5c
je 0x40316c
lea edx, [ebp - 0x8c3c]
nop
add edx, 2
cmp word [edx], 0
jne 0x403a30
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x406258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403a40
jmp 0x40316c
test byte [0x405004], 1
je 0x4037c1
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Unexpected_failure_expanding_source_path___ld__n
mov dword [esp + 8], 0x40652c
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
mov dword [ebp - 0x9464], 4
jmp 0x403417
cmp word [ebp - 0x9252], 0x3a
jne 0x403ed4
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x945c], dx
add eax, 2
test dx, dx
jne 0x403ab5
xor esi, esi
xor eax, eax
mov word [ebp - 0x9458], si
movzx edx, word [ebp + eax - 0x9250]
mov word [ebp + eax - 0x8e44], dx
add eax, 2
test dx, dx
jne 0x403ad4
jmp 0x40303d
mov dword [esp + 4], 0x406272
mov dword [esp], ebx
call edi
test eax, eax
jne 0x403476
jmp 0x402c4e
mov eax, 0x67
call sym._XCOPY_LoadMessage
mov dword [esp], eax
call sym._XCOPY_wprintf
mov dword [esp], 0xfffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
lea edx, [ebp - 0x800c]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xa
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
jmp 0x403186
mov dword [esp + 0xc], str.Resolved_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x403179
lea eax, [ebp - 0x945c]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Source_Stem_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x403179
lea eax, [ebp - 0x8e44]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Source_Spec_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x403179
lea eax, [ebp - 0x8c3c]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Dest___Stem_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405004], 8
je 0x403179
lea eax, [ebp - 0x8a34]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Dest___Spec_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403179
mov ebx, dword [0x40c454]
mov eax, 0x68
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
jmp 0x403417
mov ecx, dword [ebp - 0x9460]
lea ebx, [ecx + 0x12]
test byte [0x405004], 8
jne 0x403fb0
mov dword [0x40c450], 0
movzx eax, word [ecx + 0x12]
test ax, 0xffdf
je 0x403f1e
cmp ax, 0x2f
je 0x403f1e
add ecx, 0x14
mov edx, ecx
mov ecx, ebx
mov ebx, edx
jmp 0x403d0c
movzx eax, word [ebx]
mov edx, ebx
add ebx, 2
test ax, 0xffdf
je 0x403f37
cmp ax, 0x2f
je 0x403f37
lea edx, [ebx - 2]
cmp ax, 0x2b
jne 0x403cf0
mov eax, ecx
call sym._XCOPY_ProcessExcludeFile
test eax, eax
jne 0x403f46
mov ecx, ebx
jmp 0x403cf0
cmp word [ebp - 0x904c], 0
lea eax, [ebp - 0x904c]
je 0x40403d
add eax, 2
cmp word [eax], 0
jne 0x403d3c
lea esi, [ebp - 0x904c]
sub eax, esi
sub eax, 2
cmp word [ebp + eax - 0x904c], 0x5c
je 0x4039c8
xor edx, edx
mov eax, 0x73
mov dword [ebp - 0x800c], 0
lea esi, [ebp - 0x841c]
mov word [ebp - 0x8004], dx
mov dword [ebp - 0x8008], 0
call sym._XCOPY_LoadMessage
mov edi, dword [sym.imp.ucrtbase.dll_wcscpy]
mov dword [esp], esi
mov dword [esp + 4], eax
call edi
mov eax, 0x74
call sym._XCOPY_LoadMessage
mov dword [esp], ebx
mov dword [esp + 4], eax
call edi
movsx eax, byte [ebp - 0x800c]
movzx edx, word [ebp - 0x841c]
lea edi, [ebp - 0x8624]
cmp eax, edx
jne 0x403df8
jmp 0x404009
movsx eax, byte [ebp - 0x800c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
movzx edx, word [ebp - 0x841c]
mov byte [ebp - 0x800c], al
movsx eax, al
cmp eax, edx
je 0x404009
movzx edx, word [ebp - 0x8214]
cmp edx, eax
je 0x4039c8
mov eax, 0x6a
call sym._XCOPY_LoadMessage
lea ecx, [ebp - 0x904c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._XCOPY_wprintf
mov dword [esp], 0xfffffff6
call dword [sym.imp.kernel32.dll_GetStdHandle]
lea edx, [ebp - 0x800c]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xa
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
test byte [0x405004], 8
je 0x403dd0
movsx eax, byte [ebp - 0x800c]
mov dword [esp + 0xc], str.User_answer__c_n
mov dword [esp + 8], 0x40652c
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403dd0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Unexpected_failure_expanding_source_path___ld__n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405004
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x4037c1
lea eax, [ebp - 0x800c]
mov dword [esp], 0x2000
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
xor ecx, ecx
mov eax, dword [ebp - 0x800c]
mov word [ebp - 0x9458], cx
sub esp, 8
mov dword [ebp - 0x945c], eax
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x8e44], dx
add eax, 2
test dx, dx
jne 0x403f05
jmp 0x40303d
mov ebx, dword [ebp - 0x882c]
or edi, 0x20000
test ebx, ebx
je 0x403260
jmp 0x403269
cmp edx, ecx
je 0x403f1e
mov eax, ecx
call sym._XCOPY_ProcessExcludeFile
test eax, eax
je 0x403f1e
mov eax, 0x57
call sym._XCOPY_FailMessage
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x402f30
mov eax, 0x65
call sym._XCOPY_LoadMessage
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x9470]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x402f30
movzx eax, word [ebp - 0x945e]
cmp ax, 0x5c
je 0x403933
cmp ax, 0x3a
je 0x403933
lea edx, [ebp - 0x945c]
jmp 0x403919
mov eax, ebx
mov dword [ebp - 0x9478], ecx
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str._EXCLUDE_parms:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.XCOPY_ProcessExcludeList
mov dword [esp + 4], 0x405004
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov ecx, dword [ebp - 0x9478]
jmp 0x403cbc
cmp word [ebp - 0x8c3e], 0x5c
je 0x40316c
lea edx, [ebp - 0x8c3c]
jmp 0x403a39
movzx eax, word [ebp - 0x8214]
cmp eax, edx
jne 0x40309c
jmp 0x4039c8
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
call sym._XCOPY_FailMessage
mov dword [ebp - 0x9464], 4
jmp 0x403417
mov eax, 0xfffffffe
jmp 0x403d50