Function at 0x415360
Capabilities:
Check if file exists
Delete directory
Enumerate files on windows
Enumerate files recursively
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43c07f
mov eax, dword fs:[0]
push eax
sub esp, 0x500
mov eax, dword [0x44a120]
xor eax, esp
mov dword [esp + 0x4f8], eax
push ebx
push esi
push edi
mov eax, dword [0x44a120]
xor eax, esp
push eax
lea eax, [esp + 0x510]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor edi, edi
push 0x208
lea eax, [esp + 0x2fa]
push edi
push eax
mov word [esp + 0x300], di
call fcn.00420090
mov eax, dword [0x44d06c]
mov ebx, 1
add eax, ebx
add esp, 0xc
cmp eax, 0xa
mov dword [0x44d06c], eax
ja 0x4158dc
cmp esi, edi
je 0x4158dc
push 0x104
lea ecx, [esp + 0x2f8]
push esi
push ecx
call fcn.0041f3cd
add esp, 0xc
test eax, eax
je 0x4158dc
lea edx, [esp + 0x2f4]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4158dc
lea ecx, [esp + 0x2f4]
call fcn.00415e90
test al, al
je 0x4158dc
add dword [0x44cf2c], ebx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x2f8]
call fcn.00401b70
mov esi, eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, str.Folder
mov dword [esp + 0x51c], edi
call fcn.00401b70
mov byte [esp + 0x518], bl
mov edx, dword [esi]
mov eax, dword [eax]
push edx
push eax
push 0x443ad8
mov ecx, 0x44cfe0
call fcn.00412bc0
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00401c20
lea ecx, [esp + 0x14]
mov dword [esp + 0x518], 0xffffffff
call fcn.00401c20
lea edx, [esp + 0x2f4]
lea eax, [esp + 0x6c]
call fcn.00407680
mov dword [esp + 0x518], 2
mov esi, dword [esp + 0x80]
push esi
lea ecx, [esp + 0x70]
push ecx
call fcn.00416ae0
add esi, 0xffffffff
cmp eax, esi
je 0x415503
lea edx, [esp + 0x6c]
push edx
mov ebx, 0x43fc94
lea esi, [esp + 0x38]
call fcn.00411b60
add esp, 4
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x74]
mov byte [esp + 0x520], 3
call fcn.004079e0
mov byte [esp + 0x518], 2
call fcn.004052b0
lea eax, [esp + 0x6c]
push eax
lea esi, [esp + 0x8c]
call fcn.004076c0
mov dword [esp + 0x68], 7
mov dword [esp + 0x64], edi
mov word [esp + 0x54], di
mov ecx, esi
push ecx
mov ebx, 0x443ee4
lea esi, [esp + 0x38]
mov byte [esp + 0x51c], 5
call fcn.00411b60
add esp, 4
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x90]
mov byte [esp + 0x520], 6
call fcn.004079e0
mov byte [esp + 0x518], 5
call fcn.004052b0
mov eax, dword [esp + 0x8c]
mov ebx, 8
cmp dword [esp + 0xa0], ebx
jae 0x415581
lea eax, [esp + 0x8c]
lea edx, [esp + 0xa4]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x10], edi
je 0x415888
test byte [esp + 0xa4], 0x10
je 0x41569e
mov ecx, 0x443e80
lea eax, [esp + 0xd0]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4155e6
test dx, dx
je 0x4155e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4155e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4155c0
xor eax, eax
jmp 0x4155eb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4156f9
mov ecx, 0x443e84
lea eax, [esp + 0xd0]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x415626
test dx, dx
je 0x415622
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x415626
add eax, 4
add ecx, 4
test dx, dx
jne 0x415600
xor eax, eax
jmp 0x41562b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4156f9
lea edx, [esp + 0xd0]
lea eax, [esp + 0x18]
call fcn.00407680
push eax
lea eax, [esp + 0x70]
push eax
lea edi, [esp + 0x3c]
mov byte [esp + 0x520], 7
call fcn.0040c3d0
add esp, 8
mov byte [esp + 0x518], bl
cmp dword [eax + 0x18], ebx
jb 0x41566e
mov eax, dword [eax + 4]
jmp 0x415671
add eax, 4
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call fcn.00415360
add esp, 8
lea esi, [esp + 0x34]
call fcn.004052b0
lea esi, [esp + 0x18]
mov byte [esp + 0x518], 5
call fcn.004052b0
mov edi, dword [esp + 0x10]
jmp 0x4156f9
lea edx, [esp + 0x6c]
push edx
lea ebx, [esp + 0xd4]
lea esi, [esp + 0x1c]
call fcn.00411b60
add esp, 4
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x58]
mov byte [esp + 0x520], 9
call fcn.004079e0
mov byte [esp + 0x518], 5
call fcn.004052b0
cmp dword [esp + 0x68], 8
mov eax, dword [esp + 0x54]
jae 0x4156e7
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call fcn.00415080
add esp, 8
mov ebx, 8
lea edx, [esp + 0xa4]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x415881
test byte [esp + 0xa4], 0x10
je 0x41580f
mov ecx, 0x443e80
lea eax, [esp + 0xd0]
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x415756
test dx, dx
je 0x415752
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x415756
add eax, 4
add ecx, 4
test dx, dx
jne 0x415730
xor eax, eax
jmp 0x41575b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41586a
mov ecx, 0x443e84
lea eax, [esp + 0xd0]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x415796
test dx, dx
je 0x415792
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x415796
add eax, 4
add ecx, 4
test dx, dx
jne 0x415770
xor eax, eax
jmp 0x41579b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41586a
lea edx, [esp + 0xd0]
lea eax, [esp + 0x34]
call fcn.00407680
push eax
lea eax, [esp + 0x70]
push eax
lea edi, [esp + 0x20]
mov byte [esp + 0x520], 0xa
call fcn.0040c3d0
add esp, 8
mov byte [esp + 0x518], 0xb
cmp dword [eax + 0x18], ebx
jb 0x4157df
mov eax, dword [eax + 4]
jmp 0x4157e2
add eax, 4
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call fcn.00415360
add esp, 8
lea esi, [esp + 0x18]
call fcn.004052b0
lea esi, [esp + 0x34]
mov byte [esp + 0x518], 5
call fcn.004052b0
mov edi, dword [esp + 0x10]
jmp 0x41586a
lea edx, [esp + 0x6c]
push edx
lea ebx, [esp + 0xd4]
lea esi, [esp + 0x1c]
call fcn.00411b60
add esp, 4
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x58]
mov byte [esp + 0x520], 0xc
call fcn.004079e0
mov byte [esp + 0x518], 5
call fcn.004052b0
cmp dword [esp + 0x68], 8
mov eax, dword [esp + 0x54]
jae 0x415858
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call fcn.00415080
add esp, 8
mov ebx, 8
lea edx, [esp + 0xa4]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x415710
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [esp + 0x2f4]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x4158b0
cmp dword [ebp + 0xc], eax
je 0x4158b0
push 4
push eax
lea ecx, [esp + 0x2fc]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
sub dword [0x44d06c], 1
lea esi, [esp + 0x50]
call fcn.004052b0
lea esi, [esp + 0x88]
call fcn.004052b0
lea esi, [esp + 0x6c]
call fcn.004052b0
mov eax, 1
jmp 0x4158e4
sub dword [0x44d06c], ebx
xor eax, eax
mov ecx, dword [esp + 0x510]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4f8]
xor ecx, esp
call fcn.0041cb94
mov esp, ebp
pop ebp
ret