Function at 0x40fa90
Capabilities:
Enumerate files on windows
Move file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xedc
cmp word [0x4331e0], 0
mov dword [0x437470], 0
je 0x40faba
cmp word [0x42f1e0], 0
jne 0x40fae0
mov dword [esp], 0x3f2
call sym._WCMD_LoadMessage
mov dword [esp], eax
call dbg.WCMD_output_stderr
mov dword [0x437470], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [esp + 4], 0x3a
mov dword [esp], 0x42f1e0
mov dword [ebp - 0xebc], eax
call eax
test eax, eax
je 0x40fb24
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x57
call dbg.WCMD_print_error
mov dword [0x437470], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x5c
mov eax, dword [ebp - 0xebc]
mov dword [esp], 0x42f1e0
call eax
test eax, eax
jne 0x40fb00
lea ebx, [ebp - 0xe98]
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x104
mov dword [esp], 0x4331e0
call sym._WCMD_get_fullpath
test eax, eax
je 0x40fad8
test byte [0x425010], 8
jne 0x40ff76
mov dword [esp + 4], 0x2e
mov eax, dword [ebp - 0xebc]
mov dword [esp], 0x42f1e0
call eax
mov dword [esp], ebx
mov edi, eax
lea eax, [ebp - 0x880]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0xa88]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp + 8], eax
lea eax, [ebp - 0xeac]
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll__wsplitpath]
lea eax, [ebp - 0x268]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
sub esp, 8
mov dword [ebp - 0xec4], eax
cmp eax, 0xffffffff
je 0x40fad8
mov eax, edi
mov ebx, edi
lea edi, [ebp - 0x470]
sub eax, 0x42f1e0
sar eax, 1
mov dword [ebp - 0xec8], eax
test byte [0x425010], 8
jne 0x40fe51
lea eax, [ebp - 0x23c]
mov dword [esp + 4], 0x2e
mov dword [esp], eax
mov eax, dword [ebp - 0xebc]
call eax
xor edx, edx
lea esi, [esi]
nop
movzx ecx, word [ebp + edx - 0xeac]
mov word [edi + edx], cx
add edx, 2
test cx, cx
jne 0x40fc30
cmp word [ebp - 0x470], 0
mov ecx, edi
je 0x40fc59
add ecx, 2
cmp word [ecx], 0
jne 0x40fc50
xor edx, edx
lea esi, [esi]
nop
movzx esi, word [ebp + edx - 0xc90]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x40fc60
xor edx, edx
lea esi, [esi]
lea esi, [esi]
movzx ecx, word [edi + edx]
mov word [ebp + edx - 0x678], cx
add edx, 2
test cx, cx
jne 0x40fc80
cmp word [ebp - 0x470], 0
je 0x40ff65
mov edx, edi
add edx, 2
cmp word [edx], 0
jne 0x40fca4
sub edx, edi
mov ecx, edi
sar edx, 1
mov dword [ebp - 0xec0], edx
lea esi, [esi]
add ecx, 2
cmp word [ecx], 0
jne 0x40fcc0
xor edx, edx
lea esi, [esi]
nop
movzx esi, word [ebp + edx - 0x23c]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x40fcd0
movzx esi, word [0x42f1e0]
movzx edx, word [ebp - 0x678]
lea ecx, [ebp - 0x678]
cmp si, 0x2a
je 0x40fe00
test dx, dx
je 0x40fd19
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40fd10
xor edx, edx
jmp 0x40fd27
movzx esi, word [edx + 0x42f1e0]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x40fd20
test ebx, ebx
je 0x40fd90
mov edx, dword [ebp - 0xec0]
xor ecx, ecx
add edx, dword [ebp - 0xec8]
mov word [ebp + edx*2 - 0x678], cx
cmp word [ebx + 2], 0x2a
je 0x40ff20
cmp word [ebp - 0x678], 0
lea edx, [ebp - 0x678]
je 0x40fd79
lea esi, [esi]
nop
add edx, 2
cmp word [edx], 0
jne 0x40fd70
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [ebx + eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x40fd80
test byte [0x425010], 8
jne 0x40fea4
lea eax, [ebp - 0x678]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_MoveFileW]
sub esp, 8
test eax, eax
je 0x40fe90
lea eax, [ebp - 0x268]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xec4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
jne 0x40fc00
mov eax, dword [ebp - 0xec4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
jmp 0x40fad8
test dx, dx
je 0x40fe0e
add ecx, 2
cmp word [ecx], 0
jne 0x40fe05
xor edx, edx
movzx esi, word [ebp + edx - 0x23c]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x40fe10
test eax, eax
je 0x40fe44
lea esi, [ebp - 0x23c]
mov edx, eax
sub edx, esi
xor esi, esi
sar edx, 1
add edx, dword [ebp - 0xec0]
mov word [ebp + edx*2 - 0x678], si
test ebx, ebx
jne 0x40fd4d
jmp 0x40fd90
lea eax, [ebp - 0x23c]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Processing_file__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_rename
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x40fc0d
call dbg.WCMD_print_error
mov dword [0x437470], 1
jmp 0x40fdbb
mov eax, edi
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Source__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_rename
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
test byte [0x425010], 8
je 0x40fd9d
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0xc], str.Dest____s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WCMD_rename
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x40fd9d
test eax, eax
je 0x40fd90
cmp word [ebp - 0x678], 0
lea ecx, [ebp - 0x678]
je 0x40ff49
lea esi, [esi]
nop
add ecx, 2
cmp word [ecx], 0
jne 0x40ff40
xor edx, edx
lea esi, [esi]
nop
movzx esi, word [eax + edx]
mov word [ecx + edx], si
add edx, 2
test si, si
jne 0x40ff50
jmp 0x40fd90
mov dword [ebp - 0xec0], 0
mov ecx, edi
jmp 0x40fcc9
mov eax, 0x42f1e0
call sym._wine_dbgstr_wn.constprop.5
mov edi, eax
mov eax, 0x4331e0
call sym._wine_dbgstr_wn.constprop.5
mov esi, eax
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Rename_from__s__s__to__s_n
mov dword [esp + 8], str.WCMD_rename
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.9
jmp 0x40fb7a