Function at 0x408670
Capabilities:
Copy file
Enumerate files on windows
Get file attributes
Get process heap flags
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8ec
cmp word [0x4331e0], 0
mov dword [0x437470], 0
jne 0x4086c0
mov dword [esp], 0x3f2
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov dword [0x437470], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x890]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._WCMD_parameter
mov dword [ebp - 0x8a0], 0
mov dword [ebp - 0x8a8], 0
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x8b8], 0
mov dword [ebp - 0x89c], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x8b0], 0xffffffff
mov dword [ebp - 0x8ac], 1
mov dword [ebp - 0x8c8], 0
mov dword [ebp - 0x8b4], 0
test ax, ax
je 0x4087a9
test byte [0x425010], 8
jne 0x408e40
cmp ax, 0x2f
je 0x408e7c
cmp ax, 0x2b
jne 0x408f12
mov edx, dword [ebp - 0x8a8]
test edx, edx
je 0x4090d0
movzx eax, word [ebx + 2]
test ax, ax
je 0x409070
mov dword [ebp - 0x89c], 1
add ebx, 2
mov dword [ebp - 0x8a4], 1
test ax, ax
jne 0x408751
mov eax, dword [ebp - 0x8b8]
test eax, eax
je 0x409d7e
mov edi, dword [ebp - 0x8c8]
test edi, edi
je 0x4093b2
mov dword [ebp - 0x8c8], 1
movzx eax, byte [0x425010]
mov ebx, dword [ebp - 0x8a0]
and eax, 8
test ebx, ebx
je 0x409a77
test al, al
jne 0x409bcf
lea eax, [ebp - 0x268]
lea edi, [ebp - 0x880]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x8a0]
mov dword [esp + 8], edi
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x4086ae
test byte [0x425010], 8
jne 0x409c23
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
movzx ecx, word [ebp - 0x880]
sub esp, 4
test cx, cx
je 0x40886c
mov edx, edi
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x408850
sub edx, edi
sar edx, 1
cmp word [ebp + edx*2 - 0x882], 0x5c
je 0x409d4c
cmp eax, 0xffffffff
je 0x409bf8
test al, 0x10
je 0x409bf8
mov edx, edi
test cx, cx
jne 0x409d4c
xor eax, eax
mov ecx, 0x5c
jmp 0x408898
movzx ecx, word [eax + 0x426a96]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x408891
test byte [0x425010], 8
jne 0x409b29
mov eax, dword [ebp - 0x8a0]
mov esi, dword [ebp - 0x89c]
mov edx, dword [eax + 8]
test esi, esi
je 0x409b6f
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x8a4], esi
mov dword [ebp - 0x8b0], eax
mov eax, dword [ebp - 0x8a4]
cmp dword [ebp - 0x8b0], 0xffffffff
mov dword [ebp - 0x8bc], eax
jne 0x4088f9
mov eax, dword [ebp - 0x8a0]
mov dword [eax + 0xc], 0
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x8c0], eax
call eax
sub esp, 0xc
cmp word [ebp - 0x880], 0
je 0x409ec0
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x408934
sub eax, edi
sar eax, 1
lea esi, [eax + eax + 2]
mov dword [esp], esi
call dbg.heap_xalloc
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov ebx, eax
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x8a0]
mov dword [eax + 8], ebx
test byte [0x425010], 8
jne 0x409b88
mov edx, 0x5c
mov eax, str.._
jmp 0x408985
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x408981
sub eax, str.._
mov dword [esp + 4], str.._
sar eax, 1
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcsncmp]
mov dword [ebp - 0x8d4], eax
call eax
mov dword [ebp - 0x8d0], 0
test eax, eax
jne 0x4089d5
mov dword [ebp - 0x8d0], 1
test byte [0x425010], 8
jne 0x409caf
mov dword [ebp - 0x8ac], 0
mov edi, dword [ebp - 0x8b8]
lea esi, [ebp - 0x470]
mov dword [ebp - 0x8b0], 0xffffffff
cmp dword [edi + 0xc], 0xffffffff
jne 0x408a07
mov eax, dword [ebp - 0x89c]
xor eax, 1
mov dword [edi + 0xc], eax
lea eax, [ebp - 0x88c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x678]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x4086ae
test byte [0x425010], 8
jne 0x409570
lea eax, [ebp - 0x678]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetFileAttributesW]
mov dword [ebp - 0x8c4], eax
call eax
sub esp, 4
cmp word [ebp - 0x678], 0
mov ebx, eax
je 0x408a92
lea eax, [ebp - 0x678]
nop
add eax, 2
cmp word [eax], 0
jne 0x408a70
lea ecx, [ebp - 0x678]
sub eax, ecx
sar eax, 1
cmp word [ebp + eax*2 - 0x67a], 0x5c
je 0x409870
lea eax, [ebp - 0x678]
mov dword [esp + 4], 0x426eba
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
cmp ebx, 0xffffffff
je 0x408ab6
test eax, eax
je 0x4097b4
test byte [0x425010], 8
je 0x408afc
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.5
mov ecx, dword [ebp - 0x89c]
mov dword [esp + 0xc], str.Copy_source__calculated_:_path:__s__Concats:__d__n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov edx, 0x5c
mov eax, str.._
jmp 0x408b14
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x408b10
sub eax, str.._
mov dword [esp + 4], str.._
sar eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x678]
mov dword [esp], eax
mov eax, dword [ebp - 0x8d4]
call eax
test eax, eax
je 0x4095b0
test byte [0x425010], 8
jne 0x409694
lea eax, [ebp - 0x268]
lea ebx, [ebp - 0x23c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x678]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x8a8], 0
sub esp, 8
mov dword [ebp - 0x8b0], eax
cmp eax, 0xffffffff
je 0x409400
mov eax, dword [ebp - 0x8a8]
test eax, eax
je 0x408bd1
jmp 0x408bda
test byte [0x425010], 8
jne 0x409430
lea eax, [ebp - 0x268]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x8b0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x409990
test byte [ebp - 0x268], 0x10
jne 0x408ba0
mov eax, dword [ebp - 0x8a0]
mov ecx, dword [eax + 8]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x408be5
mov eax, dword [ebp - 0x8a4]
or eax, dword [ebp - 0x8bc]
jne 0x409600
mov eax, dword [ebp - 0x8a8]
test eax, eax
je 0x40963e
movzx eax, byte [ebp - 0x89c]
mov byte [ebp - 0x8b4], al
mov eax, dword [ebp - 0x8d0]
mov ecx, eax
test eax, eax
jne 0x408c4d
test byte [ebp - 0x8ac], 1
je 0x409665
cmp byte [ebp - 0x8b4], 0
mov ecx, 1
je 0x409665
test byte [0x425010], 8
jne 0x409460
movzx eax, byte [ebp - 0x8a4]
and eax, 1
mov byte [ebp - 0x8cc], al
test byte [ebp - 0x8ac], 1
jne 0x408c80
cmp byte [ebp - 0x8b4], 0
jne 0x4096d0
test ecx, ecx
je 0x409540
mov eax, dword [ebp - 0x8a4]
test eax, eax
je 0x408d41
mov ecx, dword [ebp - 0x8a0]
mov eax, dword fs:[0x18]
mov edx, dword [ecx + 8]
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x8c0]
call eax
mov eax, esi
mov ecx, 2
sub esp, 0xc
cmp word [ebp - 0x470], 0
je 0x408ce7
add eax, 2
cmp word [eax], 0
jne 0x408cd6
sub eax, esi
sar eax, 1
lea ecx, [eax + eax + 2]
mov dword [esp], ecx
mov dword [ebp - 0x8a4], ecx
call dbg.heap_xalloc
mov ecx, dword [ebp - 0x8a4]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [ebp - 0x8a4], eax
call sym._memcpy
mov edx, dword [ebp - 0x8a4]
mov eax, dword [ebp - 0x8a0]
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8a4], 0
mov dword [eax + 8], edx
test byte [0x425010], 8
jne 0x409940
mov ecx, dword [ebp - 0x89c]
test ecx, ecx
jne 0x4098f0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4099ca
mov eax, dword [ebp - 0x8a8]
test eax, eax
je 0x4099a7
mov dword [esp], 0
xor ecx, ecx
mov edx, esi
lea eax, [ebp - 0x678]
call dbg.WCMD_ManualCopy
test eax, eax
je 0x4097a0
test byte [0x425010], 8
jne 0x4098c1
mov eax, dword [ebp - 0x89c]
test eax, eax
jne 0x4098b0
mov eax, dword [ebp - 0x8a0]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x408dc0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x409791
lea esi, [esi]
mov eax, dword [ebp - 0x8a8]
test eax, eax
je 0x408bad
nop
mov edi, dword [edi]
test edi, edi
jne 0x4089f5
mov ebx, dword [0x437470]
test ebx, ebx
jne 0x409103
mov eax, dword [ebp - 0x8a0]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x409103
mov edx, dword [ebp - 0x89c]
test edx, edx
je 0x409103
test byte [ebp - 0x8ac], 1
je 0x409103
mov eax, dword [eax + 8]
call dbg.WCMD_AppendEOF
test eax, eax
jne 0x409103
call dbg.WCMD_print_error
mov dword [0x437470], 1
jmp 0x409103
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Working_on_parameter__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
movzx eax, word [ebx]
cmp ax, 0x2f
jne 0x408768
mov esi, dword [sym.imp.ucrtbase.dll_towupper]
jmp 0x408ed4
cmp ax, 0x59
je 0x409250
cmp ax, 0x2d
je 0x409263
cmp ax, 0x56
je 0x4092c0
cmp ax, 0x4e
je 0x409314
cmp ax, 0x5a
jne 0x409341
test byte [0x425010], 1
jne 0x409a6a
movzx edi, word [ebx + 4]
add ebx, 4
cmp di, 0x2f
jne 0x409018
movzx eax, word [ebx + 2]
mov dword [esp], eax
call esi
cmp ax, 0x44
jne 0x408e84
test byte [0x425010], 1
je 0x408ec3
mov dword [esp + 0xc], str.copy__D_support_not_implemented_yet_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.9
jmp 0x408ec3
mov dword [esp], 0x10
call dbg.heap_xalloc
mov esi, eax
test byte [0x425010], 8
jne 0x4092e0
mov eax, dword [ebp - 0x8a4]
mov dword [esi], 0
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x8b0]
mov dword [esi + 0xc], eax
cmp word [ebx], 0
je 0x4093a3
mov eax, ebx
add eax, 2
cmp word [eax], 0
jne 0x408f51
sub eax, ebx
sar eax, 1
lea edi, [eax + 0xa]
lea eax, [edi + edi]
mov dword [esp], eax
call dbg.heap_xalloc
mov dword [esi + 8], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._memset
mov edx, dword [esi + 8]
xor ecx, ecx
movzx eax, word [ebx]
test ax, ax
je 0x408fba
test ecx, ecx
jne 0x408f9f
mov edi, eax
and edi, 0xfffffffb
cmp di, 0x2b
je 0x408fba
add ebx, 2
cmp ax, 0x22
je 0x409060
mov word [edx], ax
movzx eax, word [ebx]
add edx, 2
test ax, ax
jne 0x408f90
xor eax, eax
mov word [edx], ax
test byte [0x425010], 8
jne 0x4091c3
mov edi, dword [ebp - 0x8b8]
test edi, edi
je 0x409330
mov eax, dword [ebp - 0x8a4]
test eax, eax
jne 0x40923c
mov eax, dword [ebp - 0x8a0]
test eax, eax
jne 0x409e3e
mov dword [ebp - 0x8a0], esi
mov dword [ebp - 0x8a4], 0
movzx eax, word [ebx]
mov edx, eax
and edx, 0xfffffffb
cmp dx, 0x2b
je 0x40874c
mov eax, dword [ebp - 0x8ac]
lea edi, [ebp - 0x890]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
lea esi, [eax + 1]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], edi
mov dword [esp], eax
call sym._WCMD_parameter
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x8ac], esi
jmp 0x40874c
xor ecx, 1
jmp 0x408f88
mov eax, dword [ebp - 0x8ac]
lea edi, [ebp - 0x890]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
lea esi, [eax + 1]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], edi
mov dword [esp], eax
call sym._WCMD_parameter
mov dword [ebp - 0x8ac], esi
mov dword [ebp - 0x89c], 1
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x8a4], 1
jmp 0x40874c
mov dword [esp], 0x3f3
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [0x437470], 1
mov dword [ebp - 0x8c0], eax
mov eax, dword [ebp - 0x8b8]
test eax, eax
je 0x409169
mov ebx, dword [ebp - 0x8b8]
mov edi, dword [ebp - 0x8c0]
mov esi, dword fs:[0x18]
lea esi, [esi]
lea esi, [esi]
mov eax, dword [ebx]
mov dword [ebp - 0x89c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov ebx, dword [ebp - 0x89c]
sub esp, 0xc
test ebx, ebx
jne 0x409120
mov edi, dword [ebp - 0x8a0]
test edi, edi
je 0x4086ae
mov eax, dword [edi + 8]
mov dword [esp + 4], 0
mov esi, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 8]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Calculated_file_name__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov eax, dword [ebp - 0x8b8]
test eax, eax
je 0x4099d6
mov eax, dword [ebp - 0x8a4]
test eax, eax
je 0x408fe8
test byte [0x425010], 8
je 0x40923c
mov dword [esp + 0xc], str.Adding_to_source_file_list_to_be_concatenated_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov eax, dword [ebp - 0x8a8]
mov dword [ebp - 0x8a8], esi
mov dword [eax], esi
jmp 0x408ffc
mov dword [ebp - 0x8b4], 1
movzx edi, word [ebx + 4]
jmp 0x408ec7
movzx eax, word [ebx + 4]
mov edi, eax
mov dword [esp], eax
call esi
cmp ax, 0x59
je 0x409394
test byte [0x425010], 1
je 0x408ec3
lea eax, [ebx + 2]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Unexpected_copy_switch__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 0
call sym._wine_dbg_log.constprop.9
jmp 0x408ec3
test byte [0x425010], 1
je 0x408ec3
mov dword [esp + 0xc], str.copy__V_support_not_implemented_yet_n
jmp 0x408ef4
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Not_a_switch__but_probably_a_filename_list__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408f2d
test byte [0x425010], 1
je 0x408ec3
mov dword [esp + 0xc], str.copy__N_support_not_implemented_yet_n
jmp 0x408ef4
mov dword [ebp - 0x8a8], esi
mov dword [ebp - 0x8b8], esi
jmp 0x408ffc
cmp ax, 0x41
jne 0x409a18
mov eax, dword [ebp - 0x8b0]
test eax, eax
je 0x408ec3
test byte [0x425010], 8
jne 0x409cd8
mov eax, dword [ebp - 0x8a0]
test eax, eax
je 0x409e96
mov eax, dword [ebp - 0x8a0]
mov dword [eax + 0xc], 0
movzx edi, word [ebx + 4]
mov dword [ebp - 0x8b0], 0
jmp 0x408ec7
mov dword [ebp - 0x8c8], 1
jmp 0x408ec7
mov edi, 0xa
mov eax, 0x14
jmp 0x408f64
mov esi, dword [ebp - 0x8b4]
test esi, esi
jne 0x4087cf
lea esi, [ebp - 0x888]
mov ebx, dword [0x4372a8]
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], str.COPYCMD
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub eax, 1
sub esp, 0xc
cmp eax, 2
jbe 0x409eca
mov dword [ebp - 0x8c8], ebx
jmp 0x4087cf
mov eax, dword [ebp - 0x89c]
test eax, eax
je 0x409680
test byte [ebp - 0x8ac], 1
je 0x409680
mov dword [ebp - 0x8ac], 1
jmp 0x408dd0
mov dword [esp + 0xc], str.Skipping_directories_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408bad
lea eax, [ebp - 0x678]
mov dword [ebp - 0x8cc], ecx
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Copying_from_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
test byte [0x425010], 8
mov ecx, dword [ebp - 0x8cc]
je 0x408c5a
mov eax, esi
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Copying_to_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
test byte [0x425010], 8
mov ecx, dword [ebp - 0x8cc]
je 0x408c5a
mov eax, dword [ebp - 0x8c8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x8a0]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0xc], str.Flags:_srcbinary__d___dstbinary__d___over__d___prompt__d__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov ecx, dword [ebp - 0x8cc]
jmp 0x408c5a
mov dword [esp], esi
mov eax, dword [ebp - 0x8c4]
call eax
sub esp, 4
cmp eax, 0xffffffff
jne 0x409730
mov eax, dword [ebp - 0x8a4]
test eax, eax
je 0x408d41
jmp 0x408c96
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Full_src_name_is__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408a43
test byte [0x425010], 8
je 0x409974
mov dword [esp + 0xc], str.Source_is_a_device_n
lea ebx, [ebp - 0x670]
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov dword [ebp - 0x8a8], 1
jmp 0x408b90
cmp word [ebp - 0x470], 0
mov edx, esi
je 0x409619
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x409610
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409620
mov eax, dword [ebp - 0x8a8]
test eax, eax
jne 0x408c15
mov ecx, dword [ebp - 0x88c]
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x409650
jmp 0x408c15
mov eax, dword [ebp - 0x8c8]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x408c4d
call dbg.WCMD_print_error
mov dword [0x437470], 1
jmp 0x408dd0
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Searching_for:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408b55
mov edx, esi
lea eax, [ebp - 0x678]
mov dword [ebp - 0x8b4], ecx
call dbg.WCMD_IsSameFile
mov ecx, dword [ebp - 0x8b4]
test eax, eax
je 0x408c80
mov eax, dword [ebp - 0x8a4]
test eax, eax
jne 0x408c96
mov edx, esi
lea eax, [ebp - 0x678]
call dbg.WCMD_IsSameFile
test eax, eax
je 0x408d4f
test byte [0x425010], 8
jne 0x4098c1
mov dword [ebp - 0x8ac], 1
jmp 0x408dc0
mov dword [esp], 0x3ee
call sym._WCMD_LoadMessage
mov dword [esp + 4], esi
mov dword [esp], eax
call dbg.WCMD_format_string
xor edx, edx
mov dword [ebp - 0x8d8], eax
call sym._WCMD_ask_confirm.constprop.4
mov ecx, dword [ebp - 0x8d8]
mov dword [ebp - 0x8b4], eax
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_LocalFree]
mov edx, dword [ebp - 0x8b4]
sub esp, 4
test edx, edx
je 0x409784
cmp byte [ebp - 0x8cc], 0
jne 0x408c96
test edx, edx
je 0x408dc0
jmp 0x408d41
mov eax, esi
call dbg.WCMD_AppendEOF
test eax, eax
jne 0x408dc0
call dbg.WCMD_print_error
mov dword [0x437470], 1
jmp 0x408dc0
and ebx, 0x10
je 0x408ab6
mov edx, dword [edi + 8]
cmp word [edx], 0
je 0x4097d9
lea esi, [esi]
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x4097d0
xor eax, eax
mov ecx, 0x5c
jmp 0x4097e9
movzx ecx, word [eax + 0x426a36]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4097e2
lea eax, [ebp - 0x88c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x678]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x4086ae
test byte [0x425010], 8
je 0x408afc
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Directory__so_full_name_is_now__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408ab6
mov edx, dword [edi + 8]
cmp word [edx], 0
je 0x409889
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x409880
xor eax, eax
mov ecx, 0x2a
jmp 0x409899
movzx ecx, word [eax + 0x426a24]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409892
jmp 0x4097f5
mov eax, dword [ebp - 0x89c]
mov dword [ebp - 0x8ac], eax
jmp 0x408dc0
mov dword [esp + 0xc], str.Copied_successfully_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408d93
mov edx, esi
lea eax, [ebp - 0x678]
call dbg.WCMD_IsSameFile
test eax, eax
jne 0x409714
mov edx, dword [ebp - 0x8ac]
mov eax, dword [edi + 0xc]
test edx, edx
je 0x408d4f
mov dword [esp], 1
test eax, eax
jne 0x408d6f
mov ecx, 1
mov edx, esi
lea eax, [ebp - 0x678]
call dbg.WCMD_ManualCopy
jmp 0x408d7e
mov eax, esi
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Final_resolved_destination_name_:__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408d41
mov dword [ebp - 0x8a8], 1
lea ebx, [ebp - 0x670]
jmp 0x408b90
mov eax, dword [ebp - 0x8b0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x408dd0
lea eax, [ebp - 0x678]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CopyFileW]
sub esp, 0xc
jmp 0x408d7e
mov dword [esp], 0
jmp 0x409925
test byte [0x425010], 8
je 0x409330
mov dword [esp + 0xc], str.Adding_as_first_source_part_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov dword [ebp - 0x8a8], esi
mov dword [ebp - 0x8b8], esi
jmp 0x408ffc
cmp ax, 0x42
jne 0x409278
cmp dword [ebp - 0x8b0], 1
je 0x408ec3
test byte [0x425010], 8
jne 0x409da1
mov eax, dword [ebp - 0x8a0]
test eax, eax
je 0x409e6c
mov eax, dword [ebp - 0x8a0]
mov dword [eax + 0xc], 1
movzx edi, word [ebx + 4]
mov dword [ebp - 0x8b0], 1
jmp 0x408ec7
mov dword [esp + 0xc], str.copy__Z_support_not_implemented_yet_n
jmp 0x408ef4
test al, al
jne 0x409e15
xor eax, eax
mov edx, 0x2e
lea edi, [ebp - 0x880]
jmp 0x409a97
movzx edx, word [eax + 0x426a6e]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x409a90
cmp word [ebp - 0x880], 0
mov edx, edi
je 0x409ab9
nop
add edx, 2
cmp word [edx], 0
jne 0x409ab0
xor eax, eax
mov ecx, 0x5c
jmp 0x409ac9
movzx ecx, word [eax + 0x426a96]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409ac2
mov dword [esp], 0x10
call dbg.heap_xalloc
test eax, eax
je 0x409f05
mov ecx, dword [ebp - 0x89c]
mov esi, dword [ebp - 0x8b0]
xor edx, edx
mov dword [eax + 4], 0
mov dword [eax], 0
test ecx, ecx
mov dword [eax + 0xc], esi
mov dword [eax + 8], 0
mov dword [ebp - 0x8a0], eax
je 0x409b6f
mov eax, dword [ebp - 0x89c]
mov dword [ebp - 0x8a4], eax
jmp 0x4088d7
mov eax, edi
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Directory__so_full_name_is_now__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov edx, dword [ebp - 0x89c]
mov eax, dword [ebp - 0x8a0]
test edx, edx
jne 0x409f1f
mov edx, dword [eax + 8]
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x8bc], 1
jmp 0x4088f9
mov eax, edi
call sym._wine_dbgstr_wn.constprop.5
mov esi, dword [ebp - 0x8a4]
mov dword [esp + 0xc], str.Resolved_destination_is__s__calc_later__d__n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov eax, dword [ebp - 0x8a0]
mov ebx, dword [eax + 8]
jmp 0x408975
mov dword [esp + 0xc], str.Destination_supplied__processing_to_see_if_file_or_directory_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x4087ef
mov eax, dword [ebp - 0x89c]
test eax, eax
je 0x409c57
mov dword [ebp - 0x8a4], 0
mov eax, dword [ebp - 0x8a0]
mov esi, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [ebp - 0x8b0], esi
jmp 0x4088d7
mov eax, edi
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Full_dest_name_is__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x408831
mov eax, dword [ebp - 0x8b8]
mov dword [esp + 4], 0x426eba
mov eax, dword [eax + 8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
mov eax, dword [ebp - 0x8a0]
mov edx, dword [eax + 8]
je 0x409fe8
cmp dword [eax + 0xc], 0xffffffff
je 0x40a011
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x89c], 1
jmp 0x4088f9
mov dword [esp + 0xc], str.Destination_is_a_device_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x4089d5
mov dword [esp + 0xc], str.Subsequent_files_will_be_handled_as_ASCII_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov eax, dword [ebp - 0x8a0]
test eax, eax
je 0x409f3c
test byte [0x425010], 8
je 0x409374
mov eax, dword [eax + 8]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.file__s_will_be_written_as_ASCII_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x409374
mov eax, edi
add eax, 2
cmp word [eax], 0
jne 0x409d4e
sub eax, edi
mov edx, edi
sar eax, 1
cmp word [ebp + eax*2 - 0x882], 0x5c
je 0x4088a4
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x409d70
jmp 0x408888
mov dword [esp], 0x3f3
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov dword [0x437470], 1
jmp 0x409169
mov dword [esp + 0xc], str.Subsequent_files_will_be_handled_as_binary_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
mov eax, dword [ebp - 0x8a0]
test eax, eax
je 0x409f92
test byte [0x425010], 8
je 0x409a4a
mov eax, dword [eax + 8]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.file__s_will_be_written_as_binary_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x409a4a
mov dword [esp + 0xc], str.No_destination_supplied__so_need_to_calculate_it_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x409a7f
mov dword [esp], 0x3f3
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [0x437470], 1
mov dword [ebp - 0x8c0], eax
jmp 0x409103
mov edx, dword [ebp - 0x8a8]
test edx, edx
je 0x409e83
mov eax, dword [ebp - 0x8a8]
mov dword [eax + 0xc], 1
mov dword [ebp - 0x8b0], 1
movzx edi, word [ebx + 4]
jmp 0x408ec7
mov ecx, dword [ebp - 0x8a8]
test ecx, ecx
je 0x409ead
mov eax, dword [ebp - 0x8a8]
mov dword [eax + 0xc], 0
mov dword [ebp - 0x8b0], 0
movzx edi, word [ebx + 4]
jmp 0x408ec7
mov esi, 2
jmp 0x408945
mov dword [esp + 4], 0x426df8
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiW]
mov dword [esp], esi
call edi
sub esp, 8
test eax, eax
je 0x4087cf
mov dword [esp + 4], 0x426dfe
mov dword [esp], esi
call edi
sub esp, 8
test eax, eax
je 0x4087c5
jmp 0x4093f4
mov dword [ebp - 0x8a0], 0
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x8c0], eax
jmp 0x409103
mov esi, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x89c]
mov dword [ebp - 0x8b0], esi
mov dword [ebp - 0x8a4], eax
jmp 0x4088d7
mov edi, dword [ebp - 0x8a8]
test edi, edi
je 0x409ead
test byte [0x425010], 8
je 0x409ea0
mov eax, dword [ebp - 0x8a8]
mov eax, dword [eax + 8]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.file__s_will_be_read_as_ASCII_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x409ea0
mov ecx, dword [ebp - 0x8a8]
test ecx, ecx
je 0x409e83
test byte [0x425010], 8
je 0x409e76
mov eax, dword [ebp - 0x8a8]
mov eax, dword [eax + 8]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.file__s_will_be_read_as_binary_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x409e76
cmp dword [eax + 0xc], 0xffffffff
je 0x40a03b
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x89c], 0
jmp 0x4088f9
mov dword [eax + 0xc], 0
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x89c], 1
jmp 0x4088f9
mov dword [eax + 0xc], 1
mov dword [ebp - 0x8bc], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x89c], 0
jmp 0x4088f9