Function at 0x401dc0
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Get process heap flags
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3cc
mov dword [ebp - 0x380], edx
mov edx, 0x250
mov ebx, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x384], ecx
xor ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov esi, dword fs:[0x18]
mov dword [ebp - 0x374], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov edi, eax
mov eax, 0x208
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov dword [ebp - 0x364], eax
sub esp, 0xc
mov eax, 0x208
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov ecx, dword [ebp - 0x364]
mov ebx, dword [ebp - 0x374]
mov dword [ebp - 0x378], eax
sub esp, 0xc
xor eax, eax
nop
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test edx, edx
jne 0x401e60
mov edx, dword [ebp - 0x364]
cmp word [edx], 0
je 0x402e29
nop
add edx, 2
cmp word [edx], 0
jne 0x401e80
mov ebx, dword [ebp - 0x380]
xor eax, eax
jmp 0x401ea0
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x401ea0
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x364]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x38c], eax
call eax
mov dword [ebp - 0x360], eax
sub esp, 8
inc eax
je 0x4024a0
lea eax, [edi + 0x2c]
mov ebx, 0x40f020
shr ebx, 0x10
mov esi, eax
mov dword [ebp - 0x39c], ebx
shr eax, 0x10
mov ebx, 0x40f240
mov dword [ebp - 0x368], eax
shr ebx, 0x10
xor eax, eax
mov dword [ebp - 0x398], ebx
mov dword [ebp - 0x37c], eax
jmp 0x401f3b
test byte [0x408004], 8
jne 0x402298
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x360]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x4024a0
mov dword [esp], esi
mov eax, 0x409114
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
je 0x401f10
mov dword [esp], esi
mov eax, 0x409118
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
je 0x401f10
mov eax, dword [edi]
and eax, 0x10
mov dword [ebp - 0x35c], eax
jne 0x401f10
mov ecx, dword [ebp - 0x374]
xor eax, eax
lea esi, [esi]
lea edi, [edi]
movzx edx, word [ecx + eax]
add eax, 2
mov word [eax + 0x40f23e], dx
test edx, edx
jne 0x401f90
mov ecx, dword [ebp + 0xc]
mov edx, 0x40f240
movzx eax, word [0x40f240]
and ecx, 0x200
je 0x402638
test eax, eax
je 0x401fd9
jmp 0x401fd0
add edx, 2
cmp word [edx], 0
jne 0x401fd0
xor eax, eax
nop
lea esi, [esi]
movzx ebx, word [edi + eax + 0x234]
mov word [edx + eax], bx
add eax, 2
test ebx, ebx
jne 0x401fe0
mov ebx, dword [ebp - 0x384]
xor eax, eax
nop
lea esi, [esi]
movzx edx, word [ebx + eax]
add eax, 2
mov word [eax + 0x40f01e], dx
test edx, edx
jne 0x402000
mov eax, dword [ebp + 8]
movzx edx, word [0x40f020]
cmp word [eax], 0
jne 0x402910
test ecx, ecx
jne 0x402798
test edx, edx
mov eax, 0x40f020
je 0x402050
mov esi, esi
lea edi, [edi]
add eax, 2
cmp word [eax], 0
jne 0x402040
lea esi, [esi]
movzx edx, word [edi + ecx + 0x2c]
mov word [eax + ecx], dx
add ecx, 2
test edx, edx
jne 0x402050
test byte [0x408004], 8
jne 0x4027e0
mov eax, dword [ebp + 0xc]
and eax, 0x20
or eax, dword [ebp - 0x37c]
je 0x402dc0
mov dword [esp], 0x40f240
mov eax, dword [sym.imp.kernel32.dll_GetFileAttributesW]
mov dword [ebp - 0x388], eax
call eax
mov dword [ebp - 0x36c], eax
sub esp, 4
test byte [0x408004], 8
jne 0x4028e0
xor ebx, ebx
test byte [ebp - 0x36c], 6
mov dword [ebp - 0x370], ebx
je 0x4020cc
mov eax, dword [ebp + 0xc]
shr eax, 0xc
xor eax, 1
and eax, 1
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x36c]
and eax, 0x20
mov dword [ebp - 0x3a0], eax
jne 0x4020ea
test dword [ebp + 0xc], 0x8000
jne 0x402948
mov dword [esp], 0x40f020
mov eax, dword [ebp - 0x388]
call eax
mov dword [ebp - 0x394], eax
sub esp, 4
test byte [0x408004], 8
jne 0x402c78
mov eax, dword [ebp - 0x370]
test eax, eax
jne 0x401f1d
test dword [ebp + 0xc], 0x40000
jne 0x402dd0
cmp dword [ebp - 0x394], 0xffffffff
setne byte [ebp - 0x390]
test dword [ebp + 0xc], 0x80000
movzx eax, byte [ebp - 0x390]
je 0x402150
test al, al
jne 0x402a98
test dword [ebp + 0xc], 0x20000
jne 0x402e34
test dword [ebp + 0xc], 0x4000
jne 0x40327e
cmp byte [ebp - 0x390], 0
je 0x403387
test dword [ebp + 0xc], 0x100
je 0x403147
test byte [ebp + 0xc], 8
jne 0x4021b2
test byte [ebp + 0xc], 0x10
je 0x40311d
mov dword [esp], str._1_____2_n
mov eax, 0x40f020
mov dword [esp + 8], eax
mov eax, 0x40f240
mov dword [esp + 4], eax
call sym._XCOPY_wprintf
test byte [ebp - 0x394], 1
je 0x4021f0
test dword [ebp + 0xc], 0x800
je 0x4021f0
mov dword [esp], 0x40f020
mov eax, dword [ebp - 0x394]
and eax, 0xfffffffe
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_SetFileAttributesW]
sub esp, 8
jmp 0x4021f0
test byte [ebp + 0xc], 0xa0
mov eax, 1
mov dword [ebp - 0x37c], eax
jne 0x401f1d
mov dword [esp], 0x40f240
xor ebx, ebx
mov eax, 0x40f020
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_CopyFileW]
sub esp, 0xc
test eax, eax
je 0x403615
test dword [ebp + 0xc], 0x100000
jne 0x403433
mov dword [esp], 0x40f020
mov eax, dword [ebp - 0x388]
call eax
sub esp, 4
and eax, 0xfffffffe
mov dword [esp + 4], eax
mov ebx, dword [sym.imp.kernel32.dll_SetFileAttributesW]
mov dword [esp], 0x40f020
call ebx
mov eax, dword [ebp - 0x3a0]
sub esp, 8
test eax, eax
je 0x40227b
test dword [ebp + 0xc], 0x10000
jne 0x4036a1
inc dword [0x40f454]
mov ecx, 1
mov dword [ebp - 0x37c], ecx
jmp 0x401f1d
mov eax, dword [ebp - 0x368]
test eax, eax
je 0x402470
mov dword [esp], esi
mov eax, 0xffffffff
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x402600
cmp word [edi + 0x2c], 0
je 0x402610
nop
mov edx, eax
cmp word [edi + edx*2 + 0x2e], 0
lea eax, [eax + 1]
jne 0x4022d0
mov dword [ebp - 0x36c], esi
lea ecx, [ebp - 0x21e]
mov eax, 0x224c
mov word [ebp - 0x220], ax
lea eax, [ebp - 0xfe]
mov dword [ebp - 0x35c], esi
mov esi, eax
mov dword [ebp - 0x370], edi
jmp 0x402337
cmp eax, 9
je 0x402460
cmp eax, 0xa
jne 0x402402
mov word [ecx], 0x6e5c
add ecx, 2
lea eax, [edx - 1]
cmp ecx, esi
ja 0x402380
test edx, edx
jle 0x402380
mov edx, eax
add dword [ebp - 0x35c], 2
mov eax, dword [ebp - 0x35c]
movzx eax, word [eax - 2]
cmp eax, 0xd
je 0x4023e8
jbe 0x402310
cmp eax, 0x22
je 0x402450
cmp eax, 0x5c
nop
jne 0x4023f5
mov word [ecx], 0x5c5c
lea eax, [edx - 1]
add ecx, 2
cmp ecx, esi
jbe 0x402331
lea esi, [esi]
lea edi, [edi]
test eax, eax
mov esi, dword [ebp - 0x36c]
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x370]
jle 0x402629
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
lea ebx, [ebp - 0x220]
mov dword [esp], ebx
call sym.___wine_dbg_strdup
mov edx, str.Skipping_directory__._or_..___s__n
mov ecx, str.XCOPY_DoCopy
mov dword [esp + 0x10], eax
mov ebx, 0x408004
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x401f1d
mov word [ecx], 0x725c
add ecx, 2
jmp 0x40232a
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x402490
mov byte [ecx], 0x5c
mov edi, eax
add ecx, 5
shr edi, 0xc
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 4
and eax, 0xf
and edi, 0xf
movzx eax, byte [eax + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x40232a
mov word [ecx], 0x225c
add ecx, 2
jmp 0x40232a
mov word [ecx], 0x745c
add ecx, 2
jmp 0x40232a
mov dword [esp], str._04x
movzx eax, si
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
jmp 0x4023b5
mov byte [ecx], al
inc ecx
jmp 0x40232a
mov eax, dword [ebp - 0x360]
xor esi, esi
mov ebx, dword [sym.imp.kernel32.dll_FindClose]
mov dword [esp], eax
call ebx
sub esp, 4
test byte [ebp + 0xc], 2
je 0x402593
mov eax, dword [ebp + 0xc]
and eax, 0x24
cmp eax, 4
je 0x402a88
mov ecx, dword [ebp - 0x364]
xor eax, eax
mov esi, dword [ebp - 0x374]
lea esi, [esi]
movzx edx, word [esi + eax]
mov word [ecx + eax], dx
add eax, 2
test edx, edx
jne 0x4024e0
mov edx, dword [ebp - 0x364]
cmp word [edx], 0
je 0x402c69
nop
add edx, 2
cmp word [edx], 0
jne 0x402500
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x409214]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x402510
test byte [0x408004], 8
jne 0x40299d
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x364]
mov dword [esp], eax
mov eax, dword [ebp - 0x38c]
call eax
sub esp, 8
cmp eax, 0xffffffff
mov esi, eax
je 0x402589
mov dword [ebp - 0x360], ebx
lea eax, [edi + 0x2c]
mov dword [ebp - 0x35c], eax
shr eax, 0x10
mov dword [ebp - 0x368], eax
test byte [edi], 0x10
jne 0x402668
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
jne 0x402566
mov ebx, dword [ebp - 0x360]
mov dword [esp], esi
xor esi, esi
call ebx
sub esp, 4
mov dword [esp + 8], edi
xor eax, eax
mov edi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esp + 4], eax
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x364]
xor edx, edx
sub esp, 0xc
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x378]
xor ecx, ecx
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, esi
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, str._invalid_
jmp 0x4023b5
mov byte [ebp - 0x21e], 0x22
lea ecx, [ebp - 0x21e]
mov eax, 0x224c
mov word [ebp - 0x220], ax
lea eax, [ecx + 1]
jmp 0x4023a4
test eax, eax
je 0x402649
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x402640
xor eax, eax
nop
lea esi, [esi]
movzx ebx, word [edi + eax + 0x2c]
mov word [edx + eax], bx
add eax, 2
test ebx, ebx
jne 0x402650
jmp 0x401ff3
mov eax, 0x409114
mov ebx, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x35c]
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
je 0x40256f
mov eax, 0x409118
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x35c]
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
je 0x40256f
test byte [0x408004], 8
jne 0x40345f
mov ecx, dword [ebp - 0x364]
xor eax, eax
mov ebx, dword [ebp - 0x374]
mov esi, esi
lea edi, [edi]
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test edx, edx
jne 0x4026d0
mov edx, dword [ebp - 0x364]
cmp word [edx], 0
je 0x4035a1
nop
add edx, 2
cmp word [edx], 0
jne 0x4026f0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [edi + eax + 0x2c]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x402700
mov edx, dword [ebp - 0x364]
cmp word [edx], 0
je 0x403596
add edx, 2
cmp word [edx], 0
jne 0x402720
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [eax + 0x409250]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x402730
mov ecx, dword [ebp - 0x378]
xor eax, eax
mov ebx, dword [ebp - 0x384]
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test edx, edx
jne 0x402750
mov eax, dword [ebp + 8]
cmp word [eax], 0
je 0x403539
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x378]
mov edx, dword [ebp - 0x380]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0x364]
call sym._XCOPY_DoCopy
jmp 0x40256f
test edx, edx
mov edx, 0x40f020
je 0x4027b9
jmp 0x4027b0
add edx, 2
cmp word [edx], 0
jne 0x4027b0
xor eax, eax
nop
lea esi, [esi]
movzx ecx, word [edi + eax + 0x234]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x4027c0
test byte [0x408004], 8
je 0x40206d
mov eax, dword [ebp - 0x39c]
test eax, eax
je 0x402b3d
mov dword [esp], 0x40f020
mov eax, 0xffffffff
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4033b0
cmp word [0x40f020], 0
je 0x4035d8
lea esi, [esi]
mov edx, eax
cmp word [edx + edx + 0x40f022], 0
lea eax, [eax + 1]
jne 0x402820
mov dword [ebp - 0x370], esi
mov eax, 0x224c
mov ebx, 0x40f020
mov word [ebp - 0x220], ax
lea eax, [ebp - 0xfe]
mov dword [ebp - 0x388], edi
lea ecx, [ebp - 0x21e]
mov esi, eax
mov dword [ebp - 0x36c], ebx
jmp 0x4028a5
cmp eax, 9
je 0x402ce0
cmp eax, 0xa
jne 0x402d52
mov word [ecx], 0x6e5c
add ecx, 2
lea esi, [esi]
lea edi, [edi]
lea eax, [edx - 1]
cmp ecx, esi
ja 0x402fc0
test edx, edx
jle 0x402fc0
mov edx, eax
add dword [ebp - 0x36c], 2
mov eax, dword [ebp - 0x36c]
movzx eax, word [eax - 2]
cmp eax, 0xd
je 0x402ccd
jbe 0x402868
cmp eax, 0x22
je 0x402da0
cmp eax, 0x5c
lea esi, [esi]
jne 0x402d45
mov word [ecx], 0x5c5c
add ecx, 2
jmp 0x402890
mov dword [esp + 0x10], eax
mov eax, str.Source_attribs:__d_n
mov dword [esp + 0xc], eax
mov eax, str.XCOPY_DoCopy
mov dword [esp + 8], eax
mov eax, 0x408004
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x4020a9
test edx, edx
mov ecx, 0x40f020
je 0x402929
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x402920
mov ebx, dword [ebp + 8]
xor eax, eax
nop
movzx edx, word [ebx + eax]
mov word [ecx + eax], dx
add eax, 2
test edx, edx
jne 0x402930
jmp 0x402060
mov dword [esp], 0x40f020
mov eax, dword [ebp - 0x388]
call eax
sub esp, 4
test byte [0x408004], 8
je 0x401f1d
mov dword [esp], 3
mov eax, dword [ebp - 0x36c]
mov ebx, str.Dest_attribs:__d_n
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov eax, str.XCOPY_DoCopy
mov dword [esp + 8], eax
mov eax, 0x408004
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x401f1d
mov eax, dword [ebp - 0x364]
shr eax, 0x10
je 0x4035f9
mov esi, dword [ebp - 0x364]
mov edx, 0xffffffff
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x403668
cmp word [esi], 0
je 0x403441
mov ecx, esi
nop
lea esi, [esi]
mov edx, eax
cmp word [ecx + edx*2 + 2], 0
lea eax, [eax + 1]
jne 0x4029e0
mov dword [ebp - 0x35c], edi
mov ecx, 0x224c
mov esi, dword [ebp - 0x364]
mov word [ebp - 0x220], cx
lea ecx, [ebp - 0x21e]
mov dword [ebp - 0x360], ebx
jmp 0x402a5b
cmp eax, 9
je 0x403110
cmp eax, 0xa
jne 0x4030a0
mov word [ecx], 0x6e5c
add ecx, 2
lea esi, [esi]
lea edi, [edi]
lea eax, [edx - 1]
test edx, edx
jle 0x4033ca
lea ebx, [ebp - 0xfe]
cmp ecx, ebx
ja 0x4033ca
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp eax, 0xd
je 0x4030fd
jbe 0x402a18
cmp eax, 0x22
je 0x4030f0
cmp eax, 0x5c
jne 0x403093
mov word [ecx], 0x5c5c
add ecx, 2
jmp 0x402a40
mov eax, dword [ebp - 0x384]
call sym._XCOPY_CreateDirectory
jmp 0x4024cf
xor eax, eax
mov edx, 1
mov dword [esp + 0x18], eax
mov eax, pe_nt_image_headers32
mov ecx, 0x80000000
mov dword [esp + 0x14], eax
mov eax, 3
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], ecx
mov dword [esp], 0x40f020
call dword [sym.imp.kernel32.dll_CreateFileW]
sub esp, 0x1c
cmp eax, 0xffffffff
mov edx, eax
je 0x402150
xor ecx, ecx
xor eax, eax
mov dword [esp], edx
lea ebx, [ebp - 0x220]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x3a4], edx
call dword [sym.imp.kernel32.dll_GetFileTime]
lea eax, [edi + 0x14]
sub esp, 0x10
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CompareFileTime]
mov edx, dword [ebp - 0x3a4]
sub esp, 8
test eax, eax
jle 0x403683
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
jmp 0x402150
mov dword [esp], str._04x
mov eax, 0x40f020
mov dword [ebp - 0x36c], eax
movzx eax, word [ebp - 0x36c]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x398]
test eax, eax
je 0x40306f
mov dword [esp], 0x40f240
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4033c0
cmp word [0x40f240], 0
je 0x4035b7
lea esi, [esi]
lea edi, [edi]
mov edx, eax
cmp word [edx + edx + 0x40f242], 0
lea eax, [eax + 1]
jne 0x402bb0
mov dword [ebp - 0x388], esi
mov eax, 0x224c
mov ebx, 0x40f240
mov word [ebp - 0x220], ax
lea eax, [ebp - 0xfe]
mov dword [ebp - 0x390], edi
lea ecx, [ebp - 0x21e]
mov esi, eax
mov dword [ebp - 0x36c], ebx
jmp 0x402c35
cmp eax, 9
je 0x402cc0
cmp eax, 0xa
jne 0x402cfa
mov word [ecx], 0x6e5c
add ecx, 2
lea esi, [esi]
lea edi, [edi]
lea eax, [edx - 1]
cmp ecx, esi
ja 0x403000
test edx, edx
jle 0x403000
mov edx, eax
add dword [ebp - 0x36c], 2
mov eax, dword [ebp - 0x36c]
movzx eax, word [eax - 2]
cmp eax, 0xd
je 0x402cae
jbe 0x402bf8
cmp eax, 0x22
je 0x402db0
cmp eax, 0x5c
jne 0x402ced
mov word [ecx], 0x5c5c
add ecx, 2
jmp 0x402c20
mov edx, dword [ebp - 0x364]
jmp 0x402509
mov eax, dword [ebp - 0x36c]
mov edx, str.XCOPY_DoCopy
mov ecx, 0x408004
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov eax, str.Dest_attribs:__d_n
mov dword [esp + 0xc], eax
call sym._wine_dbg_log.constprop.0
jmp 0x40210f
mov word [ecx], 0x725c
add ecx, 2
jmp 0x402c20
mov word [ecx], 0x745c
add ecx, 2
jmp 0x402c20
mov word [ecx], 0x725c
add ecx, 2
jmp 0x402890
mov word [ecx], 0x745c
add ecx, 2
jmp 0x402890
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x40313f
mov byte [ecx], 0x5c
mov edi, eax
add ecx, 5
shr edi, 0xc
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 4
and eax, 0xf
and edi, 0xf
movzx eax, byte [eax + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402c20
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x403137
mov byte [ecx], 0x5c
mov edi, eax
add ecx, 5
shr edi, 0xc
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 4
and eax, 0xf
and edi, 0xf
movzx eax, byte [eax + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402890
mov word [ecx], 0x225c
add ecx, 2
jmp 0x402890
mov word [ecx], 0x225c
add ecx, 2
jmp 0x402c20
mov eax, dword [ebp - 0x384]
call sym._XCOPY_CreateDirectory
jmp 0x40207f
mov eax, 0x40f448
mov dword [esp + 4], eax
lea eax, [edi + 0x14]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CompareFileTime]
sub esp, 8
test eax, eax
jns 0x40212a
test byte [0x408004], 8
je 0x401f1d
mov dword [esp], 3
mov eax, str.XCOPY_DoCopy
mov ebx, str.Skipping_file_as_modified_date_too_old_n
mov dword [esp + 8], eax
mov eax, 0x408004
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
call sym._wine_dbg_log.constprop.0
jmp 0x401f1d
mov edx, dword [ebp - 0x364]
jmp 0x401e89
mov ecx, dword [0x40f450]
lea ebx, [ebp - 0x220]
xor eax, eax
lea esi, [esi]
lea edi, [edi]
movzx edx, word [eax + 0x40f240]
mov word [ebx + eax], dx
add eax, 2
test edx, edx
jne 0x402e50
cmp word [ebp - 0x220], 0
je 0x402e83
mov eax, ebx
nop
add eax, 2
cmp word [eax], 0
jne 0x402e70
sub eax, ebx
sar eax, 1
mov dword [ebp - 0x35c], eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x35c]
mov dword [ebp - 0x3a4], ecx
mov dword [esp + 4], eax
call sym._CharUpperBuffW_8
mov ecx, dword [ebp - 0x3a4]
sub esp, 8
test ecx, ecx
je 0x40215d
mov dword [ebp - 0x35c], esi
mov esi, ecx
jmp 0x402eca
mov esi, dword [esi]
test esi, esi
je 0x4035ac
mov eax, dword [esi + 4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll_wcsstr]
test eax, eax
je 0x402ec0
test byte [0x408004], 8
mov ecx, esi
mov esi, dword [ebp - 0x35c]
je 0x401f1d
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x4038f4
mov eax, ebx
shr eax, 0x10
je 0x40381c
mov dword [esp], ebx
mov eax, 0xffffffff
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4038ea
cmp word [ebx], 0
je 0x40391c
mov edx, eax
cmp word [ebx + edx*2 + 2], 0
lea eax, [eax + 1]
jne 0x402f30
mov dword [ebp - 0x35c], esi
mov eax, 0x224c
mov esi, edx
mov word [ebp - 0x34c], ax
lea eax, [ebp - 0x34a]
jmp 0x402f8e
cmp edx, 9
je 0x4037b0
cmp edx, 0xa
jne 0x403731
mov word [eax], 0x6e5c
add eax, 2
lea edx, [esi - 1]
test esi, esi
jle 0x4037bd
lea esi, [ebp - 0x22a]
cmp eax, esi
ja 0x4037bd
mov esi, edx
movzx edx, word [ebx]
add ebx, 2
cmp edx, 0xd
je 0x4037a3
jbe 0x402f59
cmp edx, 0x22
je 0x40377c
cmp edx, 0x5c
nop
lea esi, [esi]
jne 0x403724
mov word [eax], 0x5c5c
add eax, 2
jmp 0x402f73
test eax, eax
mov esi, dword [ebp - 0x370]
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x388]
jle 0x4035f1
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
lea ebx, [ebp - 0x220]
mov dword [esp], ebx
call sym.___wine_dbg_strdup
mov dword [ebp - 0x370], eax
jmp 0x402b65
test eax, eax
mov esi, dword [ebp - 0x388]
mov byte [ecx], 0x22
mov edi, dword [ebp - 0x390]
jle 0x4035d0
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
lea ebx, [ebp - 0x220]
mov dword [esp], ebx
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov ebx, dword [ebp - 0x370]
mov eax, str.ACTION:_Copy__s_____s_n
mov dword [esp + 0xc], eax
mov edx, 0x408004
mov eax, str.XCOPY_DoCopy
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp + 0x14], ebx
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x40206d
mov dword [esp], str._04x
mov ebx, 0x40f240
mov dword [ebp - 0x36c], ebx
movzx eax, word [ebp - 0x36c]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
jmp 0x403035
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x40342b
mov byte [ecx], 0x5c
mov edi, eax
add ecx, 5
shr edi, 0xc
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov edi, eax
shr edi, 4
and eax, 0xf
and edi, 0xf
movzx eax, byte [eax + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 3], bl
movzx ebx, byte [edi + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x402a40
mov word [ecx], 0x225c
add ecx, 2
jmp 0x402a40
mov word [ecx], 0x725c
add ecx, 2
jmp 0x402a40
mov word [ecx], 0x745c
add ecx, 2
jmp 0x402a40
mov dword [esp], 0x4090f4
mov eax, 0x40f240
mov dword [esp + 4], eax
call sym._XCOPY_wprintf
jmp 0x4021b2
mov byte [ecx], al
inc ecx
jmp 0x402890
mov byte [ecx], al
inc ecx
jmp 0x402c20
mov eax, 0x70
call sym._XCOPY_LoadMessage
mov ebx, dword [sym.imp.ucrtbase.dll_wcscpy]
mov dword [esp + 4], eax
lea eax, [ebp - 0x354]
mov dword [esp], eax
call ebx
mov eax, 0x72
call sym._XCOPY_LoadMessage
mov dword [esp + 4], eax
lea eax, [ebp - 0x350]
mov dword [esp], eax
call ebx
mov eax, 0x71
call sym._XCOPY_LoadMessage
mov dword [esp + 4], eax
lea eax, [ebp - 0x34c]
mov dword [esp], eax
call ebx
mov ecx, dword [sym.imp.kernel32.dll_ReadFile]
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x370], esi
mov eax, dword [sym.imp.kernel32.dll_GetStdHandle]
mov dword [ebp - 0x390], edi
mov dword [ebp - 0x35c], ecx
mov ecx, dword [sym.imp.ucrtbase.dll_toupper]
mov esi, eax
mov edi, ecx
mov eax, 0x6c
call sym._XCOPY_LoadMessage
mov ecx, 0x40f020
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._XCOPY_wprintf
mov dword [esp], 0xfffffff6
call esi
lea ecx, [ebp - 0x358]
xor edx, edx
sub esp, 4
mov dword [esp + 0xc], ecx
mov ecx, 0xa
mov dword [esp + 0x10], edx
mov dword [esp + 8], ecx
mov dword [esp], eax
mov eax, dword [ebp - 0x35c]
mov dword [esp + 4], ebx
call eax
movsx eax, byte [ebp - 0x220]
sub esp, 0x14
mov dword [esp], eax
call edi
movzx edx, word [ebp - 0x350]
cmp eax, edx
je 0x403255
movzx edx, word [ebp - 0x34c]
cmp eax, edx
je 0x40326d
movzx edx, word [ebp - 0x354]
cmp eax, edx
jne 0x4031c5
mov esi, dword [ebp - 0x370]
mov edi, dword [ebp - 0x390]
jmp 0x402184
mov esi, dword [ebp - 0x370]
mov edi, dword [ebp - 0x390]
or dword [ebp + 0xc], 0x100
jmp 0x402184
mov esi, dword [ebp - 0x370]
mov edi, dword [ebp - 0x390]
jmp 0x401f1d
mov eax, 0x70
call sym._XCOPY_LoadMessage
mov ebx, dword [sym.imp.ucrtbase.dll_wcscpy]
mov dword [esp + 4], eax
lea eax, [ebp - 0x350]
mov dword [esp], eax
call ebx
mov eax, 0x71
call sym._XCOPY_LoadMessage
mov dword [esp + 4], eax
lea eax, [ebp - 0x34c]
mov dword [esp], eax
call ebx
mov eax, dword [sym.imp.kernel32.dll_GetStdHandle]
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x3a8], esi
mov ecx, dword [sym.imp.kernel32.dll_ReadFile]
mov dword [ebp - 0x3ac], edi
mov edx, dword [sym.imp.ucrtbase.dll_toupper]
mov dword [ebp - 0x35c], eax
lea eax, [ebp - 0x354]
mov esi, eax
mov edi, ecx
mov dword [ebp - 0x3a4], edx
jmp 0x403307
movzx edx, word [ebp - 0x350]
cmp eax, edx
je 0x403672
mov eax, 0x6b
call sym._XCOPY_LoadMessage
mov edx, 0x40f240
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, dword [ebp - 0x35c]
mov dword [esp], 0xfffffff6
call eax
xor ecx, ecx
mov edx, 0xa
sub esp, 4
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call edi
movsx eax, byte [ebp - 0x220]
sub esp, 0x14
mov dword [esp], eax
mov eax, dword [ebp - 0x3a4]
call eax
movzx edx, word [ebp - 0x34c]
cmp eax, edx
jne 0x4032f8
mov esi, dword [ebp - 0x3a8]
mov ebx, 1
mov dword [ebp - 0x370], ebx
mov edi, dword [ebp - 0x3ac]
cmp dword [ebp - 0x394], 0xffffffff
jne 0x40339d
test dword [ebp + 0xc], 0x400
jne 0x401f1d
mov edx, dword [ebp - 0x370]
test edx, edx
je 0x402184
jmp 0x401f1d
mov eax, str._invalid_
mov dword [ebp - 0x370], eax
jmp 0x402b65
mov eax, str._invalid_
jmp 0x403035
test eax, eax
mov edi, dword [ebp - 0x35c]
mov byte [ecx], 0x22
mov ebx, dword [ebp - 0x360]
jle 0x40345a
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov eax, str.Processing_subdirs_with_spec:__s_n
mov dword [esp + 0xc], eax
mov eax, str.XCOPY_DoCopy
mov dword [esp + 8], eax
mov eax, 0x408004
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x40252f
mov byte [ecx], al
inc ecx
jmp 0x402a40
mov eax, dword [ebp - 0x36c]
or eax, 0x20
jmp 0x40224e
mov byte [ebp - 0x21e], 0x22
lea ecx, [ebp - 0x21e]
mov edx, 0x224c
mov word [ebp - 0x220], dx
lea eax, [ecx + 1]
jmp 0x4033ea
mov ebx, dword [ebp - 0x368]
test ebx, ebx
je 0x403869
mov eax, dword [ebp - 0x35c]
mov ecx, 0xffffffff
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4038db
cmp word [edi + 0x2c], 0
je 0x40393a
mov edx, eax
cmp word [edi + edx*2 + 0x2e], 0
lea eax, [eax + 1]
jne 0x40349b
mov eax, dword [ebp - 0x35c]
mov ebx, edx
mov edx, 0x224c
mov word [ebp - 0x220], dx
mov ecx, ebx
mov dword [ebp - 0x36c], eax
lea eax, [ebp - 0x21e]
jmp 0x403501
cmp edx, 9
je 0x403796
cmp edx, 0xa
jne 0x4036cc
mov word [eax], 0x6e5c
add eax, 2
lea edx, [ecx - 1]
test ecx, ecx
jle 0x4038b0
lea ebx, [ebp - 0xfe]
cmp eax, ebx
ja 0x4038b0
mov ecx, edx
add dword [ebp - 0x36c], 2
mov ebx, dword [ebp - 0x36c]
movzx edx, word [ebx - 2]
cmp edx, 0xd
je 0x403789
jbe 0x4034cc
cmp edx, 0x22
je 0x403717
cmp edx, 0x5c
jne 0x4036bf
mov word [eax], 0x5c5c
add eax, 2
jmp 0x4034e6
mov edx, dword [ebp - 0x378]
cmp word [edx], 0
je 0x403911
add edx, 2
cmp word [edx], 0
jne 0x403549
xor eax, eax
movzx ecx, word [edi + eax + 0x2c]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x403554
mov edx, dword [ebp - 0x378]
cmp word [edx], 0
je 0x403906
add edx, 2
cmp word [edx], 0
jne 0x403574
xor eax, eax
movzx ecx, word [eax + 0x409250]
mov word [edx + eax], cx
add eax, 2
test ecx, ecx
jne 0x40357f
jmp 0x40276c
mov edx, dword [ebp - 0x364]
jmp 0x402729
mov edx, dword [ebp - 0x364]
jmp 0x4026f9
mov esi, dword [ebp - 0x35c]
jmp 0x40215d
mov byte [ebp - 0x21e], 0x22
lea ecx, [ebp - 0x21e]
mov eax, 0x224c
mov word [ebp - 0x220], ax
lea eax, [ecx + 1]
jmp 0x403024
mov byte [ebp - 0x21e], 0x22
lea ecx, [ebp - 0x21e]
mov ebx, 0x224c
mov word [ebp - 0x220], bx
lea eax, [ecx + 1]
jmp 0x402fe4
mov dword [esp], str._04x
movzx eax, word [ebp - 0x364]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
jmp 0x4033fb
mov eax, dword fs:[0x18]
mov ebx, dword [eax + 0x34]
mov eax, 0x6d
call sym._XCOPY_LoadMessage
mov edx, 0x40f020
mov ecx, 0x40f240
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sym._XCOPY_wprintf
mov eax, ebx
call sym._XCOPY_FailMessage
test dword [ebp + 0xc], 0x2000
jne 0x401f1d
mov esi, 5
jmp 0x402593
mov eax, str._invalid_
jmp 0x4033fb
mov esi, dword [ebp - 0x3a8]
mov edi, dword [ebp - 0x3ac]
jmp 0x40216a
test byte [0x408004], 8
jne 0x403831
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
jmp 0x401f1d
mov dword [esp], 0x40f240
mov eax, dword [ebp - 0x36c]
and eax, 0xffffffdf
mov dword [esp + 4], eax
call ebx
sub esp, 8
jmp 0x40227b
lea ebx, [edx - 0x20]
cmp bx, 0x5e
jbe 0x4038fe
mov byte [eax], 0x5c
mov ebx, edx
add eax, 5
shr ebx, 0xc
movzx ebx, byte [ebx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 4], bl
mov ebx, edx
shr ebx, 8
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 3], bl
mov ebx, edx
and edx, 0xf
shr ebx, 4
and ebx, 0xf
movzx ebx, byte [ebx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 2], bl
movzx ebx, byte [edx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 1], bl
jmp 0x4034e6
mov word [eax], 0x225c
add eax, 2
jmp 0x4034e6
lea ecx, [edx - 0x20]
cmp cx, 0x5e
jbe 0x4038e2
mov byte [eax], 0x5c
mov ecx, edx
add eax, 5
shr ecx, 0xc
movzx ecx, byte [ecx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 4], cl
mov ecx, edx
shr ecx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr ecx, 4
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 2], cl
movzx ecx, byte [edx + str.0123456789abcdefXCOPY_ProcessDestParm]
mov byte [eax - 1], cl
jmp 0x402f73
mov word [eax], 0x225c
add eax, 2
jmp 0x402f73
mov word [eax], 0x725c
add eax, 2
jmp 0x4034e6
mov word [eax], 0x745c
add eax, 2
jmp 0x4034e6
mov word [eax], 0x725c
add eax, 2
jmp 0x402f73
mov word [eax], 0x745c
add eax, 2
jmp 0x402f73
mov byte [eax], 0x22
test edx, edx
mov esi, dword [ebp - 0x35c]
jle 0x403932
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
mov byte [edx], 0
lea eax, [ebp - 0x34c]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov ecx, str.Skipping_file_as_matches_exclude__s_n
mov ebx, str.XCOPY_DoCopy
mov dword [esp + 0xc], ecx
mov eax, 0x408004
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x401f1d
mov dword [esp], str._04x
movzx ebx, bx
mov dword [esp + 4], ebx
call sym._wine_dbg_sprintf.constprop.0
jmp 0x4037ec
mov dword [ebp - 0x35c], edx
mov eax, str.Skipping_file_as_dest_newer_or_same_date_n
mov edx, 0x408004
mov dword [esp + 0xc], eax
mov eax, str.XCOPY_DoCopy
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
mov edx, dword [ebp - 0x35c]
jmp 0x403690
mov dword [esp], str._04x
movzx eax, word [ebp - 0x35c]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0
mov dword [esp + 0x10], eax
mov eax, str.Handling_subdir:__s_n
mov dword [esp + 0xc], eax
mov eax, str.XCOPY_DoCopy
mov dword [esp + 8], eax
mov eax, 0x408004
mov dword [esp + 4], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x4026b9
mov byte [eax], 0x22
test edx, edx
jle 0x403950
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
mov byte [edx], 0
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sym.___wine_dbg_strdup
jmp 0x403880
mov eax, str._invalid_
jmp 0x403880
mov byte [eax], dl
inc eax
jmp 0x402f73
mov eax, str._invalid_
jmp 0x4037ec
mov eax, str._null_
jmp 0x4037ec
mov byte [eax], dl
inc eax
jmp 0x4034e6
mov edx, dword [ebp - 0x378]
jmp 0x40357d
mov edx, dword [ebp - 0x378]
jmp 0x403552
mov word [ebp - 0x34c], 0x224c
lea eax, [ebp - 0x34a]
mov byte [ebp - 0x34a], 0x22
lea edx, [eax + 1]
jmp 0x4037db
mov word [ebp - 0x220], 0x224c
lea eax, [ebp - 0x21e]
mov byte [ebp - 0x21e], 0x22
lea edx, [eax + 1]
jmp 0x4038c8