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

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
mov eax, 0x94a8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
call fcn.00401040
mov ecx, 0x82
lea esi, [ebp - 0x9468]
sub esp, eax
lea ebx, [ebp - 0x8018]
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x9260]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x9058]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8e50]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8c48]
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [ebp - 0x8a40]
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x2000
mov dword [esp + 4], ebx
mov dword [esp], 0x40a25c
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub esp, 0xc
test eax, eax
jne 0x403d68
mov dword [ebp - 0x9488], 0x1000
call dword [sym.imp.kernel32.dll_GetCommandLineW]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [ebp - 0x948c], eax
test eax, eax
je 0x403d9f
mov eax, dword [ebp - 0x948c]
lea edx, [ebp - 0x946c]
call sym._find_end_of_word
mov dword [ebp - 0x947c], eax
test eax, eax
jne 0x404350
mov edi, dword [ebp - 0x946c]
movzx eax, word [edi]
test ax, ax
jne 0x403b2c
jmp 0x403b38
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
je 0x403b38
cmp ax, 0x20
je 0x403b20
cmp ax, 9
je 0x403b20
mov eax, dword [ebp - 0x9488]
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
mov dword [ebp - 0x9490], eax
je 0x403c40
lea eax, [ebp - 0x8838]
mov dword [ebp - 0x9484], eax
mov edx, dword [ebp - 0x9484]
mov eax, edi
call sym._find_end_of_word
mov dword [ebp - 0x947c], eax
test eax, eax
jne 0x404350
mov eax, dword [ebp - 0x8838]
movzx edx, word [eax]
mov edi, eax
test dx, dx
jne 0x403b9c
jmp 0x403ba8
movzx edx, word [edi + 2]
add edi, 2
test dx, dx
je 0x403ba8
cmp dx, 0x20
je 0x403b90
cmp dx, 9
je 0x403b90
mov edx, dword [ebp - 0x946c]
movzx ebx, word [edx]
xor edx, edx
mov word [eax], dx
mov ecx, dword [ebp - 0x946c]
movzx edx, word [ecx]
test dx, dx
je 0x403bec
mov eax, ecx
lea esi, [esi]
lea esi, [esi]
cmp dx, 0x22
je 0x403be0
cmp ecx, eax
jae 0x403bdd
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x403bd0
xor eax, eax
mov word [ecx], ax
mov dword [ebp - 0x8838], ecx
test byte [0x405030], 8
jne 0x403ce0
cmp bx, 0x2f
je 0x403d1d
cmp word [ebp - 0x9468], 0
jne 0x403c90
mov ecx, dword [ebp - 0x946c]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x403c20
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
jne 0x403b60
cmp word [ebp - 0x9260], 0
jne 0x403c6a
xor eax, eax
mov edx, 0x2e
jmp 0x403c5a
movzx edx, word [eax + 0x40a11a]
mov word [ebp + eax - 0x9260], dx
add eax, 2
test dx, dx
jne 0x403c53
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x9490]
mov dword [ebp - 0x9488], eax
jmp 0x403df8
cmp word [ebp - 0x9260], 0
jne 0x404de2
mov ecx, dword [ebp - 0x946c]
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x9260], dx
add eax, 2
test dx, dx
jne 0x403cb0
mov dword [ebp - 0x946c], edi
cmp word [edi], 0
jne 0x403b60
jmp 0x403c40
mov eax, dword [ebp - 0x946c]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
cmp bx, 0x2f
jne 0x403c0e
mov ebx, dword [ebp - 0x946c]
cmp word [ebx], 0
je 0x403c30
mov dword [ebp - 0x9480], 0
mov dword [ebp - 0x9494], edi
mov edi, dword [ebp - 0x9490]
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.0x403d5d.46
jmp dword [eax*4 + 0x40a434]
mov dword [esp + 4], 0x40a26c
mov edi, dword [sym.imp.ucrtbase.dll_wcsstr]
mov dword [esp], ebx
call edi
test eax, eax
je 0x404979
mov dword [ebp - 0x9488], 0x1100
jmp 0x403ad3
test byte [0x405030], 1
jne 0x404b34
mov dword [ebp - 0x947c], 4
mov eax, dword [ebp - 0x947c]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
test byte [0x405030], 8
jne 0x4048d0
mov ebx, dword [ebp - 0x946c]
mov eax, 0x66
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
test byte [0x405030], 8
jne 0x40437b
lea eax, [ebp - 0x8220]
mov dword [esp], esi
mov edi, dword [sym.imp.kernel32.dll_GetFullPathNameW]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x104
call edi
sub esp, 0x10
test eax, eax
je 0x403d92
test byte [ebp - 0x9488], 0x10
je 0x403e54
xor eax, eax
movzx edx, word [ebp + eax - 0x8220]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x403e40
mov ebx, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [esp + 4], 0x2a
mov dword [esp], esi
call ebx
mov dword [esp + 4], 0x3f
mov dword [ebp - 0x947c], eax
mov dword [esp], esi
call ebx
mov ecx, dword [ebp - 0x947c]
mov edx, eax
movzx eax, byte [0x405030]
or ecx, edx
je 0x404420
test al, 8
jne 0x404904
mov dword [esp + 4], 0x5c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
mov edx, eax
test eax, eax
je 0x40492d
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx ecx, word [esi + eax]
mov word [ebp + eax - 0x9058], cx
add eax, 2
test cx, cx
jne 0x403ec0
mov eax, edx
xor ecx, ecx
sub eax, esi
mov word [ebp + eax - 0x9056], cx
xor eax, eax
lea esi, [esi]
movzx ecx, word [edx + eax + 2]
mov word [ebp + eax - 0x8e50], cx
add eax, 2
test cx, cx
jne 0x403ee8
lea eax, [ebp - 0x8838]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x9484], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x9260]
mov dword [esp + 4], 0x104
mov dword [esp], eax
call edi
sub esp, 0x10
test eax, eax
je 0x404620
mov eax, dword [ebp - 0x9484]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
cmp eax, 0xffffffff
je 0x40453d
lea ebx, [ebp - 0x8428]
test al, 0x10
jne 0x40457c
lea eax, [ebp - 0x8220]
lea esi, [ebp - 0x4018]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x9484]
lea edi, [ebp - 0x8630]
mov dword [esp + 0x10], esi
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [sym.imp.ucrtbase.dll__wsplitpath]
xor eax, eax
nop
movzx edx, word [edi + eax]
mov word [ebp + eax - 0x8c48], dx
add eax, 2
test dx, dx
jne 0x403f90
cmp word [ebp - 0x8c48], 0
lea edx, [ebp - 0x8c48]
je 0x403fc1
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x403fb8
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x403fc8
xor eax, eax
lea esi, [esi]
movzx edx, word [ebp + eax - 0x8220]
mov word [ebp + eax - 0x8a40], dx
add eax, 2
test dx, dx
jne 0x403fe0
cmp word [ebp - 0x8a40], 0
lea edx, [ebp - 0x8a40]
je 0x404019
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x404010
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [esi + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404020
test byte [0x405030], 8
jne 0x404a0b
test byte [ebp - 0x9488], 0x40
jne 0x4049b4
mov eax, dword [ebp - 0x9488]
lea ecx, [ebp - 0x8c48]
lea edx, [ebp - 0x8e50]
mov ebx, dword fs:[0x18]
mov dword [esp + 4], eax
lea eax, [ebp - 0x8a40]
mov dword [esp], eax
lea eax, [ebp - 0x9058]
call sym._XCOPY_DoCopy
mov edi, dword [0x405490]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x947c], eax
test edi, edi
je 0x4040e0
lea esi, [esi]
mov eax, dword [edi]
mov dword [0x405490], eax
mov eax, dword [edi + 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 esi
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov edi, dword [0x405490]
sub esp, 0xc
test edi, edi
jne 0x404098
test byte [ebp - 0x9488], 0x20
jne 0x404993
test byte [ebp - 0x9488], 0x80
jne 0x403da9
mov ebx, dword [0x405494]
mov eax, 0x69
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
jmp 0x403da9
or edi, 0x100
lea esi, [esi]
mov eax, dword [ebp - 0x946c]
lea ebx, [eax + 4]
mov eax, dword [ebp - 0x9480]
test eax, eax
jne 0x404310
movzx eax, word [ebx]
cmp ax, 0x2f
je 0x404310
test ax, ax
je 0x404310
test byte [0x405030], 1
jne 0x40431b
mov dword [ebp - 0x9480], 1
mov ebx, dword [ebp - 0x946c]
lea esi, [esi]
cmp word [ebx], 0
jne 0x403d48
mov dword [ebp - 0x9490], edi
mov edi, dword [ebp - 0x9494]
jmp 0x403c30
or edi, 0x40
jmp 0x404128
or edi, 0x18000
jmp 0x404128
or edi, 0x20
jmp 0x404128
or edi, 0x100000
jmp 0x404128
or edi, 1
jmp 0x404128
or edi, 0x1000
jmp 0x404128
or edi, 0x10
jmp 0x404128
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 0x404d34
or edi, 6
jmp 0x404128
cmp word [ebx + 4], 0x3a
je 0x40466d
or edi, 0x80000
jmp 0x404128
or edi, 0x2000
jmp 0x404128
mov eax, 0x75
call sym._XCOPY_LoadMessage
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x403da9
movzx eax, word [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
cmp eax, 0x59
jne 0x404128
and edi, 0xfffffeff
add ebx, 6
jmp 0x404131
or edi, 0x8000
jmp 0x404128
test byte [0x405030], 1
je 0x404128
mov dword [esp + 0xc], str.ignoring__V_n
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405030
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x404128
or edi, 0x400
jmp 0x404128
or edi, 0x82
jmp 0x404128
or edi, 2
jmp 0x404128
or edi, 0x800
jmp 0x404128
or edi, 8
jmp 0x404128
or edi, 0x4000
jmp 0x404128
or edi, 0x200
jmp 0x404128
mov dword [ebp - 0x946c], ebx
jmp 0x404178
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], 0x405030
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x404162
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov esi, dword [ebp - 0x947c]
mov eax, 0
cmp esi, 6
cmovne eax, esi
mov dword [ebp - 0x947c], eax
jmp 0x403da9
mov dword [esp + 0xc], str.Supplied_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x403e05
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x403e05
lea eax, [ebp - 0x9260]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403e05
lea eax, [ebp - 0x8220]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
sub esp, 4
mov edx, eax
cmp eax, 0xffffffff
je 0x404ea1
movzx eax, byte [0x405030]
mov ecx, eax
and ecx, 8
and edx, 0x10
je 0x403e91
test cl, cl
jne 0x404514
xor eax, eax
lea esi, [esi]
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x9058], dx
add eax, 2
test dx, dx
jne 0x404460
cmp word [ebp - 0x9058], 0
je 0x404e08
lea eax, [ebp - 0x9058]
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x404490
lea esi, [ebp - 0x9058]
sub eax, esi
movzx eax, word [ebp + eax - 0x905a]
cmp ax, 0x3a
je 0x4044eb
cmp ax, 0x5c
je 0x4044eb
lea edx, [ebp - 0x9058]
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x4044c0
xor eax, eax
mov ecx, 0x5c
jmp 0x4044df
movzx ecx, word [eax + 0x40a258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4044d8
xor eax, eax
mov edx, 0x2a
jmp 0x4044ff
movzx edx, word [eax + 0x40a21c]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x4044f8
jmp 0x403efd
mov dword [esp + 0xc], str.Directory_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x40445a
test byte [ebp - 0x9488], 1
je 0x404b6a
lea eax, [ebp - 0x8e50]
mov dword [esp + 4], 0x3f
mov dword [esp], eax
call ebx
test eax, eax
jne 0x40457c
lea eax, [ebp - 0x8e50]
mov dword [esp + 4], 0x2a
mov dword [esp], eax
call ebx
test eax, eax
je 0x404b6a
mov ecx, dword [ebp - 0x9484]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebp + eax - 0x8c48], dx
add eax, 2
test dx, dx
jne 0x404588
xor eax, eax
cmp word [ebp - 0x8c48], 0
mov word [ebp - 0x8a40], ax
je 0x404e88
lea eax, [ebp - 0x8c48]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4045c0
lea esi, [ebp - 0x8c48]
sub eax, esi
cmp word [ebp + eax - 0x8c4a], 0x5c
je 0x404030
lea edx, [ebp - 0x8c48]
lea esi, [esi]
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4045f0
xor eax, eax
mov ecx, 0x5c
jmp 0x40460f
movzx ecx, word [eax + 0x40a258]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x404608
jmp 0x404030
test byte [0x405030], 1
je 0x403d9f
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_ProcessDestParm
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405030
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
mov dword [ebp - 0x947c], 4
jmp 0x403da9
movzx eax, word [ebx + 6]
sub eax, 0x30
cmp ax, 9
ja 0x40421e
mov dword [ebp - 0x8630], 0
lea edx, [ebx + 6]
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
mov dword [ebp - 0x862c], 0
mov dword [ebp - 0x8628], 0
mov dword [ebp - 0x8624], 0
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x862e], ax
movzx eax, word [ebx + 6]
test ax, ax
jne 0x4046e4
jmp 0x404dc4
movzx eax, word [edx]
test ax, ax
je 0x404dc4
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x4046d8
cmp ax, 0x2d
jne 0x404dc4
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x862a], ax
movzx eax, word [ebx + 2]
test ax, ax
jne 0x40473c
jmp 0x404dc4
movzx eax, word [edx]
test ax, ax
je 0x404dc4
lea ecx, [eax - 0x30]
mov ebx, edx
add edx, 2
cmp cx, 9
jbe 0x404730
cmp ax, 0x2d
jne 0x404dc4
mov dword [esp], edx
mov dword [ebp - 0x9490], edx
call dword [sym.imp.ucrtbase.dll__wtol]
mov edx, dword [ebp - 0x9490]
mov word [ebp - 0x8630], ax
mov ecx, eax
movzx eax, word [ebx + 2]
mov ebx, edx
test ax, ax
jne 0x40478c
jmp 0x404795
movzx eax, word [ebx + 2]
add ebx, 2
test ax, ax
je 0x404795
sub eax, 0x30
cmp ax, 9
jbe 0x404780
cmp cx, 0x63
ja 0x4047a8
lea eax, [ecx + 0x7d0]
mov word [ebp - 0x8630], ax
lea eax, [ebp - 0x8630]
mov dword [esp + 4], 0x405480
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
sub esp, 8
test eax, eax
je 0x404dc4
lea eax, [ebp - 0x8428]
mov dword [esp], 0x405480
or edi, 0x40000
mov dword [ebp - 0x9490], eax
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FileTimeToSystemTime]
mov eax, dword [ebp - 0x9490]
lea ecx, [ebp - 0x8220]
sub esp, 8
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetDateFormatW]
mov eax, dword [ebp - 0x9490]
lea edx, [ebp - 0x4018]
sub esp, 0x18
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x20
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetTimeFormatW]
lea edx, [ebp - 0x4018]
sub esp, 0x18
test byte [0x405030], 8
je 0x404131
mov eax, edx
call sym._wine_dbgstr_wn.constprop.0
mov dword [ebp - 0x9490], eax
lea eax, [ebp - 0x8220]
call sym._wine_dbgstr_wn.constprop.0
mov ecx, dword [ebp - 0x9490]
mov dword [esp + 0xc], str.Date_being_used_is:__s__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.XCOPY_ParseCommandLine
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x404131
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403dcd
mov dword [esp + 0xc], str.Filename_supplied_n
mov dword [esp + 8], str.XCOPY_ProcessSourceParm
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x403e99
cmp word [ebp - 0x9466], 0x3a
jne 0x404cea
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x9058], dx
add eax, 2
test dx, dx
jne 0x40493d
xor esi, esi
xor eax, eax
mov word [ebp - 0x9054], si
movzx edx, word [ebp + eax - 0x9464]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x40495c
jmp 0x403efd
mov dword [esp + 4], 0x40a272
mov dword [esp], ebx
call edi
test eax, eax
jne 0x403d83
jmp 0x403ac9
mov ebx, dword [0x405494]
mov eax, 0x68
call sym._XCOPY_LoadMessage
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym._XCOPY_wprintf
jmp 0x403da9
mov eax, 0x67
lea esi, [ebp - 0x8220]
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 - 0x4018]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
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 0x40404a
mov dword [esp + 0xc], str.Resolved_parameters:_n
mov dword [esp + 8], str.wmain
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x40403d
lea eax, [ebp - 0x9058]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x40403d
lea eax, [ebp - 0x8e50]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x40403d
lea eax, [ebp - 0x8c48]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
test byte [0x405030], 8
je 0x40403d
lea eax, [ebp - 0x8a40]
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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x40403d
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], 0x405030
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x403d9f
cmp word [ebp - 0x9260], 0
lea eax, [ebp - 0x9260]
je 0x404ebe
nop
add eax, 2
cmp word [eax], 0
jne 0x404b80
lea esi, [ebp - 0x9260]
sub eax, esi
sub eax, 2
cmp word [ebp + eax - 0x9260], 0x5c
je 0x40457c
xor edx, edx
mov eax, 0x73
mov dword [ebp - 0x4018], 0
lea ebx, [ebp - 0x8428]
mov word [ebp - 0x4010], dx
mov dword [ebp - 0x4014], 0
call sym._XCOPY_LoadMessage
mov edi, dword [sym.imp.ucrtbase.dll_wcscpy]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edi
mov eax, 0x74
call sym._XCOPY_LoadMessage
mov dword [esp + 4], eax
lea eax, [ebp - 0x8220]
mov dword [esp], eax
call edi
movsx eax, byte [ebp - 0x4018]
movzx edx, word [ebp - 0x8428]
lea edi, [ebp - 0x8630]
mov esi, dword [sym.imp.kernel32.dll_GetStdHandle]
cmp eax, edx
jne 0x404c48
jmp 0x404e6e
movsx eax, byte [ebp - 0x4018]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_toupper]
movzx edx, word [ebp - 0x8428]
mov byte [ebp - 0x4018], al
movsx eax, al
cmp eax, edx
je 0x404e6e
movzx edx, word [ebp - 0x8220]
cmp edx, eax
je 0x40457c
mov eax, 0x6a
call sym._XCOPY_LoadMessage
lea ecx, [ebp - 0x9260]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._XCOPY_wprintf
mov dword [esp], 0xfffffff6
call esi
lea edx, [ebp - 0x4018]
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 [0x405030], 8
je 0x404c20
movsx eax, byte [ebp - 0x4018]
mov dword [esp + 0xc], str.User_answer__c_n
mov dword [esp + 8], str.XCOPY_ProcessDestParm
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x404c20
lea eax, [ebp - 0x4018]
mov dword [esp], 0x2000
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
xor ecx, ecx
mov eax, dword [ebp - 0x4018]
mov word [ebp - 0x9054], cx
sub esp, 8
mov dword [ebp - 0x9058], eax
xor eax, eax
movzx edx, word [esi + eax]
mov word [ebp + eax - 0x8e50], dx
add eax, 2
test dx, dx
jne 0x404d1b
jmp 0x403efd
mov ecx, dword [ebp - 0x946c]
lea ebx, [ecx + 0x12]
test byte [0x405030], 8
jne 0x404e2e
mov dword [0x405490], 0
movzx eax, word [ecx + 0x12]
test ax, 0xffdf
je 0x404d9c
cmp ax, 0x2f
je 0x404d9c
add ecx, 0x14
mov edx, ecx
mov ecx, ebx
mov ebx, edx
jmp 0x404d84
movzx eax, word [ebx]
mov edx, ebx
add ebx, 2
test ax, 0xffdf
je 0x404db5
cmp ax, 0x2f
je 0x404db5
lea edx, [ebx - 2]
cmp ax, 0x2b
jne 0x404d70
mov eax, ecx
call sym._XCOPY_ProcessExcludeFile
test eax, eax
jne 0x404dc4
mov ecx, ebx
jmp 0x404d70
mov ebx, dword [ebp - 0x8838]
or edi, 0x20000
test ebx, ebx
je 0x404128
jmp 0x404131
cmp edx, ecx
je 0x404d9c
mov eax, ecx
call sym._XCOPY_ProcessExcludeFile
test eax, eax
je 0x404d9c
mov eax, 0x57
call sym._XCOPY_FailMessage
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x403df8
mov eax, 0x65
call sym._XCOPY_LoadMessage
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x948c]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x403df8
movzx eax, word [ebp - 0x905a]
cmp ax, 0x5c
je 0x4044eb
cmp ax, 0x3a
je 0x4044eb
lea edx, [ebp - 0x9058]
jmp 0x4044c9
mov eax, ebx
mov dword [ebp - 0x9490], 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], 0x405030
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov ecx, dword [ebp - 0x9490]
jmp 0x404d4a
movzx eax, word [ebp - 0x8220]
cmp eax, edx
jne 0x403f5c
jmp 0x40457c
cmp word [ebp - 0x8c4a], 0x5c
je 0x404030
lea edx, [ebp - 0x8c48]
jmp 0x4045f9
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
call sym._XCOPY_FailMessage
mov dword [ebp - 0x947c], 4
jmp 0x403da9
mov eax, 0xfffffffe
jmp 0x404b94