Function at 0x423630
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0xffffffffffffffff
push 0x458806
mov eax, dword fs:[0]
push eax
sub esp, 0x29c
mov eax, dword [0x46e3d0]
xor eax, esp
mov dword [esp + 0x294], eax
push ebx
push ebp
push esi
mov eax, dword [0x46e3d0]
xor eax, esp
push eax
lea eax, [esp + 0x2ac]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x2c4]
mov eax, dword [ecx]
test eax, eax
mov esi, dword [esp + 0x2c0]
mov ebp, dword [esp + 0x2bc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ecx
jbe 0x42390f
add eax, 0xffffffff
mov dword [ecx], eax
cmp dword [ebp + 0x14], 0
je 0x42388b
cmp dword [esi + 0x14], 0
je 0x42388b
call fcn.0041bc90
test eax, eax
je 0x42388b
mov eax, ebp
call fcn.0041bc60
test eax, eax
je 0x42390f
push esi
lea esi, [esp + 0x3c]
call fcn.00408800
push ebp
mov ebx, str..
lea esi, [esp + 0x20]
mov dword [esp + 0x2b8], 0
call fcn.00408750
add esp, 4
push 0x24c
lea eax, [esp + 0x5c]
push 0
mov byte [esp + 0x2bc], 1
push eax
mov dword [esp + 0x60], 0
call fcn.00443e10
mov eax, dword [esp + 0x2c]
add esp, 0xc
cmp dword [esp + 0x34], 8
jae 0x423720
lea eax, [esp + 0x20]
lea ecx, [esp + 0x54]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x423879
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
nop
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x40]
call fcn.00406cc0
lea esi, [esp + 0x38]
call fcn.00426960
lea eax, [esp + 0x80]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423764
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x40]
call fcn.00406e50
push 0xffffffffffffffff
push 0
mov eax, ebp
lea ecx, [esp + 0x24]
call fcn.00406cc0
lea esi, [esp + 0x1c]
call fcn.00426960
lea eax, [esp + 0x80]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4237a7
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x24]
call fcn.00406e50
test byte [esp + 0x54], 0x10
je 0x423892
mov ecx, 0x4620cc
lea eax, [esp + 0x80]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423806
test dx, dx
je 0x423802
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423806
add eax, 4
add ecx, 4
test dx, dx
jne 0x4237e0
xor eax, eax
jmp 0x42380b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4238de
mov ecx, 0x463554
lea eax, [esp + 0x80]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x423846
test dx, dx
je 0x423842
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x423846
add eax, 4
add ecx, 4
test dx, dx
jne 0x423820
xor eax, eax
jmp 0x42384b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4238de
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x24]
push eax
call fcn.00423630
add esp, 0xc
test eax, eax
jne 0x4238de
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x1c]
call fcn.00406ab0
lea ecx, [esp + 0x38]
call fcn.00406ab0
xor eax, eax
jmp 0x423914
mov esi, 5
jmp 0x4238a0
mov ecx, dword [esp + 0x3c]
mov eax, 8
cmp dword [esp + 0x50], eax
jae 0x4238b3
lea ecx, [esp + 0x3c]
cmp dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
jae 0x4238c1
lea eax, [esp + 0x20]
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4238da
push 2
call ebx
sub esi, 1
test esi, esi
jg 0x4238a0
test esi, esi
je 0x42393b
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x54]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x423740
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x1c]
call fcn.00406ab0
lea ecx, [esp + 0x38]
call fcn.00406ab0
mov eax, 1
mov ecx, dword [esp + 0x2ac]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x294]
xor ecx, esp
call fcn.0043ef12
add esp, 0x2a8
ret
mov eax, dword [esp + 0x10]
push eax
jmp 0x423873