Function at 0x625cea10
Capabilities:
Copy file
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, edx
push esi
mov esi, eax
push ebx
sub esp, 0x6ac
movzx eax, word [ebp + 0xc]
mov dword [ebp - 0x67c], ecx
mov dword [esp], esi
mov word [ebp - 0x682], ax
lea eax, [ebp - 0x268]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
sub esp, 8
cmp eax, 0xffffffff
je 0x625cee3c
mov ebx, eax
test esi, esi
je 0x625cea7e
mov eax, edi
dec eax
jns 0x625cea65
jmp 0x625cea7e
sub eax, 1
jb 0x625cea7e
movzx edx, word [esi + eax*2]
cmp dx, 0x2f
je 0x625cea60
cmp dx, 0x5c
jne 0x625cec2e
sub eax, 1
jae 0x625cea65
xor edx, edx
mov eax, dword [ebp + 8]
lea esi, [eax + 1]
cmp esi, 0x103
ja 0x625ced26
mov eax, dword [ebp + 8]
mov dword [ebp - 0x680], edx
lea edi, [eax + eax]
mov eax, dword [ebp - 0x67c]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
lea eax, [ebp - 0x470]
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x680]
movzx eax, word [ebp + eax*2 - 0x472]
cmp ax, 0x5c
je 0x625ceaed
cmp ax, 0x2f
je 0x625ceaed
mov eax, dword [ebp + 8]
mov ecx, 0x5c
mov dword [ebp + 8], esi
add edi, 2
mov word [ebp + eax*2 - 0x470], cx
lea eax, [ebp + edx*2 - 0x678]
mov dword [ebp - 0x688], eax
lea eax, [ebp - 0x470]
add eax, edi
mov edi, 0x800a0035
mov dword [ebp - 0x68c], eax
lea eax, [edx + 1]
mov esi, edi
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp - 0x680], eax
jmp 0x625ceb46
lea eax, [ebp - 0x268]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x625ced41
mov edx, dword [ebp - 0x268]
and edx, 0x50
jne 0x625ceb28
cmp word [ebp - 0x23c], 0
je 0x625ced10
lea edx, [ebp - 0x23c]
mov eax, edx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x625ceb70
sub eax, edx
mov ecx, dword [ebp - 0x67c]
mov edx, eax
sar edx, 1
add ecx, edx
cmp ecx, 0x103
ja 0x625ced26
add edx, dword [ebp - 0x680]
cmp edx, 0x103
ja 0x625ced26
lea esi, [eax + 2]
mov eax, dword [ebp - 0x688]
lea edi, [ebp - 0x23c]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x68c]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._memcpy
test byte [0x625d3028], 8
jne 0x625cecc0
xor eax, eax
cmp word [ebp - 0x682], 0
sete al
mov dword [esp + 8], eax
lea eax, [ebp - 0x470]
mov dword [esp + 4], eax
lea eax, [ebp - 0x678]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CopyFileW]
sub esp, 0xc
test eax, eax
je 0x625ced8e
xor esi, esi
jmp 0x625ceb28
cmp dx, 0x5c
je 0x625cec55
sub eax, 1
jb 0x625cea7e
movzx edx, word [esi + eax*2]
cmp dx, 0x2f
jne 0x625cec28
lea esi, [esi]
sub eax, 1
jb 0x625cea7e
movzx edx, word [esi + eax*2]
cmp dx, 0x2f
je 0x625cec48
cmp dx, 0x5c
je 0x625cec48
cmp eax, 1
jne 0x625cec70
cmp dx, 0x3a
je 0x625ced75
lea edx, [eax + 2]
cmp edx, 0x103
ja 0x625ced26
inc eax
mov dword [ebp - 0x680], eax
lea ecx, [eax + eax]
cmp ecx, 4
jae 0x625ced59
test ecx, ecx
je 0x625ceca8
movzx eax, byte [esi]
mov byte [ebp - 0x678], al
test cl, 2
jne 0x625cee2a
mov eax, dword [ebp - 0x680]
mov esi, 0x5c
mov word [ebp + eax*2 - 0x678], si
jmp 0x625cea80
lea eax, [ebp - 0x470]
call sym._wine_dbgstr_wn.constprop.0_1
mov esi, eax
lea eax, [ebp - 0x678]
call sym._wine_dbgstr_wn.constprop.0_1
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.copying__s_to__s_n
mov dword [esp + 8], str.copy_file
mov dword [esp + 4], 0x625d3028
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x625cebe7
mov ecx, dword [ebp - 0x67c]
xor eax, eax
add ecx, edx
cmp ecx, 0x103
jbe 0x625ceb93
mov dword [esp], ebx
mov edi, 0x80004005
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], ebx
mov edi, esi
call dword [sym.imp.kernel32.dll_FindClose]
mov eax, edi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esi + ecx - 4]
mov dword [ebp + ecx - 0x67c], edi
dec ecx
lea edi, [ebp - 0x678]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x625ceca8
mov dword [ebp - 0x680], 3
mov ecx, 6
mov edx, 4
jmp 0x625cec89
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FindClose]
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
sub esp, 4
cmp eax, 5
je 0x625cee20
ja 0x625cedc8
mov edi, 0x800a0035
cmp eax, 2
je 0x625ced37
cmp eax, 3
jne 0x625cede1
lea esp, [ebp - 0xc]
mov edi, 0x800a004c
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov edi, 0x800a003a
cmp eax, 0x50
je 0x625ced37
cmp eax, 0xb7
je 0x625ced37
mov edi, 0x80004005
test byte [0x625d3028], 1
je 0x625ced37
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Unsupported_error_code:__ld_n
mov dword [esp + 8], str.create_error
mov dword [esp + 4], 0x625d3028
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_1
jmp 0x625ced37
mov edi, 0x800a0046
jmp 0x625ced37
movzx esi, word [esi + ecx - 2]
mov word [ebp + ecx - 0x67a], si
jmp 0x625ceca8
mov edi, 0x800a0035
jmp 0x625ced37