Function at 0x40cac0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get geographical location
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x8a74
call sym.__alloca
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4162c0]
mov dword [eax], 0
lea esi, [ebp - 0x8a80]
push 0x2000
push esi
push 0x4189d0
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x40cb54
push esi
call dword [sym.imp.ucrtbase.dll__wcsupr]
add esp, 4
nop word cs:[eax + eax]
cmp word [esi], 0
lea esi, [esi + 2]
jne 0x40cb10
xor ecx, ecx
mov eax, dword [0x418754]
movzx edx, word [eax + ecx]
mov word [esi + ecx - 2], dx
add ecx, 2
test dx, dx
jne 0x40cb20
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, word [ebp + ecx - 0x8a80]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40cb40
mov dword [0x421084], 0
mov dword [0x421080], 0
mov dword [0x421088], 0
mov dword [0x42108c], 0
mov dword [0x421090], 0
mov dword [0x421094], 0
mov dword [0x421098], 0
mov dword [0x42109c], 0
mov dword [0x4210a0], 0
mov dword [0x4210a4], 0
mov dword [0x4210a8], 0
mov dword [0x4210ac], 0
mov dword [0x4210b0], 1
mov dword [0x4210b4], 2
mov dword [0x4210b8], 0
mov byte [0x4210bc], 0
mov byte [0x4210c0], 0
mov byte [0x4210c4], 0
mov dword [0x4210c8], 0
mov dword [0x4210cc], 6
mov esi, dword [0x418754]
jmp 0x40cc2c
mov dword [0x421098], 1
mov edi, esi
add edi, 2
mov esi, edi
mov edi, esi
movzx eax, word [esi]
cmp eax, 0x2f
je 0x40cc3f
cmp eax, 0x20
jne 0x40d0f5
lea esi, [edi + 2]
cmp ax, 0x20
je 0x40cc2c
movzx ecx, word [edi + 2]
add edi, 4
cmp cx, 0x2d
mov ebx, esi
cmove ebx, edi
test byte [0x41d020], 8
je 0x40cca0
movzx eax, word [ebx]
mov dword [ebp - 0x14], eax
mov word [ebp - 0x10], cx
mov ecx, dword [0x418754]
call sym._wine_dbgstr_w
sub esp, 0x18
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Processing_arg__c__in__s__n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
movzx ecx, word [ebp - 0x10]
add esp, 0x18
movzx eax, word [ebx]
add eax, 0xffffffbf
cmp eax, 0x17
ja case.0x40ccaf.69
jmp dword [eax*4 + 0x41875c]
lea edi, [ebx + 2]
mov dword [0x4210c8], 0
mov dword [0x4210cc], 0
lea eax, [ebx + 4]
cmp word [ebx + 2], 0x3a
cmove edi, eax
xor ecx, ecx
xor eax, eax
jmp 0x40cd1b
mov eax, 0x20
nop word cs:[eax + eax]
mov ecx, dword [0x4210cc]
or ecx, eax
mov edx, dword [0x4210c8]
mov esi, edx
or esi, eax
not eax
and eax, edx
cmp bx, 0x2d
cmovne eax, esi
mov dword [0x4210cc], ecx
mov dword [0x4210c8], eax
add edi, 2
movzx ebx, word [edi]
test ebx, ebx
je 0x40d008
cmp ebx, 0x2f
je 0x40d008
xor eax, eax
cmp bx, 0x2d
sete al
lea edi, [edi + eax*2]
test byte [0x41d020], 8
je 0x40cd75
movzx esi, word [edi]
mov ecx, dword [0x418754]
call sym._wine_dbgstr_w
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Processing_subparm__c__in__s__n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x18
movzx ecx, word [edi]
add ecx, 0xffffffbf
cmp ecx, 0x12
ja case.0x40cd89.66
mov eax, 0x10
jmp dword [ecx*4 + 0x4187bc]
mov eax, 2
jmp case.0x40cd89.68
mov eax, 1
jmp case.0x40cd89.68
mov eax, 4
jmp case.0x40cd89.68
cmp cx, 0x2d
jne 0x40cc1b
xor eax, eax
cmp dword [0x421098], 0
sete al
mov dword [0x421098], eax
jmp 0x40cc27
lea edi, [ebx + 2]
cmp word [ebx + 2], 0x3a
lea eax, [ebx + 4]
cmove edi, eax
add edi, 0xfffffffe
jmp 0x40cdf0
mov dword [0x4210b8], 2
add edi, 2
nop
movzx esi, word [edi + 2]
test esi, esi
je 0x40cc27
cmp esi, 0x2f
je 0x40cc27
test byte [0x41d020], 8
je 0x40ce40
mov ecx, dword [0x418754]
call sym._wine_dbgstr_w
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Processing_subparm__c__in__s__n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x18
movzx esi, word [edi + 2]
movzx eax, si
add eax, 0xffffffd3
cmp eax, 0x26
ja case.0x40ce4f.46
jmp dword [eax*4 + 0x418808]
cmp word [edi + 4], 0x47
jne 0x40ceae
mov byte [0x4210c4], 1
add edi, 2
jmp 0x40cdf0
mov byte [0x4210c0], 1
add edi, 2
jmp 0x40cdf0
mov dword [0x4210b8], 1
add edi, 2
jmp 0x40cdf0
mov dword [0x4210b8], 3
add edi, 2
jmp 0x40cdf0
mov dword [0x4210b8], 0
add edi, 2
jmp 0x40cdf0
mov byte [0x4210bc], 1
add edi, 2
jmp 0x40cdf0
cmp cx, 0x2d
jne 0x40d040
xor eax, eax
cmp dword [0x4210b0], 0
sete al
mov dword [0x4210b0], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d04f
xor eax, eax
cmp dword [0x42109c], 0
sete al
mov dword [0x42109c], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d05e
xor eax, eax
cmp dword [0x4210a4], 0
sete al
mov dword [0x4210a4], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d06d
xor eax, eax
cmp dword [0x4210ac], 0
sete al
mov dword [0x4210ac], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d07c
xor eax, eax
cmp dword [0x421094], 0
sete al
mov dword [0x421094], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d08b
xor eax, eax
cmp dword [0x421090], 0
sete al
mov dword [0x421090], eax
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d09a
xor eax, eax
cmp dword [0x4210a0], 0
sete al
mov dword [0x4210a0], eax
jmp 0x40cc27
lea edi, [ebx + 2]
lea eax, [ebx + 4]
xor ecx, ecx
cmp word [ebx + 2], 0x3a
sete cl
cmove edi, eax
movzx eax, word [ebx + ecx*2 + 2]
cmp eax, 0x40
jle 0x40d0b8
cmp eax, 0x57
je 0x40d0e6
cmp eax, 0x43
je 0x40d0d7
cmp eax, 0x41
jne 0x40dc78
mov dword [0x4210b4], 1
jmp 0x40cc27
cmp cx, 0x2d
jne 0x40d0a9
xor eax, eax
cmp dword [0x4210a8], 0
sete al
mov dword [0x4210a8], eax
jmp 0x40cc27
add edi, 0xfffffffe
test byte [0x41d020], 8
je 0x40cc27
sub esp, 0x18
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Result:_showattrs__lx__bits__lx_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x18
jmp 0x40cc27
mov dword [0x4210b0], 1
jmp 0x40cc25
mov dword [0x42109c], 1
jmp 0x40cc25
mov dword [0x4210a4], 1
jmp 0x40cc25
mov dword [0x4210ac], 1
jmp 0x40cc25
mov dword [0x421094], 1
jmp 0x40cc25
mov dword [0x421090], 1
jmp 0x40cc25
mov dword [0x4210a0], 1
jmp 0x40cc25
mov dword [0x4210a8], 1
jmp 0x40cc25
test eax, eax
je 0x40d0c5
cmp eax, 0x2f
jne 0x40dc78
mov dword [0x4210b4], 2
add edi, 0xfffffffe
jmp 0x40cc27
mov dword [0x4210b4], 0
jmp 0x40cc27
mov dword [0x4210b4], 2
jmp 0x40cc27
mov eax, dword [0x42109c]
mov ecx, dword [0x4210a4]
or ecx, eax
je 0x40d11e
mov dword [0x421098], 0
test eax, eax
je 0x40d13c
mov dword [0x4210a4], 0
jmp 0x40d13c
cmp dword [0x421098], 0
je 0x40d13c
mov dword [0x4210a8], 0
cmp dword [0x4210ac], 0
jne 0x40d145
jmp 0x40d14f
cmp dword [0x4210ac], 0
je 0x40d176
mov dword [0x421098], 1
push 0xfffffffffffffff5
call dword [sym.imp.kernel32.dll_GetStdHandle]
lea ecx, [ebp - 0x56]
push ecx
push eax
call dword [sym.imp.kernel32.dll_GetConsoleScreenBufferInfo]
test eax, eax
movsx eax, word [ebp - 0x56]
mov ecx, 0x50
cmovne ecx, eax
mov dword [0x4210d0], ecx
cmp dword [0x421090], 0
je 0x40d189
push 0
call dbg.WCMD_enter_paged_mode
add esp, 4
lea esi, [ebp - 0x4a80]
push 0x50
push esi
push 0x1f
push 0x400
call dword [sym.imp.kernel32.dll_GetLocaleInfoW]
mov edi, 0x4210d4
jmp 0x40d1b6
xor ecx, ecx
nop dword [eax + eax]
lea esi, [esi + ebx*2]
lea edi, [edi + ecx*2]
movzx eax, word [esi]
cmp eax, 0x27
je 0x40d210
test eax, eax
je 0x40d30e
movzx eax, ax
push eax
push 0x418b32
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x40d23b
movzx eax, word [esi]
movzx ecx, word [esi + 2]
mov ebx, 1
test cx, cx
je 0x40d243
nop dword [eax]
cmp cx, ax
jne 0x40d243
movzx ecx, word [esi + ebx*2 + 2]
inc ebx
test cx, cx
jne 0x40d1f0
jmp 0x40d243
mov ebx, 1
jmp 0x40d22c
cmp word [esi + ebx*2 + 2], 0x27
lea ebx, [ebx + 1]
jne 0x40d260
inc ebx
movzx eax, word [esi + ebx*2]
cmp eax, 0x27
je 0x40d220
test eax, eax
jne 0x40d22b
jmp 0x40d260
movzx eax, word [esi]
mov ebx, 1
movzx ecx, ax
cmp ecx, 0x63
jg 0x40d280
cmp ecx, 0x27
je 0x40d260
cmp ecx, 0x4d
je 0x40d291
jmp 0x40d28c
lea eax, [ebx + ebx]
push eax
push esi
push edi
call sym._memcpy
add esp, 0xc
mov ecx, ebx
jmp 0x40d1b0
cmp ecx, 0x64
je 0x40d291
mov edx, ebx
cmp ecx, 0x79
je 0x40d2a2
mov word [edi], ax
jmp 0x40d26e
cmp ebx, 4
mov edx, ebx
mov ecx, eax
mov eax, 3
cmove edx, eax
mov eax, ecx
xor ecx, ecx
cmp ebx, 1
sete cl
add ecx, edx
je 0x40d1a6
xor edx, edx
cmp ecx, 0x10
jb 0x40d300
mov edx, ecx
and edx, 0xfffffff0
mov dword [ebp - 0x10], eax
movd xmm0, eax
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov eax, edi
xor edi, edi
nop word cs:[eax + eax]
movdqu xmmword [eax + edi*2], xmm0
movdqu xmmword [eax + edi*2 + 0x10], xmm0
add edi, 0x10
cmp edx, edi
jne 0x40d2e0
cmp ecx, edx
mov edi, eax
mov eax, dword [ebp - 0x10]
je 0x40d1b0
nop
mov word [edi + edx*2], ax
inc edx
cmp ecx, edx
jne 0x40d300
jmp 0x40d1b0
mov word [edi], 0
test byte [0x41d020], 8
je 0x40d345
mov ecx, 0x4210d4
call sym._wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.date_format:__s_n
mov dword [esp + 8], str.init_date_format
call sym._wine_dbg_log_2
add esp, 0x14
lea esi, [ebp - 0x4a80]
push 0x50
push esi
push 0x1003
push 0x400
call dword [sym.imp.kernel32.dll_GetLocaleInfoW]
mov edi, 0x421214
jmp 0x40d386
lea eax, [ebx + ebx]
push eax
push esi
push edi
call sym._memcpy
add esp, 0xc
mov ecx, ebx
lea esi, [esi + ebx*2]
lea edi, [edi + ecx*2]
movzx eax, word [esi]
cmp eax, 0x27
je 0x40d3e0
test eax, eax
je 0x40d4a2
movzx eax, ax
push eax
push str.Hhmst
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x40d412
movzx eax, word [esi]
movzx ecx, word [esi + 2]
mov ebx, 1
test cx, cx
je 0x40d41a
nop dword [eax]
cmp cx, ax
jne 0x40d41a
movzx ecx, word [esi + ebx*2 + 2]
inc ebx
test cx, cx
jne 0x40d3c0
jmp 0x40d41a
mov ebx, 1
jmp 0x40d400
cmp word [esi + ebx*2 + 2], 0x27
lea ebx, [ebx + 1]
jne 0x40d370
inc ebx
movzx eax, word [esi + ebx*2]
cmp eax, 0x27
je 0x40d3f0
test eax, eax
jne 0x40d3ff
jmp 0x40d370
movzx eax, word [esi]
mov ebx, 1
mov dword [ebp - 0x10], eax
movzx ecx, ax
lea eax, [ecx - 0x48]
cmp eax, 0x2c
ja case.default.0x40d42a
mov ecx, ebx
jmp dword [eax*4 + 0x4188a4]
cmp ebx, 1
mov ecx, ebx
mov eax, 2
cmove ecx, eax
xor edx, edx
cmp ecx, 0x10
jb 0x40d47a
mov edx, ecx
and edx, 0xfffffff0
movd xmm0, dword [ebp - 0x10]
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor eax, eax
nop dword [eax + eax]
movdqu xmmword [edi + eax*2], xmm0
movdqu xmmword [edi + eax*2 + 0x10], xmm0
add eax, 0x10
cmp edx, eax
jne 0x40d460
cmp ecx, edx
je 0x40d380
mov eax, dword [ebp - 0x10]
nop dword [eax]
mov word [edi + edx*2], ax
inc edx
cmp ecx, edx
jne 0x40d480
jmp 0x40d380
cmp ecx, 0x27
je 0x40d370
mov eax, dword [ebp - 0x10]
mov word [edi], ax
jmp 0x40d37e
mov word [edi], 0
test byte [0x41d020], 8
je 0x40d4d9
mov ecx, 0x421214
call sym._wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.time_format:__s_n
mov dword [esp + 8], str.init_time_format
call sym._wine_dbg_log_2
add esp, 0x14
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
lea esi, [ebp - 0x260]
push esi
push 0x104
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
nop word cs:[eax + eax]
cmp word [esi], 0
lea esi, [esi + 2]
jne 0x40d500
mov dword [esi - 2], 0x5c
cmp dword [ebp - 0x18], 0
je 0x40da30
xor ecx, ecx
lea ebx, [ebp - 0x4a80]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x1c], 0
mov esi, dword [ebp + 8]
jmp 0x40d54f
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
inc ecx
test eax, eax
je 0x40da25
push 0
push 0
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x10], ecx
push ecx
push esi
call sym._WCMD_parameter
add esp, 0x14
mov edi, eax
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40da25
cmp word [eax], 0x2f
je 0x40d543
test byte [0x41d020], 8
je 0x40d5a6
mov ecx, edi
call sym._wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_parm__s_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x14
cmp word [edi + 2], 0x3a
jne 0x40d5e0
cmp word [edi + 4], 0x5c
jne 0x40d619
xor eax, eax
nop word cs:[eax + eax]
movzx ecx, word [edi + eax]
mov word [ebp + eax - 0x4a80], cx
add eax, 2
test cx, cx
jne 0x40d5c0
jmp 0x40d700
cmp word [edi], 0x5c
jne 0x40d6b3
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x4a80], eax
xor eax, eax
nop dword [eax + eax]
movzx ecx, word [edi + eax]
mov word [ebp + eax - 0x4a7c], cx
add eax, 2
test cx, cx
jne 0x40d600
jmp 0x40d700
movzx eax, word [edi]
push eax
push 0x418a5e
lea ebx, [ebp - 0x2c]
push ebx
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0x104
lea eax, [ebp - 0x4a80]
push eax
push ebx
lea ebx, [ebp - 0x4a80]
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x40d65f
movzx eax, word [edi]
push eax
push 0x418a68
push ebx
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
mov eax, ebx
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x40d670
mov dword [eax - 2], 0x5c
lea eax, [ebp - 0x4a82]
nop word cs:[eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x40d690
xor ecx, ecx
nop dword [eax]
movzx edx, word [edi + ecx + 4]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d6a0
jmp 0x40d700
xor eax, eax
nop word cs:[eax + eax]
movzx ecx, word [ebp + eax - 0x260]
mov word [ebp + eax - 0x4a80], cx
add eax, 2
test cx, cx
jne 0x40d6c0
lea eax, [ebp - 0x4a82]
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x40d6e0
xor ecx, ecx
nop dword [eax]
movzx edx, word [edi + ecx]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d6f0
test byte [0x41d020], 8
je 0x40d72f
mov ecx, ebx
call sym._wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Using_location__s_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x14
push 0
lea edi, [ebp - 0x878]
push edi
push 0x104
push ebx
call dbg.WCMD_get_fullpath
add esp, 0x10
test eax, eax
je 0x40d540
push 0x2a
push edi
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
jne 0x40d772
push 0x25
push edi
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x40d99c
mov eax, 0xfffffffe
nop word [eax + eax]
cmp word [ebp + eax - 0x4a7e], 0
lea eax, [eax + 2]
jne 0x40d780
cmp word [eax + ebx - 2], 0x2e
lea edi, [ebp - 0x878]
jne 0x40d7b0
mov eax, edi
nop
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x40d7a0
mov dword [eax - 2], 0x2e
test byte [0x41d020], 8
je 0x40d7df
mov ecx, edi
call sym._wine_dbgstr_w
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Using_path__s_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x14
push 0xc
push 0
call sym._xrealloc
add esp, 8
mov ecx, dword [ebp - 0x14]
test ecx, ecx
cmove ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x40d7ff
mov dword [ecx], eax
mov dword [ebp - 0x1c], eax
mov dword [eax], 0
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x670]
push eax
lea esi, [ebp - 0xa80]
push esi
lea ebx, [ebp - 0x40]
push ebx
push edi
call dword [sym.imp.ucrtbase.dll__wsplitpath]
add esp, 0x14
test byte [0x41d020], 8
je 0x40d891
mov ecx, ebx
call sym._wine_dbgstr_w
mov edi, eax
mov ecx, esi
call sym._wine_dbgstr_w
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x670]
call sym._wine_dbgstr_w
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x468]
call sym._wine_dbgstr_w
sub esp, 0x20
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Path_Parts:_drive:__s_dir:__s_name:__s_ext:_s_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x20
push ebx
mov edi, dword [sym.imp.ucrtbase.dll_wcslen]
call edi
add esp, 4
mov ebx, eax
push esi
call edi
add esp, 4
add eax, ebx
lea eax, [eax*2 + 2]
push eax
push 0
call sym._xrealloc
add esp, 8
mov edi, dword [ebp - 0x1c]
mov dword [edi + 4], eax
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, word [ebp + ecx - 0x40]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d8d0
add eax, 0xfffffffe
nop word cs:[eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x40d8f0
xor ecx, ecx
nop dword [eax]
movzx edx, word [ebp + ecx - 0xa80]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d900
lea eax, [ebp - 0x670]
push eax
mov esi, dword [sym.imp.ucrtbase.dll_wcslen]
call esi
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x468]
push eax
call esi
add esp, 4
add eax, ebx
lea eax, [eax*2 + 2]
push eax
push 0
call sym._xrealloc
add esp, 8
mov dword [edi + 8], eax
xor ecx, ecx
nop dword [eax]
movzx edx, word [ebp + ecx - 0x670]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d950
add eax, 0xfffffffe
lea ebx, [ebp - 0x4a80]
mov esi, dword [ebp + 8]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x40d970
xor ecx, ecx
nop dword [eax]
movzx edx, word [ebp + ecx - 0x468]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x40d980
mov dword [ebp - 0x1c], edi
jmp 0x40d540
push edi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40d7b0
and eax, 0x10
je 0x40d7b0
cmp word [ebp - 0x878], 0
je 0x40d9e0
lea eax, [ebp - 0x876]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x40d9d0
cmp word [eax - 4], 0x5c
je 0x40da00
mov eax, edi
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x40d9f0
mov dword [eax - 2], 0x5c
mov eax, edi
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x40da10
mov dword [eax - 2], 0x2a
jmp 0x40d7b0
mov ebx, dword [ebp - 0x14]
test ebx, ebx
jne 0x40dab4
test byte [0x41d020], 8
je 0x40da54
sub esp, 0x10
mov dword [esp + 0xc], str.Inserting_default__n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x10
push 0xc
push 0
call sym._xrealloc
add esp, 8
mov ebx, eax
mov dword [eax], 0
xor esi, esi
nop word [eax + eax]
cmp word [ebp + esi - 0x260], 0
lea esi, [esi + 2]
jne 0x40da70
push esi
push 0
call sym._xrealloc
add esp, 8
mov edi, eax
lea eax, [ebp - 0x260]
push esi
push eax
push edi
call sym._memcpy
add esp, 0xc
mov dword [ebx + 4], edi
push 4
push 0
call sym._xrealloc
add esp, 8
mov dword [eax], 0x2a
mov dword [ebx + 8], eax
mov dword [ebp - 0x10], 0
mov eax, ebx
mov bx, 0x3f
xor edi, edi
mov dword [ebp - 0x14], eax
jmp 0x40db0d
mov eax, dword [esi + 4]
movzx eax, word [eax]
push eax
call dword [sym.imp.ucrtbase.dll_towupper]
add esp, 4
mov ebx, eax
cmp dword [0x42109c], 0
je 0x40db82
mov eax, dword [0x4162c0]
mov dword [eax], 0
mov ecx, esi
xor edx, edx
call dbg.WCMD_list_directory
mov edi, esi
test eax, eax
je 0x40dbe5
mov esi, eax
mov eax, dword [eax + 4]
movzx eax, word [eax]
push eax
call dword [sym.imp.ucrtbase.dll_towupper]
add esp, 4
cmp bx, ax
jne 0x40db40
cmp dword [0x42109c], 0
jne 0x40daef
push 0x418b04
call sym._WCMD_output_asis
add esp, 4
jmp 0x40daef
cmp bx, 0x3f
je 0x40dad0
mov ecx, dword [edi + 4]
call dbg.WCMD_dir_trailer
mov dword [0x421088], 0
mov dword [0x42108c], 0
mov dword [0x421084], 0
mov dword [0x421080], 0
mov dword [ebp - 0x10], 0
jmp 0x40dad0
test byte [0x41d020], 8
je 0x40dbb0
mov eax, dword [esi + 4]
movzx eax, word [eax]
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Writing_volume_for__c:_n
mov dword [esp + 8], str.WCMD_directory
call sym._wine_dbg_log_2
add esp, 0x14
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov dword [ebp - 0x4a80], eax
mov word [ebp - 0x4a7c], 0
lea eax, [ebp - 0x4a80]
push eax
push 0
call dbg.WCMD_volume
add esp, 8
test eax, eax
je 0x40dc05
mov dword [ebp - 0x10], 1
jmp 0x40daef
cmp dword [ebp - 0x10], 0
je 0x40dc10
mov ecx, dword [esi + 4]
call dbg.WCMD_dir_trailer
jmp 0x40dc10
mov eax, dword fs:[0x18]
jmp 0x40dc56
mov eax, dword fs:[0x18]
jmp 0x40dc56
mov eax, dword [0x4162c0]
mov dword [eax], 1
cmp dword [0x421090], 0
mov ebx, dword [ebp - 0x14]
je 0x40dc21
call dbg.WCMD_leave_paged_mode
mov esi, dword [sym.imp.ucrtbase.dll_free]
nop word [eax + eax]
mov edi, dword [ebx]
push dword [ebx + 4]
call esi
add esp, 4
push dword [ebx + 8]
call esi
add esp, 4
push ebx
call esi
add esp, 4
mov ebx, edi
test edi, edi
jne 0x40dc30
jmp 0x40dc6d
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x57
call dbg.WCMD_print_error
mov eax, dword [0x4162c0]
mov dword [eax], 1
add esp, 0x8a74
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword fs:[0x18]
jmp 0x40dc56