Function at 0x4088c0
Capabilities:
Copy file
Enumerate files on windows
Get file attributes
Parse credit card information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x8d8
mov eax, dword [ebp + 8]
cmp word [0x434460], 0
mov dword [0x4386f0], 0
mov dword [ebp - 0x898], eax
jne 0x408910
mov dword [esp], 0x3f2
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov dword [0x4386f0], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x884]
mov dword [esp + 0x10], 0
xor esi, esi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x898]
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._WCMD_parameter
mov dword [ebp - 0x8a0], esi
mov dword [ebp - 0x88c], 0
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x894], 0
mov dword [ebp - 0x888], 0
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x8a8], 0xffffffff
mov dword [ebp - 0x89c], 1
mov dword [ebp - 0x8b0], 0
mov dword [ebp - 0x8a4], 0
test ax, ax
je 0x4089fa
test byte [0x425010], 8
jne 0x409094
cmp ax, 0x2f
je 0x4091b3
cmp ax, 0x2b
jne 0x409280
mov eax, dword [ebp - 0x894]
test eax, eax
je 0x4094e3
movzx eax, word [ebx + 2]
test ax, ax
je 0x4093e0
mov dword [ebp - 0x888], 1
add ebx, 2
mov dword [ebp - 0x890], 1
test ax, ax
jne 0x4089a2
mov esi, dword [ebp - 0x8a0]
test esi, esi
je 0x40a1da
mov eax, dword [ebp - 0x8b0]
test eax, eax
je 0x409782
mov dword [ebp - 0x8b0], 1
movzx eax, byte [0x425010]
mov ebx, dword [ebp - 0x88c]
and eax, 8
test ebx, ebx
je 0x409e77
test al, al
jne 0x409f9c
lea eax, [ebp - 0x25c]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x874]
mov dword [esp + 8], eax
mov dword [ebp - 0x894], eax
mov eax, dword [ebp - 0x88c]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x408907
test byte [0x425010], 8
jne 0x40a03f
mov ebx, dword [ebp - 0x894]
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
movzx ecx, word [ebp - 0x874]
sub esp, 4
test cx, cx
je 0x408ad0
mov edx, ebx
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x408ab0
sub edx, dword [ebp - 0x894]
sar edx, 1
cmp word [ebp + edx*2 - 0x876], 0x5c
je 0x4097da
cmp eax, 0xffffffff
je 0x40a010
test al, 0x10
je 0x40a010
mov edx, dword [ebp - 0x894]
mov eax, edx
test cx, cx
jne 0x4097e0
xor eax, eax
mov ecx, 0x5c
jmp 0x408b07
movzx ecx, word [eax + 0x42756e]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x408b00
test byte [0x425010], 8
jne 0x409f39
mov eax, dword [ebp - 0x88c]
mov ecx, dword [ebp - 0x888]
mov edx, dword [eax + 8]
test ecx, ecx
je 0x409f83
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x890], ecx
mov dword [ebp - 0x8a8], eax
mov eax, dword [ebp - 0x890]
cmp dword [ebp - 0x8a8], 0xffffffff
mov dword [ebp - 0x8a4], eax
jne 0x408b68
mov eax, dword [ebp - 0x88c]
mov dword [eax + 0xc], 0
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], edx
mov dword [ebp - 0x8a8], eax
call eax
cmp word [ebp - 0x874], 0
je 0x40a27f
mov eax, dword [ebp - 0x894]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x408b90
sub eax, dword [ebp - 0x894]
sar eax, 1
lea edi, [eax + eax + 2]
mov dword [esp], edi
call dbg.xalloc
mov dword [esp + 8], edi
mov ebx, eax
mov eax, dword [ebp - 0x894]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [ebp - 0x88c]
mov dword [eax + 8], ebx
test byte [0x425010], 8
jne 0x409fc5
mov edx, 0x5c
mov eax, str.._
jmp 0x408bf4
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x408bf0
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 - 0x8bc], eax
call eax
mov dword [ebp - 0x8b8], 0
test eax, eax
jne 0x408c44
mov dword [ebp - 0x8b8], 1
test byte [0x425010], 8
jne 0x40a077
mov dword [ebp - 0x898], 0
lea edi, [ebp - 0x464]
mov dword [ebp - 0x89c], 0xffffffff
mov dword [ebp - 0x8c4], esi
cmp dword [esi + 0xc], 0xffffffff
jne 0x408c76
mov eax, dword [ebp - 0x888]
xor eax, 1
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x880]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x66c]
mov dword [esp + 8], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x408907
test byte [0x425010], 8
jne 0x409980
lea eax, [ebp - 0x66c]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetFileAttributesW]
mov dword [ebp - 0x8ac], eax
call eax
sub esp, 4
cmp word [ebp - 0x66c], 0
mov ebx, eax
je 0x408d02
lea eax, [ebp - 0x66c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x408ce0
lea ecx, [ebp - 0x66c]
sub eax, ecx
sar eax, 1
cmp word [ebp + eax*2 - 0x66e], 0x5c
je 0x409c70
lea eax, [ebp - 0x66c]
mov dword [esp + 4], 0x427eba
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
jne 0x408d26
cmp ebx, 0xffffffff
jne 0x409bb4
test byte [0x425010], 8
je 0x408d6c
lea eax, [ebp - 0x66c]
call sym._wine_dbgstr_wn.constprop.5
mov ecx, dword [ebp - 0x888]
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.6
mov edx, 0x5c
mov eax, str.._
jmp 0x408d84
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0x408d80
sub eax, str.._
mov dword [esp + 4], str.._
sar eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x66c]
mov dword [esp], eax
mov eax, dword [ebp - 0x8bc]
call eax
test eax, eax
je 0x4099c0
test byte [0x425010], 8
jne 0x409a94
lea eax, [ebp - 0x25c]
lea ebx, [ebp - 0x230]
mov dword [esp + 4], eax
lea eax, [ebp - 0x66c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x894], 0
sub esp, 8
mov dword [ebp - 0x89c], eax
cmp eax, 0xffffffff
je 0x409810
mov eax, dword [ebp - 0x894]
test eax, eax
je 0x408e41
jmp 0x408e4a
test byte [0x425010], 8
jne 0x409840
lea eax, [ebp - 0x25c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x89c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x409d90
test byte [ebp - 0x25c], 0x10
jne 0x408e10
mov eax, dword [ebp - 0x88c]
mov ecx, dword [eax + 8]
xor eax, eax
movzx edx, word [ecx + eax]
mov word [edi + eax], dx
add eax, 2
test dx, dx
jne 0x408e55
mov eax, dword [ebp - 0x890]
or eax, dword [ebp - 0x8a4]
jne 0x409a35
mov eax, dword [ebp - 0x894]
test eax, eax
je 0x409a10
movzx eax, byte [ebp - 0x888]
mov byte [ebp - 0x8a0], al
mov eax, dword [ebp - 0x8b8]
mov ecx, eax
test eax, eax
jne 0x408ebd
test byte [ebp - 0x898], 1
je 0x409a65
cmp byte [ebp - 0x8a0], 0
mov ecx, 1
je 0x409a65
test byte [0x425010], 8
jne 0x409870
movzx eax, byte [ebp - 0x890]
and eax, 1
mov byte [ebp - 0x8b4], al
test byte [ebp - 0x898], 1
jne 0x408ef0
cmp byte [ebp - 0x8a0], 0
jne 0x409ad0
test ecx, ecx
je 0x409950
mov eax, dword [ebp - 0x890]
test eax, eax
je 0x408f96
mov eax, dword [ebp - 0x88c]
mov eax, dword [eax + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x8a8]
call eax
cmp word [ebp - 0x464], 0
mov eax, edi
mov ecx, 2
je 0x408f3c
add eax, 2
cmp word [eax], 0
jne 0x408f2b
sub eax, edi
sar eax, 1
lea ecx, [eax + eax + 2]
mov dword [esp], ecx
mov dword [ebp - 0x890], ecx
call dbg.xalloc
mov ecx, dword [ebp - 0x890]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [ebp - 0x890], eax
call sym._memcpy
mov edx, dword [ebp - 0x890]
mov eax, dword [ebp - 0x88c]
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x890], 0
mov dword [eax + 8], edx
test byte [0x425010], 8
jne 0x409d40
mov ecx, dword [ebp - 0x888]
test ecx, ecx
jne 0x409cf0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x409dca
mov eax, dword [ebp - 0x894]
test eax, eax
je 0x409da7
mov dword [esp], 0
xor ecx, ecx
mov edx, edi
lea eax, [ebp - 0x66c]
call dbg.WCMD_ManualCopy
test eax, eax
je 0x409ba0
test byte [0x425010], 8
jne 0x409cc1
mov eax, dword [ebp - 0x888]
test eax, eax
jne 0x409cb0
mov eax, dword [ebp - 0x88c]
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x409010
mov eax, dword [esi + 0xc]
test eax, eax
je 0x409b91
nop
mov eax, dword [ebp - 0x894]
test eax, eax
je 0x408e1d
nop
mov esi, dword [esi]
test esi, esi
jne 0x408c64
mov ebx, dword [0x4386f0]
mov esi, dword [ebp - 0x8c4]
test ebx, ebx
jne 0x409516
mov eax, dword [ebp - 0x88c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x409516
mov edx, dword [ebp - 0x888]
test edx, edx
je 0x409516
test byte [ebp - 0x898], 1
je 0x409516
mov eax, dword [eax + 8]
call dbg.WCMD_AppendEOF
test eax, eax
jne 0x409516
call dbg.WCMD_print_error
mov ebx, dword [ebp - 0x8a8]
mov dword [0x4386f0], 1
jmp 0x409520
mov eax, ebx
shr eax, 0x10
je 0x409600
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edi, eax
sub esp, 8
mov eax, 0x427175
test edi, edi
jne 0x40917e
cmp word [ebx], 0
je 0x4090da
lea esi, [esi]
nop
add edi, 1
cmp word [ebx + edi*2], 0
jne 0x4090d0
mov eax, 0x224c
lea edx, [ebp - 0x25a]
lea esi, [edi - 1]
mov ecx, ebx
mov word [ebp - 0x25c], ax
lea eax, [ebp - 0x13a]
mov dword [ebp - 0x8ac], ebx
cmp edx, eax
ja 0x40914d
test edi, edi
jle 0x40914d
add ecx, 2
movzx eax, word [ecx - 2]
cmp ax, 0xd
je 0x4094d0
ja 0x409250
cmp ax, 9
je 0x4094b3
cmp ax, 0xa
jne 0x409453
mov eax, 0x6e5c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
nop
lea eax, [ebp - 0x13a]
lea esi, [edi - 1]
cmp edx, eax
jbe 0x409101
mov ebx, dword [ebp - 0x8ac]
mov byte [edx], 0x22
lea eax, [edx + 1]
test esi, esi
jle 0x40916d
mov ecx, 0x2e2e
mov byte [edx + 3], 0x2e
lea eax, [edx + 4]
mov word [edx + 1], cx
mov byte [eax], 0
lea eax, [ebp - 0x25c]
mov dword [esp], eax
call dbg.__wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Working_on_parameter__s_n
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
movzx eax, word [ebx]
cmp ax, 0x2f
jne 0x4089b9
mov esi, dword [sym.imp.ucrtbase.dll_towupper]
jmp 0x409211
cmp ax, 0x59
je 0x409620
cmp ax, 0x2d
je 0x409633
cmp ax, 0x56
je 0x409690
cmp ax, 0x4e
je 0x4096e4
cmp ax, 0x5a
jne 0x409711
test byte [0x425010], 1
jne 0x409e6a
nop
movzx edi, word [ebx + 4]
add ebx, 4
cmp di, 0x2f
jne 0x40938e
movzx eax, word [ebx + 2]
mov dword [esp], eax
call esi
cmp ax, 0x44
jne 0x4091c0
test byte [0x425010], 1
je 0x409200
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.6
jmp 0x409200
cmp ax, 0x22
je 0x409440
cmp ax, 0x5c
jne 0x409453
mov ebx, 0x5c5c
add edx, 2
mov edi, esi
mov word [edx - 2], bx
jmp 0x409140
mov dword [esp], 0x10
call dbg.xalloc
mov esi, eax
test byte [0x425010], 8
jne 0x4096b0
mov eax, dword [ebp - 0x890]
mov dword [esi], 0
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x8a8]
mov dword [esi + 0xc], eax
cmp word [ebx], 0
je 0x409773
mov edi, ebx
nop
add edi, 2
cmp word [edi], 0
jne 0x4092c0
sub edi, ebx
sar edi, 1
add edi, 0xa
lea eax, [edi + edi]
mov dword [esp], eax
call dbg.xalloc
mov dword [esi + 8], eax
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [ebp - 0x8ac], eax
call sym._memset
mov edx, edi
xor ecx, ecx
movzx eax, word [ebx]
test ax, ax
je 0x409330
test ecx, ecx
jne 0x409315
mov edi, eax
and edi, 0xfffffffb
cmp di, 0x2b
je 0x409330
add ebx, 2
cmp ax, 0x22
je 0x4093d3
mov word [edx], ax
movzx eax, word [ebx]
add edx, 2
test ax, ax
jne 0x409306
xor eax, eax
mov word [edx], ax
test byte [0x425010], 8
jne 0x409570
mov edi, dword [ebp - 0x8a0]
test edi, edi
je 0x409700
mov eax, dword [ebp - 0x890]
test eax, eax
jne 0x4095ec
mov eax, dword [ebp - 0x88c]
test eax, eax
jne 0x40a226
mov dword [ebp - 0x88c], esi
mov dword [ebp - 0x890], 0
movzx eax, word [ebx]
mov edx, eax
and edx, 0xfffffffb
cmp dx, 0x2b
je 0x40899d
mov eax, dword [ebp - 0x89c]
lea ecx, [ebp - 0x884]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
lea esi, [eax + 1]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x898]
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._WCMD_parameter
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x89c], esi
jmp 0x40899d
xor ecx, 1
jmp 0x4092fe
mov eax, dword [ebp - 0x89c]
lea ecx, [ebp - 0x884]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
lea esi, [eax + 1]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x898]
mov dword [esp + 8], ecx
mov dword [esp], eax
call sym._WCMD_parameter
mov dword [ebp - 0x89c], esi
mov dword [ebp - 0x888], 1
mov ebx, eax
movzx eax, word [eax]
mov dword [ebp - 0x890], 1
jmp 0x40899d
mov edi, 0x225c
add edx, 2
mov word [edx - 2], di
mov edi, esi
jmp 0x409140
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x409560
mov edi, eax
mov byte [edx], 0x5c
add edx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdefWCMD_choice]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [edx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefWCMD_choice]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + str.0123456789abcdefWCMD_choice]
and edi, 0xf
mov byte [edx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefWCMD_choice]
mov byte [edx - 1], al
mov edi, esi
mov byte [edx - 2], bl
jmp 0x409140
mov eax, 0x745c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x409140
mov eax, 0x725c
add edx, 2
mov edi, esi
mov word [edx - 2], ax
jmp 0x409140
mov dword [esp], 0x3f3
mov esi, dword [ebp - 0x8a0]
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [0x4386f0], 1
mov dword [ebp - 0x8a8], eax
test esi, esi
je 0x409535
mov ebx, dword [ebp - 0x8a8]
lea esi, [esi]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [esp], eax
call ebx
mov dword [esp], esi
mov esi, edi
call ebx
test edi, edi
jne 0x409520
mov esi, dword [ebp - 0x88c]
test esi, esi
je 0x408907
mov eax, dword [esi + 8]
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], eax
call ebx
mov dword [ebp + 8], esi
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp eax
mov byte [edx], al
mov edi, esi
add edx, 1
jmp 0x409140
mov eax, dword [ebp - 0x8ac]
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.6
mov eax, dword [ebp - 0x8a0]
test eax, eax
je 0x409dd6
mov eax, dword [ebp - 0x890]
test eax, eax
je 0x40935e
test byte [0x425010], 8
je 0x4095ec
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.6
mov eax, dword [ebp - 0x894]
mov dword [ebp - 0x894], esi
mov dword [eax], esi
jmp 0x409372
movzx eax, bx
mov dword [esp], 0x427168
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.9
jmp 0x40917e
mov dword [ebp - 0x8a4], 1
movzx edi, word [ebx + 4]
jmp 0x409204
movzx eax, word [ebx + 4]
mov edi, eax
mov dword [esp], eax
call esi
cmp ax, 0x59
je 0x409764
test byte [0x425010], 1
je 0x409200
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.6
jmp 0x409200
test byte [0x425010], 1
je 0x409200
mov dword [esp + 0xc], str.copy__V_support_not_implemented_yet_n
jmp 0x409231
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.6
jmp 0x40929b
test byte [0x425010], 1
je 0x409200
mov dword [esp + 0xc], str.copy__N_support_not_implemented_yet_n
jmp 0x409231
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x8a0], esi
jmp 0x409372
cmp ax, 0x41
jne 0x409e18
mov edi, dword [ebp - 0x8a8]
test edi, edi
je 0x409200
test byte [0x425010], 8
jne 0x40a0f2
mov eax, dword [ebp - 0x88c]
test eax, eax
je 0x40a255
mov eax, dword [ebp - 0x88c]
mov dword [eax + 0xc], 0
movzx edi, word [ebx + 4]
mov dword [ebp - 0x8a8], 0
jmp 0x409204
mov dword [ebp - 0x8b0], 1
jmp 0x409204
mov edi, 0xa
mov eax, 0x14
jmp 0x4092d3
mov edi, dword [ebp - 0x8a4]
test edi, edi
jne 0x408a20
mov eax, dword [0x438528]
lea ebx, [ebp - 0x87c]
mov dword [esp + 8], 4
mov dword [esp + 4], ebx
mov dword [ebp - 0x890], eax
mov dword [esp], str.COPYCMD
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
sub eax, 1
sub esp, 0xc
cmp eax, 2
jbe 0x40a2b3
mov eax, dword [ebp - 0x890]
mov dword [ebp - 0x8b0], eax
jmp 0x408a20
mov eax, dword [ebp - 0x894]
add eax, 2
cmp word [eax], 0
jne 0x4097e0
mov edx, dword [ebp - 0x894]
sub eax, edx
sar eax, 1
cmp word [ebp + eax*2 - 0x876], 0x5c
je 0x408b13
add edx, 2
cmp word [edx], 0
jne 0x409802
jmp 0x408af2
mov eax, dword [ebp - 0x888]
test eax, eax
je 0x409a80
test byte [ebp - 0x898], 1
je 0x409a80
mov dword [ebp - 0x898], 1
jmp 0x409020
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.6
jmp 0x408e1d
lea eax, [ebp - 0x66c]
mov dword [ebp - 0x8b4], 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.6
test byte [0x425010], 8
mov ecx, dword [ebp - 0x8b4]
je 0x408eca
mov eax, edi
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.6
test byte [0x425010], 8
mov ecx, dword [ebp - 0x8b4]
je 0x408eca
mov eax, dword [ebp - 0x8b0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x88c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 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.6
mov ecx, dword [ebp - 0x8b4]
jmp 0x408eca
mov dword [esp], edi
mov eax, dword [ebp - 0x8ac]
call eax
sub esp, 4
cmp eax, 0xffffffff
jne 0x409b30
mov eax, dword [ebp - 0x890]
test eax, eax
je 0x408f96
jmp 0x408f06
lea eax, [ebp - 0x66c]
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.6
jmp 0x408cb2
test byte [0x425010], 8
je 0x409d74
mov dword [esp + 0xc], str.Source_is_a_device_n
lea ebx, [ebp - 0x664]
mov dword [esp + 8], str.WCMD_copy
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
mov dword [ebp - 0x894], 1
jmp 0x408e00
mov ecx, dword [ebp - 0x880]
xor eax, eax
lea esi, [esi]
nop
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x409a20
jmp 0x408e85
cmp word [ebp - 0x464], 0
mov edx, edi
je 0x409a4a
add edx, 2
cmp word [edx], 0
jne 0x409a41
xor eax, eax
lea esi, [esi]
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409a50
jmp 0x408e77
mov eax, dword [ebp - 0x8b0]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x408ebd
call dbg.WCMD_print_error
mov dword [0x4386f0], 1
jmp 0x409020
lea eax, [ebp - 0x66c]
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.6
jmp 0x408dc5
mov edx, edi
lea eax, [ebp - 0x66c]
mov dword [ebp - 0x8a0], ecx
call dbg.WCMD_IsSameFile
mov ecx, dword [ebp - 0x8a0]
test eax, eax
je 0x408ef0
mov eax, dword [ebp - 0x890]
test eax, eax
jne 0x408f06
mov edx, edi
lea eax, [ebp - 0x66c]
call dbg.WCMD_IsSameFile
test eax, eax
je 0x408fa4
test byte [0x425010], 8
jne 0x409cc1
mov dword [ebp - 0x898], 1
jmp 0x409010
mov dword [esp], 0x3ee
call sym._WCMD_LoadMessage
mov dword [esp + 4], edi
mov dword [esp], eax
call dbg.WCMD_format_string
xor edx, edx
mov dword [ebp - 0x8c0], eax
call sym._WCMD_ask_confirm.constprop.4
mov ecx, dword [ebp - 0x8c0]
mov dword [ebp - 0x8a0], eax
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_LocalFree]
mov edx, dword [ebp - 0x8a0]
sub esp, 4
test edx, edx
je 0x409b84
cmp byte [ebp - 0x8b4], 0
jne 0x408f06
test edx, edx
je 0x409010
jmp 0x408f96
mov eax, edi
call dbg.WCMD_AppendEOF
test eax, eax
jne 0x409010
call dbg.WCMD_print_error
mov dword [0x4386f0], 1
jmp 0x409010
and ebx, 0x10
je 0x408d26
mov edx, dword [esi + 8]
cmp word [edx], 0
je 0x409bd9
lea esi, [esi]
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x409bd0
xor eax, eax
mov ecx, 0x5c
jmp 0x409be9
movzx ecx, word [eax + 0x42750e]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409be2
lea eax, [ebp - 0x880]
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x66c]
mov dword [esp + 8], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym._WCMD_get_fullpath
test eax, eax
je 0x408907
test byte [0x425010], 8
je 0x408d6c
lea eax, [ebp - 0x66c]
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.6
jmp 0x408d26
mov edx, dword [esi + 8]
cmp word [edx], 0
je 0x409c89
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x409c80
xor eax, eax
mov ecx, 0x2a
jmp 0x409c99
movzx ecx, word [eax + 0x4274fc]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409c92
jmp 0x409bf5
mov eax, dword [ebp - 0x888]
mov dword [ebp - 0x898], eax
jmp 0x409010
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.6
jmp 0x408fe8
mov edx, edi
lea eax, [ebp - 0x66c]
call dbg.WCMD_IsSameFile
test eax, eax
jne 0x409b14
mov edx, dword [ebp - 0x898]
mov eax, dword [esi + 0xc]
test edx, edx
je 0x408fa4
mov dword [esp], 1
test eax, eax
jne 0x408fc4
mov ecx, 1
mov edx, edi
lea eax, [ebp - 0x66c]
call dbg.WCMD_ManualCopy
jmp 0x408fd3
mov eax, edi
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.6
jmp 0x408f96
mov dword [ebp - 0x894], 1
lea ebx, [ebp - 0x664]
jmp 0x408e00
mov eax, dword [ebp - 0x89c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x409020
lea eax, [ebp - 0x66c]
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CopyFileW]
sub esp, 0xc
jmp 0x408fd3
mov dword [esp], 0
jmp 0x409d25
test byte [0x425010], 8
je 0x409700
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.6
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x8a0], esi
jmp 0x409372
cmp ax, 0x42
jne 0x409648
cmp dword [ebp - 0x8a8], 1
je 0x409200
test byte [0x425010], 8
jne 0x40a166
mov eax, dword [ebp - 0x88c]
test eax, eax
je 0x40a289
mov eax, dword [ebp - 0x88c]
mov dword [eax + 0xc], 1
movzx edi, word [ebx + 4]
mov dword [ebp - 0x8a8], 1
jmp 0x409204
mov dword [esp + 0xc], str.copy__Z_support_not_implemented_yet_n
jmp 0x409231
test al, al
jne 0x40a1fd
lea ecx, [ebp - 0x874]
xor eax, eax
mov edx, 0x2e
mov dword [ebp - 0x894], ecx
jmp 0x409e9b
movzx edx, word [eax + 0x427546]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x409e94
cmp word [ebp - 0x874], 0
mov edx, dword [ebp - 0x894]
je 0x409ec9
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x409ec0
xor eax, eax
mov ecx, 0x5c
jmp 0x409ed9
movzx ecx, word [eax + 0x42756e]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409ed2
mov dword [esp], 0x10
call dbg.xalloc
test eax, eax
je 0x40a2ee
mov ecx, dword [ebp - 0x8a8]
xor edx, edx
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x888]
mov dword [eax + 8], 0
test ecx, ecx
mov dword [ebp - 0x88c], eax
je 0x409f83
mov eax, dword [ebp - 0x888]
mov dword [ebp - 0x890], eax
jmp 0x408b46
mov eax, dword [ebp - 0x894]
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.6
mov edx, dword [ebp - 0x888]
mov eax, dword [ebp - 0x88c]
test edx, edx
jne 0x40a355
mov edx, dword [eax + 8]
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x8a4], 1
jmp 0x408b68
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.6
jmp 0x408a40
mov eax, dword [ebp - 0x894]
call sym._wine_dbgstr_wn.constprop.5
mov ecx, dword [ebp - 0x890]
mov dword [esp + 0xc], str.Resolved_destination_is__s__calc_later__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.6
mov eax, dword [ebp - 0x88c]
mov ebx, dword [eax + 8]
jmp 0x408bdb
mov eax, dword [ebp - 0x888]
test eax, eax
je 0x40a0a0
mov dword [ebp - 0x890], 0
mov eax, dword [ebp - 0x88c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov dword [ebp - 0x8a8], ecx
jmp 0x408b46
mov eax, dword [ebp - 0x894]
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.6
jmp 0x408a88
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.6
jmp 0x408c44
mov dword [esp + 4], 0x427eba
mov eax, dword [esi + 8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcspbrk]
test eax, eax
mov eax, dword [ebp - 0x88c]
mov edx, dword [eax + 8]
je 0x40a3c8
cmp dword [eax + 0xc], 0xffffffff
je 0x40a3f1
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x888], 1
jmp 0x408b68
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.6
mov eax, dword [ebp - 0x88c]
test eax, eax
je 0x40a372
test byte [0x425010], 8
je 0x409744
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.6
jmp 0x409744
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.6
mov eax, dword [ebp - 0x88c]
test eax, eax
je 0x40a303
test byte [0x425010], 8
je 0x409e4a
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.6
jmp 0x409e4a
mov dword [esp], 0x3f3
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov dword [0x4386f0], 1
jmp 0x409535
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.6
jmp 0x409e7f
mov dword [esp], 0x3f3
mov esi, dword [ebp - 0x8a0]
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov ebx, dword [sym.imp.ucrtbase.dll_free]
mov dword [0x4386f0], 1
jmp 0x409520
mov ecx, dword [ebp - 0x894]
test ecx, ecx
je 0x40a26c
mov eax, dword [ebp - 0x894]
mov dword [eax + 0xc], 0
mov dword [ebp - 0x8a8], 0
movzx edi, word [ebx + 4]
jmp 0x409204
mov edi, 2
jmp 0x408ba5
mov edx, dword [ebp - 0x894]
test edx, edx
je 0x40a2a0
mov eax, dword [ebp - 0x894]
mov dword [eax + 0xc], 1
mov dword [ebp - 0x8a8], 1
movzx edi, word [ebx + 4]
jmp 0x409204
mov dword [esp + 4], 0x427df8
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiW]
mov dword [esp], ebx
call edi
sub esp, 8
test eax, eax
je 0x408a20
mov dword [esp + 4], 0x427dfe
mov dword [esp], ebx
call edi
sub esp, 8
test eax, eax
je 0x408a16
jmp 0x4097c9
mov dword [ebp - 0x88c], 0
mov ebx, dword [sym.imp.ucrtbase.dll_free]
jmp 0x409520
mov edx, dword [ebp - 0x894]
test edx, edx
je 0x40a2a0
test byte [0x425010], 8
je 0x40a293
mov eax, dword [ebp - 0x894]
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.6
jmp 0x40a293
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x888]
mov dword [ebp - 0x8a8], ecx
mov dword [ebp - 0x890], eax
jmp 0x408b46
mov ecx, dword [ebp - 0x894]
test ecx, ecx
je 0x40a26c
test byte [0x425010], 8
je 0x40a25f
mov eax, dword [ebp - 0x894]
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.6
jmp 0x40a25f
cmp dword [eax + 0xc], 0xffffffff
je 0x40a41b
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x888], 0
jmp 0x408b68
mov dword [eax + 0xc], 0
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x888], 1
jmp 0x408b68
mov dword [eax + 0xc], 1
mov dword [ebp - 0x8a4], 0
mov dword [ebp - 0x890], 0
mov dword [ebp - 0x888], 0
jmp 0x408b68