Function at 0x4050e0
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x106e0
call sym.__alloca
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], 0
xorps xmm0, xmm0
movsd qword [ebp - 0x94], xmm0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x5c], 0
sub esp, 0x14
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
call sym._WCMD_parameter
add esp, 0x14
mov word [ebp - 0x29c], 0
xor ebx, ebx
mov byte [ebp - 0x1d], 1
test eax, eax
je 0x40530b
mov esi, eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x64], 0
lea edi, [ebp - 0x29c]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x40], 0
jmp 0x40519a
mov dword [ebp - 0x64], 1
mov esi, dword [ebp - 0x14]
push 0
push 0
push 0
push esi
inc esi
mov dword [ebp - 0x14], esi
push dword [ebp + 8]
call sym._WCMD_parameter
add esp, 0x14
mov esi, eax
test eax, eax
je 0x405345
movzx eax, word [esi]
cmp eax, 0x2f
jne 0x405301
test byte [0x41d010], 8
je 0x4051dc
mov ecx, esi
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Processing_qualifier_at__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.ucrtbase.dll_towupper]
add esp, 4
movzx eax, ax
add eax, 0xffffffbc
ror eax, 1
cmp eax, 7
ja case.0x4051fb.2
jmp dword [eax*4 + 0x416468]
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.ucrtbase.dll_towupper]
add esp, 4
cmp ax, 0x52
sete cl
jne 0x40522c
push edi
push 0x104
mov byte [ebp - 0x18], cl
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
movzx ecx, byte [ebp - 0x18]
xor eax, eax
mov al, cl
mov dword [ebp - 0x40], eax
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.ucrtbase.dll_towupper]
add esp, 4
xor ecx, ecx
cmp ax, 0x46
sete cl
push 0
mov dword [ebp - 0x18], ecx
push ecx
push 0
mov esi, dword [ebp - 0x14]
push esi
push dword [ebp + 8]
call sym._WCMD_parameter
add esp, 0x14
test eax, eax
je 0x40517a
movzx ecx, word [eax]
cmp ecx, 0x25
je 0x40517a
cmp ecx, 0x2f
je 0x40517a
inc esi
mov word [ebp - 0x29c], cx
test cx, cx
je 0x40517a
mov ecx, 2
nop word cs:[eax + eax]
movzx edx, word [eax + ecx]
mov word [ebp + ecx - 0x29c], dx
add ecx, 2
test dx, dx
jne 0x4052a0
jmp 0x40517a
mov dword [ebp - 0x50], 1
jmp 0x405177
test byte [0x41d010], 1
je 0x405177
movzx eax, word [esi + 2]
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.for_qualifier__c_unhandled_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 0
call sym._wine_dbg_log_1
add esp, 0x14
jmp 0x405177
cmp eax, 0x25
je 0x405347
jmp 0x4069ef
mov dword [ebp - 0x14], 1
xor esi, esi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x64], 0
xor ecx, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x1c], 0
jmp 0x405740
xor esi, esi
cmp dword [ebp - 0x18], 0
sete al
je 0x405689
mov byte [ebp - 0x18], al
lea eax, [ebp - 0x2a0]
nop dword [eax]
cmp word [eax + 4], 0
lea eax, [eax + 2]
jne 0x405360
mov dword [ebp - 0x6ec], 0x90020
mov word [ebp - 0x6e8], 0
mov dword [ebp - 0x106ec], 0x31
mov dword [ebp - 0x5c], 0
cmp word [ebp - 0x29c], 0x22
jne 0x4053a9
cmp word [eax], 0x22
jne 0x4053a9
mov word [eax], 0
lea edi, [ebp - 0x29a]
mov dword [ebp - 0x1c], 0
mov edx, dword [sym.imp.kernel32.dll_CompareStringW]
xor ecx, ecx
mov dword [ebp - 0x30], 0
jmp 0x4053db
add edi, 2
test edi, edi
je 0x40567d
movzx eax, word [edi]
mov dword [ebp - 0x44], 1
cmp eax, 9
je 0x4053d0
cmp eax, 0x20
je 0x4053d0
test eax, eax
je 0x40567d
mov dword [ebp - 0x28], ecx
push 4
push 0x417f68
push 4
push edi
push 0x1001
push 0x400
call edx
cmp eax, 2
jne 0x405431
movzx ecx, word [edi + 8]
add edi, 0xa
test byte [0x41d010], 8
jne 0x4054ba
mov edx, dword [sym.imp.kernel32.dll_CompareStringW]
jmp 0x4053d3
push 5
push str.skip
push 5
push edi
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4054f8
add edi, 0xa
mov dword [ebp - 0x46ec], 0
push 0
lea eax, [ebp - 0x46ec]
push eax
push edi
call dword [sym.imp.ucrtbase.dll_wcstoul]
add esp, 0xc
mov dword [ebp - 0x5c], eax
test byte [0x41d010], 8
je 0x4054a6
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_skip_as__d_lines_n
mov dword [esp + 8], str.WCMD_parse_forf_options
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
mov edi, dword [ebp - 0x46ec]
mov ecx, dword [ebp - 0x28]
mov edx, dword [sym.imp.kernel32.dll_CompareStringW]
jmp 0x4053d3
movzx eax, cx
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_eol_as__c__x__n
mov dword [esp + 8], str.WCMD_parse_forf_options
mov dword [esp], 3
mov dword [ebp - 0x28], ecx
call sym._wine_dbg_log_1
mov ecx, dword [ebp - 0x28]
add esp, 0x18
mov edx, dword [sym.imp.kernel32.dll_CompareStringW]
jmp 0x4053d3
push 8
push str.usebackq
push 8
push edi
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x405551
add edi, 0x10
mov dword [ebp - 0x30], 1
test byte [0x41d010], 8
je 0x4054ac
sub esp, 0x10
mov dword [esp + 0xc], str.Found_usebackq_n
mov dword [esp + 8], str.WCMD_parse_forf_options
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x10
jmp 0x4054ac
push 7
push str.delims
push 7
push edi
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4055a2
add edi, 0xe
xor eax, eax
nop word cs:[eax + eax]
movzx ecx, word [edi]
test ecx, ecx
je 0x405630
cmp ecx, 0x20
je 0x40561e
mov word [ebp + eax*2 - 0x6ec], cx
inc eax
add edi, 2
jmp 0x405580
push 7
push str.tokens
push 7
push edi
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4069b9
add edi, 0xe
xor eax, eax
nop word [eax + eax]
movzx ecx, word [edi + eax]
test ecx, 0xffdf
je 0x4055e9
mov word [ebp + eax - 0x106ec], cx
add eax, 2
jmp 0x4055d0
mov word [ebp + eax - 0x106ec], 0
add edi, eax
test byte [0x41d010], 8
je 0x4054ac
lea ecx, [ebp - 0x106ec]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_tokens_as__s_n
jmp 0x405661
cmp word [edi + 2], 0
jne 0x405630
mov word [ebp + eax*2 - 0x6ec], 0x20
inc eax
mov word [ebp + eax*2 - 0x6ec], 0
test byte [0x41d010], 8
je 0x4054ac
lea ecx, [ebp - 0x6ec]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Found_delims_as__s_n
mov dword [esp + 8], str.WCMD_parse_forf_options
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
jmp 0x4054ac
movzx eax, byte [ebp - 0x18]
mov byte [ebp - 0x1d], al
jmp 0x405740
cmp dword [ebp - 0x40], 0
je 0x4068c2
push 0xc
push 0
call sym._xrealloc
add esp, 8
mov dword [ebp - 0x1c], eax
mov dword [eax], 0
xor edi, edi
nop word [eax + eax]
cmp word [ebp + edi - 0x29c], 0
lea edi, [edi + 2]
jne 0x4056b0
push edi
push 0
call sym._xrealloc
add esp, 8
lea ecx, [ebp - 0x29c]
push edi
push ecx
mov edi, eax
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [eax + 4], edi
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 1
test byte [0x41d010], 8
je 0x40572d
mov ecx, edi
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Starting_with_root_directory__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
mov dword [ebp - 0x44], 0
xor ecx, ecx
mov dword [ebp - 0x30], 0
nop word cs:[eax + eax]
movzx eax, word [esi + ebx]
mov word [ebp + ebx - 0x78], ax
add ebx, 2
test ax, ax
jne 0x405740
test byte [0x41d010], 8
mov dword [ebp - 0x28], ecx
je 0x40578b
lea ecx, [ebp - 0x78]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Variable_identified_as__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
movzx eax, word [ebp - 0x76]
lea ecx, [eax - 0x61]
cmp cx, 0x19
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
jbe 0x4057b0
lea ecx, [eax - 0x41]
add eax, 0xffffffd9
cmp cx, 0x1a
mov ecx, 0xffffffff
cmovb ecx, eax
mov dword [ebp - 0x58], ecx
push 0
push 0
push 0
push edx
push dword [ebp + 8]
call sym._WCMD_parameter
add esp, 0x14
test eax, eax
je 0x4069ef
push 2
push 0x41747e
push 2
push eax
push 0x1001
push 0x400
call dword [sym.imp.kernel32.dll_CompareStringW]
cmp eax, 2
jne 0x4069ef
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x405805
mov edi, dword [eax + 8]
mov eax, dword [eax + 4]
jmp 0x405807
xor edi, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
test byte [0x41d010], 8
mov eax, edi
je 0x40584b
sub esp, 0x14
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Searching__p_as_the_set_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
test eax, eax
je 0x4058f2
mov ebx, dword [ebp - 0x60]
nop word cs:[eax + eax]
mov edx, dword [eax]
mov esi, dword [eax + 4]
test edx, edx
je 0x405890
mov ecx, dword [esi + 4]
cmp dword [ecx], 0
je 0x4068d5
mov esi, dword [ebp - 0x60]
cmp dword [ecx + 8], esi
jg 0x4058a4
jmp 0x4068d5
xor ecx, ecx
cmp dword [esi], 0
je 0x40690e
cmp dword [esi + 8], ebx
jle 0x40690e
test byte [0x41d010], 8
je 0x4058da
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Skipping__p_which_is_part_of_the_set_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov edx, dword [eax]
test edx, edx
je 0x40690c
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
test eax, eax
jne 0x405860
xor ecx, ecx
test byte [0x41d010], 8
je 0x405928
sub esp, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Looking_for_do__in__p_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
test ecx, ecx
je 0x4069ef
cmp dword [ecx], 0
je 0x405938
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + 4]
push dword [eax]
push 0x41755c
call sym._WCMD_keyword_ws_found
add esp, 8
test eax, eax
je 0x4069ef
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x50]
or dword [ebp - 0x44], eax
cmp dword [ebp - 0x30], 0
mov eax, 0x27
mov ecx, 0x60
cmove ecx, eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edi
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x68], eax
mov edi, dword [ebp - 0x1c]
jmp 0x405993
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
cmp dword [ebx], 0
mov eax, ebx
je 0x40599d
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
test edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], ebx
je 0x405c83
mov eax, dword [edi + 4]
xor ecx, ecx
nop dword [eax + eax]
movzx edx, word [eax + ecx]
mov word [ebp + ecx - 0xc6ec], dx
add ecx, 2
test dx, dx
jne 0x4059c0
lea eax, [ebp - 0xc6ec]
nop word [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4059e0
mov word [eax + 2], 0
mov dword [eax - 2], 0x2a005c
lea eax, [ebp - 0x46ec]
push eax
lea eax, [ebp - 0xc6ec]
push eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x14], eax
cmp eax, 0xffffffff
je 0x405c83
mov dword [ebp - 0x10], edi
jmp 0x405a3d
mov ebx, dword [ebp - 0x2c]
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
lea eax, [ebp - 0x46ec]
push eax
push dword [ebp - 0x14]
call esi
test eax, eax
je 0x405c4f
test byte [0x41d010], 8
je 0x405a68
sub esp, 0x10
mov dword [esp + 0xc], str.Looking_for_subdirectories_n
mov dword [esp + 8], str.WCMD_add_dirstowalk
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x10
test byte [ebp - 0x46ec], 0x10
je 0x405a29
push 0x417596
lea ebx, [ebp - 0x46c0]
push ebx
mov esi, dword [sym.imp.kernel32.dll_lstrcmpW]
call esi
test eax, eax
je 0x405a20
push 0x417264
push ebx
call esi
test eax, eax
je 0x405a20
mov edi, dword [edi + 4]
push edi
mov esi, dword [sym.imp.ucrtbase.dll_wcslen]
call esi
mov ecx, esi
add esp, 4
mov esi, eax
push ebx
call ecx
add esp, 4
add eax, esi
inc eax
cmp eax, 0x104
jb 0x405b0b
test byte [0x41d010], 8
mov ebx, dword [ebp - 0x2c]
je 0x405c47
mov ecx, edi
call dbg.wine_dbgstr_wn
mov esi, eax
lea ecx, [ebp - 0x46c0]
call dbg.wine_dbgstr_wn
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Skipping_too_long_path__s_s_n
mov dword [esp + 8], str.WCMD_add_dirstowalk
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x18
jmp 0x405c47
push 0xc
push 0
call sym._xrealloc
add esp, 8
mov edi, eax
test byte [0x41d010], 8
mov esi, dword [ebp - 0x10]
je 0x405b51
mov eax, dword [esi]
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.__p___p__n
mov dword [esp + 8], str.WCMD_add_dirstowalk
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x18
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov ebx, dword [ebp - 0x1c]
push dword [ebx + 4]
mov esi, dword [sym.imp.ucrtbase.dll_wcslen]
call esi
mov ecx, esi
add esp, 4
mov esi, eax
lea eax, [ebp - 0x46c0]
push eax
call ecx
add esp, 4
add eax, esi
lea eax, [eax*2 + 4]
push eax
push 0
call sym._xrealloc
add esp, 8
mov dword [edi + 4], eax
mov ecx, dword [ebx + 4]
xor edx, edx
nop word cs:[eax + eax]
movzx esi, word [ecx + edx]
mov word [eax + edx], si
add edx, 2
test si, si
jne 0x405ba0
mov ecx, eax
mov ebx, dword [ebp - 0x2c]
nop word cs:[eax + eax]
cmp word [ecx], 0
lea ecx, [ecx + 2]
jne 0x405bc0
mov dword [ecx - 2], 0x5c
mov ecx, eax
add ecx, 0xfffffffe
nop word cs:[eax + eax]
cmp word [ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x405be0
xor edx, edx
nop dword [eax]
movzx esi, word [ebp + edx - 0x46c0]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x405bf0
test byte [0x41d010], 8
je 0x405c44
mov ecx, eax
call dbg.wine_dbgstr_wn
mov ecx, dword [edi]
sub esp, 0x1c
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Added_to_stack__s___p___p__n
mov dword [esp + 8], str.WCMD_add_dirstowalk
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x1c
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x1c]
jmp 0x405a23
test byte [0x41d010], 8
je 0x405c7a
sub esp, 0x10
mov dword [esp + 0xc], str.Finished_adding_all_subdirectories_n
mov dword [esp + 8], str.WCMD_add_dirstowalk
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x10
push dword [ebp - 0x14]
call dword [sym.imp.kernel32.dll_FindClose]
add dword [ebp - 0x18], 6
xor esi, esi
mov edi, dword [ebp - 0x7c]
jmp 0x405c9e
xor eax, eax
xor ecx, ecx
mov esi, edi
mov edi, ecx
test eax, eax
jne 0x406a05
test edi, edi
je 0x4066df
cmp dword [edi], 0
mov eax, dword [edi + 4]
je 0x405cb1
mov eax, dword [eax + 4]
cmp dword [eax], 0
je 0x4066df
mov ecx, dword [ebp - 0x60]
cmp dword [eax + 8], ecx
jl 0x4066df
mov ecx, edi
test byte [0x41d010], 8
je 0x405cf9
sub esp, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Processing_for_set__p_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
mov ecx, edi
add esp, 0x14
mov dword [ebp - 0x70], 0
cmp dword [ecx], 0
mov eax, ecx
je 0x405d0a
mov eax, dword [ecx + 4]
mov dword [ebp - 0x6c], ecx
mov eax, dword [eax + 4]
push 0
push 1
lea ecx, [ebp - 0x48]
push ecx
push dword [ebp - 0x70]
push dword [eax]
call sym._WCMD_parameter
add esp, 0x14
cmp word [eax], 0
je 0x406640
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, word [eax + ecx]
mov word [ebp + ecx - 0x86ec], dx
add ecx, 2
test dx, dx
jne 0x405d40
mov dword [ebp - 0x24], ebx
lea edi, [esi + 1]
test byte [0x41d010], 8
je 0x405d98
lea ecx, [ebp - 0x86ec]
call dbg.wine_dbgstr_wn
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Processing_for_item__d__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x18
cmp dword [ebp - 0x44], 0
je 0x405de0
cmp dword [ebp - 0x50], 0
je 0x405e80
cmp esi, 2
jg 0x4065c0
push 0xa
push 0
lea eax, [ebp - 0x86ec]
push eax
call dword [sym.imp.ucrtbase.dll_wcstol]
add esp, 0xc
mov dword [ebp + esi*4 - 0x94], eax
jmp 0x4065c0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x405eb0
mov eax, dword [eax + 4]
xor ecx, ecx
lea esi, [ebp - 0x46ec]
nop word cs:[eax + eax]
movzx edx, word [eax + ecx]
mov word [ebp + ecx - 0x46ec], dx
add ecx, 2
test dx, dx
jne 0x405e00
mov eax, esi
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x405e20
mov dword [eax - 2], 0x5c
lea eax, [ebp - 0x46ee]
nop word cs:[eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x405e40
mov dword [ebp - 0x10], 0
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, word [ebp + ecx - 0x86ec]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x405e60
jmp 0x405f03
cmp byte [ebp - 0x1d], 0
jne 0x4065c0
mov eax, dword [ebp - 0x48]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x28]
mov dword [ebp - 0x54], edx
cmp dword [ebp - 0x30], 0
je 0x40622f
cmp cx, 0x27
jne 0x406239
jmp 0x406658
push 0x5c
lea esi, [ebp - 0x86ec]
push esi
call dword [sym.imp.ucrtbase.dll_wcsrchr]
add esp, 8
mov ecx, eax
sub ecx, esi
sar ecx, 1
inc ecx
mov dword [ebp - 0x10], ecx
xor ecx, ecx
lea esi, [ebp - 0x46ec]
nop word cs:[eax + eax]
movzx edx, word [ebp + ecx - 0x86ec]
mov word [ebp + ecx - 0x46ec], dx
add ecx, 2
test dx, dx
jne 0x405ee0
test eax, eax
mov ecx, dword [ebp - 0x10]
cmove ecx, eax
mov dword [ebp - 0x10], ecx
push 0x4172e4
push esi
call dword [sym.imp.ucrtbase.dll_wcspbrk]
add esp, 8
test eax, eax
je 0x4061ce
lea eax, [ebp - 0x4ec]
push eax
push esi
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0x14], eax
cmp eax, 0xffffffff
je 0x4065c0
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x54], eax
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
jmp 0x405f94
mov esi, dword [0x4162c4]
mov edi, dword [esi + eax*4]
lea ecx, [ebp - 0x46ec]
mov dword [esi + eax*4], ecx
mov ebx, eax
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
mov dword [esi + ebx*4], edi
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
nop
lea eax, [ebp - 0x4ec]
push eax
push dword [ebp - 0x14]
call esi
test eax, eax
je 0x4061bd
mov eax, dword [ebp - 0x4ec]
shr eax, 4
and eax, 1
cmp eax, dword [ebp - 0x64]
jne 0x405f80
push 0x417596
lea eax, [ebp - 0x4c0]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
test eax, eax
je 0x405f80
push 0x417264
lea eax, [ebp - 0x4c0]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
test eax, eax
je 0x405f80
mov dword [ebp - 0x24], ebx
test byte [0x41d010], 8
je 0x40600e
lea ecx, [ebp - 0x4c0]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Processing_FOR_filename__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
cmp dword [ebp - 0x40], 0
je 0x40609f
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 4]
push edi
mov esi, dword [sym.imp.ucrtbase.dll_wcslen]
call esi
add esp, 4
mov ebx, eax
lea eax, [ebp - 0x4c0]
push eax
call esi
add esp, 4
add eax, ebx
inc eax
cmp eax, 0x103
jbe 0x406116
test byte [0x41d010], 8
mov ebx, dword [ebp - 0x2c]
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
je 0x405f80
mov ecx, edi
call dbg.wine_dbgstr_wn
mov edi, eax
lea ecx, [ebp - 0x4c0]
call dbg.wine_dbgstr_wn
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Skipping_too_long_path__s_s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x18
jmp 0x405f80
cmp dword [ebp - 0x54], 2
jb 0x4060dc
mov ecx, dword [ebp - 0x54]
lea edx, [ebp - 0x86ec]
lea eax, [ebp - 0x46ec]
nop word cs:[eax + eax]
movzx edi, word [edx]
test di, di
je 0x4060d7
dec ecx
add edx, 2
mov word [eax], di
add eax, 2
cmp ecx, 1
ja 0x4060c0
mov word [eax], 0
mov eax, dword [ebp - 0x10]
mov word [ebp + eax*2 - 0x46ec], 0
lea eax, [ebp - 0x46ee]
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4060f0
xor ecx, ecx
nop dword [eax]
movzx edx, word [ebp + ecx - 0x4c0]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x406100
jmp 0x406194
xor eax, eax
mov ebx, dword [ebp - 0x2c]
mov esi, dword [sym.imp.kernel32.dll_FindNextFileW]
nop word cs:[eax + eax]
movzx ecx, word [edi + eax]
mov word [ebp + eax - 0x46ec], cx
add eax, 2
test cx, cx
jne 0x406130
lea eax, [ebp - 0x46ec]
nop word [eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x406150
mov dword [eax - 2], 0x5c
lea eax, [ebp - 0x46ee]
nop word cs:[eax + eax]
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x406170
xor ecx, ecx
nop dword [eax]
movzx edx, word [ebp + ecx - 0x4c0]
mov word [eax + ecx], dx
add ecx, 2
test dx, dx
jne 0x406180
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x58]
test eax, eax
jns 0x405f46
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
jmp 0x405f78
push dword [ebp - 0x14]
call dword [sym.imp.kernel32.dll_FindClose]
mov edi, dword [ebp - 0x4c]
jmp 0x4065c0
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x58]
test eax, eax
js 0x406212
mov ecx, dword [0x4162c4]
mov dword [ebp - 0x4c], edi
mov edi, ecx
mov esi, dword [ecx + eax*4]
lea ecx, [ebp - 0x46ec]
mov dword [edi + eax*4], ecx
mov ebx, eax
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
mov dword [edi + ebx*4], esi
mov edi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x2c]
jmp 0x406224
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
jmp 0x4065c0
cmp cx, 0x22
je 0x40665e
test byte [0x41d010], 8
lea esi, [ebp - 0x46ec]
je 0x40627d
lea ecx, [ebp - 0x86ec]
call dbg.wine_dbgstr_wn
sub esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.Processing_for_filespec_from_item__d__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x18
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x48]
movzx eax, word [edi]
cmp dword [ebp - 0x30], 0
je 0x40629a
cmp ax, 0x60
jne 0x4062a0
movzx eax, word [edi]
mov dword [ebp - 0x10], edi
jmp 0x4062d5
cmp ax, 0x27
je 0x406292
movzx eax, word [ebp - 0x86ec]
lea ecx, [ebp - 0x86ec]
cmp ecx, edi
je 0x4062d2
cmp dword [ebp - 0x30], 0
je 0x406459
cmp ax, 0x22
lea edi, [ebp - 0x86ec]
jne 0x406450
xor ecx, ecx
mov dword [ebp - 0x10], edi
jmp 0x4062e8
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x34], 0
mov cl, 1
cmp ax, word [ebp - 0x80]
jne 0x4063fc
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp - 0x10]
lea edi, [eax - 2]
xor eax, eax
mov edx, 2
nop dword [eax + eax]
mov ebx, eax
mov esi, edx
mov ecx, edi
add eax, 2
add edx, 2
mov edi, dword [ebp - 0x10]
cmp word [edi + ebx], 0
lea edi, [ecx + 2]
jne 0x406300
mov dword [ebp - 0x84], ecx
push eax
push 0
call sym._xrealloc
add esp, 8
mov dword [ebp - 0x34], eax
add ebx, eax
mov ecx, dword [ebp - 0x10]
nop word cs:[eax + eax]
mov edi, esi
mov esi, ecx
movzx eax, word [ecx]
push eax
call dword [sym.imp.ucrtbase.dll_iswspace]
mov ecx, esi
mov edx, ebx
add esp, 4
mov dword [ebp - 0x14], esi
lea ecx, [esi + 2]
add ebx, 0xfffffffe
lea esi, [edi - 2]
test eax, eax
jne 0x406340
mov eax, dword [ebp - 0x14]
cmp word [eax], 0
mov esi, dword [ebp - 0x34]
mov ebx, esi
je 0x4063b7
mov ecx, dword [ebp - 0x84]
nop dword [eax]
mov ebx, edx
mov esi, edi
cmp ecx, dword [ebp - 0x14]
jbe 0x4063a7
movzx eax, word [ecx]
push eax
mov edi, ecx
call dword [sym.imp.ucrtbase.dll_iswspace]
mov ecx, edi
add esp, 4
lea edx, [ebx - 2]
lea edi, [esi - 2]
add ecx, 0xfffffffe
test eax, eax
jne 0x406380
push esi
push dword [ebp - 0x14]
mov esi, dword [ebp - 0x34]
push esi
call sym._memcpy
add esp, 0xc
mov word [ebx], 0
test esi, esi
mov eax, esi
cmove eax, dword [ebp - 0x10]
nop word cs:[eax + eax]
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x4063d0
test esi, esi
mov word [eax - 4], 0
mov edi, esi
cmove edi, dword [ebp - 0x10]
add edi, 2
cmp byte [ebp - 0x88], 0
mov ebx, dword [ebp - 0x2c]
lea esi, [ebp - 0x46ec]
je 0x406469
push edi
push str.CMD.EXE__C__s
push esi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
test byte [0x41d010], 8
je 0x406442
mov ecx, esi
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Reading_output_of__s_n
mov dword [esp + 8], str.WCMD_forf_getinput
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
push str.rt_ccsunicode
push esi
call dword [sym.imp.ucrtbase.dll__wpopen]
jmp 0x4064ab
mov dword [ebp - 0x34], 0
jmp 0x406466
mov dword [ebp - 0x34], 0
lea edi, [ebp - 0x86ec]
mov dword [ebp - 0x10], edi
test byte [0x41d010], 8
je 0x40649f
mov ecx, edi
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Reading_input_to_parse_from__s_n
mov dword [esp + 8], str.WCMD_forf_getinput
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
push str.rt_ccsunicode
push edi
call dword [sym.imp.ucrtbase.dll__wfopen]
add esp, 8
mov edi, eax
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
test edi, edi
je 0x4068da
push edi
push 0x2000
lea eax, [ebp - 0xc6ec]
push eax
jmp 0x406526
movzx eax, word [ebp - 0x76]
mov ecx, ebx
mov edx, dword [ebp - 0x18]
lea esi, [ebp - 0x106ec]
push esi
lea esi, [ebp - 0x6ec]
push esi
push dword [ebp - 0x54]
lea esi, [ebp - 0x5c]
push esi
lea esi, [ebp - 0x38]
push esi
lea esi, [ebp - 0xc6ec]
push esi
push eax
lea eax, [ebp - 0x3c]
push eax
call dbg.WCMD_parse_line
add esp, 0x20
mov word [ebp - 0xc6ec], 0
push edi
push 0x2000
push esi
call dword [sym.imp.ucrtbase.dll_fgetws]
add esp, 0xc
test eax, eax
je 0x4065a8
lea eax, [ebp - 0xc6ec]
push eax
call dword [sym.imp.ucrtbase.dll_wcslen]
add esp, 4
mov esi, eax
push edi
call dword [sym.imp.ucrtbase.dll_feof]
add esp, 4
test eax, eax
je 0x406560
test esi, esi
jne 0x406591
jmp 0x4064e0
test esi, esi
je 0x4065a8
movzx eax, word [ebp + esi*2 - 0xc6ee]
cmp eax, 0xa
je 0x406591
cmp eax, 0xd
je 0x406591
jmp 0x4065a8
mov word [ebp + esi*2 - 0xc6ee], 0
dec esi
je 0x4064e0
movzx eax, word [ebp + esi*2 - 0xc6ee]
cmp eax, 0xd
je 0x406580
cmp eax, 0xa
je 0x406580
jmp 0x4064e0
push edi
call dword [sym.imp.ucrtbase.dll_fclose]
add esp, 4
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x4c]
je 0x406606
nop dword [eax]
test byte [0x41d010], 8
je 0x4065f2
mov eax, dword [ebp - 0x3c]
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Post_command__cmdEnd___p_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
inc dword [ebp - 0x70]
xor eax, eax
mov ecx, dword [ebp - 0x6c]
mov esi, edi
test eax, eax
je 0x405d00
jmp 0x406610
xor ecx, ecx
mov eax, 0x1c
jmp 0x4065fa
cmp eax, 0x1c
jne 0x405c92
xor eax, eax
mov edx, ecx
mov ecx, 0
test edx, edx
je 0x405c92
cmp dword [edx], 0
jne 0x40664e
jmp 0x405c8e
mov edi, esi
mov edx, dword [ebp - 0x6c]
cmp dword [edx], 0
je 0x405c8e
mov ecx, dword [edx + 8]
xor eax, eax
jmp 0x405c92
mov cx, 0x27
jmp 0x406662
mov cx, 0x22
movzx ecx, cx
push ecx
push eax
call dword [sym.imp.ucrtbase.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x406684
mov word [eax], 0
mov eax, dword [ebp - 0x48]
add eax, 2
mov dword [ebp - 0x48], eax
jmp 0x406687
mov eax, dword [ebp - 0x48]
xor ecx, ecx
nop dword [eax]
movzx edx, word [eax + ecx]
mov word [ebp + ecx - 0xc6ec], dx
add ecx, 2
test dx, dx
jne 0x406690
movzx eax, word [ebp - 0x76]
mov ecx, ebx
mov edx, dword [ebp - 0x18]
lea esi, [ebp - 0x106ec]
push esi
lea esi, [ebp - 0x6ec]
push esi
push dword [ebp - 0x54]
lea esi, [ebp - 0x5c]
push esi
lea esi, [ebp - 0x38]
push esi
lea esi, [ebp - 0xc6ec]
push esi
push eax
lea eax, [ebp - 0x3c]
push eax
call dbg.WCMD_parse_line
add esp, 0x20
jmp 0x405c8e
cmp dword [ebp - 0x50], 0
je 0x406855
test byte [0x41d010], 8
mov esi, dword [ebp - 0x94]
mov edi, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x10], edx
je 0x406738
sub esp, 0x1c
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.FOR__L_provided_range_from__ld_to__ld_step__ld_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
mov edx, dword [ebp - 0x10]
add esp, 0x1c
xor ecx, ecx
xor eax, eax
cmp esi, edx
setge cl
setle al
test edi, edi
cmovs eax, ecx
cmp al, 1
je 0x4067c5
mov eax, dword [ebp - 0x38]
jmp 0x40684c
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x58]
test eax, eax
js 0x406830
mov edx, dword [0x4162c4]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x46ec]
mov dword [edx + eax*4], ecx
mov ebx, edi
mov edi, eax
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
mov eax, dword [0x4162c4]
mov ecx, dword [ebp - 0x14]
mov dword [eax + edi*4], ecx
mov edi, ebx
mov ebx, dword [ebp - 0x2c]
add esi, edi
xor ecx, ecx
xor eax, eax
cmp esi, dword [ebp - 0x10]
setge cl
setle al
test edi, edi
cmovs eax, ecx
test al, al
je 0x406847
sub esp, 0x10
mov dword [esp + 0xc], esi
lea eax, [ebp - 0x46ec]
mov dword [esp], eax
mov dword [esp + 4], 0x14
call sym._swprintf
add esp, 0x10
test byte [0x41d010], 8
je 0x406760
lea ecx, [ebp - 0x46ec]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Processing_FOR_number__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
jmp 0x406760
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x18]
push 1
push 0
call dbg.WCMD_part_execute
add esp, 8
jmp 0x4067a9
mov eax, 1
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x40694b
mov edi, dword [esi]
push dword [esi + 4]
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
push esi
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
movzx eax, byte [0x41d010]
test edi, edi
je 0x406925
test al, 8
je 0x405988
mov ecx, dword [edi + 4]
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Moving_to_next_directory_to_iterate:__s_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x14
jmp 0x405988
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
jmp 0x405330
mov ecx, dword [eax + 8]
jmp 0x40690e
call dbg.WCMD_print_error
push 0x3fc
call sym._WCMD_LoadMessage
add esp, 4
lea ecx, [ebp - 0x86ec]
push ecx
push eax
call dbg.WCMD_output_stderr
add esp, 8
mov eax, dword [0x4162c0]
mov dword [eax], 1
jmp 0x406a05
xor ecx, ecx
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test byte [0x41d010], 8
je 0x405928
jmp 0x4058fd
test al, 8
je 0x40694b
sub esp, 0x10
mov dword [esp + 0xc], str.Finished_all_directories._n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x10
cmp dword [ebp - 0x38], 0
jne 0x406996
mov dword [ebp - 0x24], ebx
test byte [0x41d010], 8
je 0x40697f
sub esp, 0x10
mov dword [esp + 0xc], str.Skipping_for_loop_commands_due_to_no_valid_iterations_n
mov dword [esp + 8], str.WCMD_for
mov dword [esp], 3
call sym._wine_dbg_log_1
add esp, 0x10
lea esi, [ebp - 0x24]
mov ecx, esi
mov edx, dword [ebp - 0x18]
push 0
push 0
call dbg.WCMD_part_execute
add esp, 8
mov dword [ebp - 0x68], esi
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
test eax, eax
je 0x406a05
cmp dword [eax], 0
mov ecx, dword [eax + 4]
je 0x406a10
mov ecx, dword [ecx + 4]
cmp dword [ecx], 0
jne 0x406a05
mov eax, dword [eax + 8]
jmp 0x406a17
test byte [0x41d010], 4
je 0x4069ef
mov ecx, edi
call dbg.wine_dbgstr_wn
sub esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unexpected_data_in_optionsroot:__s_n
mov dword [esp + 8], str.WCMD_parse_forf_options
mov dword [esp], 2
call sym._wine_dbg_log_1
add esp, 0x14
push 0x3f3
call sym._WCMD_LoadMessage
add esp, 4
push eax
call dbg.WCMD_output_stderr
add esp, 4
add esp, 0x106e0
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [ecx], 0
jne 0x406a05
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406a05