Function at 0x45ade0
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Delete file
Enumerate files on windows
Get file attributes
Move file

Disassembly:
mov eax, 0x20cc8
call fcn.004b8900
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
lea eax, [esp + 0xcd4]
push edi
push 0
push eax
mov edi, ecx
mov ebx, edx
push 0x8000
push edi
call esi
lea ecx, [esp + 0xcd8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45ae14
sub ecx, edx
sar ecx, 1
je 0x45ae3a
cmp word [esp + ecx*2 + 0xcd6], 0x5c
jne 0x45ae3a
xor eax, eax
mov word [esp + ecx*2 + 0xcd6], ax
push 0
lea eax, [esp + 0x10cdc]
push eax
push 0x8000
push ebx
call esi
lea ecx, [esp + 0x10cd8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45ae56
sub ecx, edx
sar ecx, 1
je 0x45ae7c
cmp word [esp + ecx*2 + 0x10cd6], 0x5c
jne 0x45ae7c
xor eax, eax
mov word [esp + ecx*2 + 0x10cd6], ax
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [esp + 0xcd8]
push eax
call esi
cmp eax, 0xffffffff
je 0x45aec5
test al, 0x10
je 0x45aec5
lea ecx, [esp + 0xcd8]
add ecx, 0xfffffffe
nop
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x45aea0
mov eax, dword [str..]
mov dword [ecx], eax
mov eax, dword [0x4dd0e4]
mov dword [ecx + 4], eax
mov ax, word [0x4dd0e8]
mov word [ecx + 8], ax
lea eax, [esp + 0x10cd8]
push eax
call esi
cmp eax, 0xffffffff
je 0x45af07
test al, 0x10
je 0x45af07
lea ecx, [esp + 0x10cd8]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x45aee2
mov eax, dword [str..]
mov dword [ecx], eax
mov eax, dword [0x4dd0e4]
mov dword [ecx + 4], eax
mov ax, word [0x4dd0e8]
mov word [ecx + 8], ax
lea eax, [esp + 0x458]
push eax
lea eax, [esp + 0xcdc]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x45af85
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x20ce4]
mov dword [ecx], eax
test edi, edi
je 0x45af71
movzx eax, word [edi]
test ax, ax
je 0x45af71
mov esi, eax
mov eax, 0x4dc3d4
mov edx, 0x3f
nop dword [eax]
cmp si, dx
je 0x45af73
movzx ecx, word [eax + 2]
add eax, 2
mov edx, ecx
test cx, cx
jne 0x45af50
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x45af43
xor edi, edi
xor eax, eax
test edi, edi
sete al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20cc8
ret
mov ebp, dword [esp + 0x20ce4]
lea eax, [esp + 0xcd8]
push 0x5c
push eax
mov dword [ebp], 0
call fcn.0049d21e
push 0x5c
lea ebx, [eax + 2]
lea eax, [esp + 0x10ce4]
mov dword [esp + 0x2c], ebx
push eax
call fcn.0049d21e
mov ecx, ebx
push 0x103
lea esi, [eax + 2]
lea eax, [esp + 0xcec]
mov dword [esp + 0x2c], esi
sub ecx, eax
mov eax, 0x7fff
sar ecx, 1
sub eax, ecx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x264]
push esi
push eax
call fcn.004ab924
mov edi, dword [esp + 0x30]
xor eax, eax
add esp, 0x1c
mov word [esp + 0x456], ax
xor ebx, ebx
nop dword [eax]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x4e59a0]
sub eax, dword [0x4eb7f4]
cmp eax, dword [ecx + 0x5c]
jbe 0x45b046
push 0
push 0
push 0
push 0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x45b03b
mov edx, 1
or ecx, 0xffffffff
call fcn.004015c0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x4eb7f4], eax
test byte [esp + 0x458], 0x10
jne 0x45b258
lea ecx, [esp + 0x484]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45b060
sub ecx, edx
sar ecx, 1
cmp ecx, dword [esp + 0x1c]
jbe 0x45b082
mov dword [ebp], 0x6f
inc ebx
jmp 0x45b258
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x484]
mov eax, ecx
sub edx, eax
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x45b091
lea eax, [esp + 0x250]
push 0x2a
push eax
call fcn.0049d2e2
add esp, 8
test eax, eax
jne 0x45b0d9
lea ecx, [esp + 0x250]
mov edx, esi
mov eax, ecx
sub edx, eax
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x45b0c4
jmp 0x45b1cf
lea eax, [esp + 0x6a8]
push eax
lea eax, [esp + 0xacc]
push eax
push 0
lea eax, [esp + 0x490]
push 0
push eax
call fcn.004ab78a
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x8d0]
push eax
push 0
lea eax, [esp + 0x270]
push 0
push eax
call fcn.004ab78a
add esp, 0x28
cmp word [esp + 0x6a8], 0x2e
jne 0x45b13f
lea ecx, [esp + 0x6aa]
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx - 4], ax
test ax, ax
jne 0x45b130
cmp word [esp + 0x40], 0x2e
jne 0x45b15f
lea ecx, [esp + 0x42]
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx - 4], ax
test ax, ax
jne 0x45b150
push esi
lea edx, [esp + 0x8bc]
lea ecx, [esp + 0xacc]
call fcn.0045b290
add esp, 4
cmp word [esp + 0x6a8], 0
jne 0x45b189
cmp word [esp + 0x40], 0
je 0x45b1cf
push 0
push esi
call fcn.0049d2e2
add esp, 8
mov edi, eax
cmp word [esp + 0x40], 0
jne 0x45b1a6
mov dword [esp + 0x40], 0x2a
lea esi, [edi + 2]
push esi
lea edx, [esp + 0x44]
lea ecx, [esp + 0x6ac]
call fcn.0045b290
add esp, 4
cmp word [esi], 0
mov esi, dword [esp + 0x18]
je 0x45b1cf
mov eax, 0x2e
mov word [edi], ax
cmp byte [esp + 0x20ce0], 0
je 0x45b224
mov edi, dword [sym.imp.KERNEL32.dll_MoveFileW]
lea eax, [esp + 0x10cd8]
push eax
lea eax, [esp + 0xcdc]
push eax
call edi
test eax, eax
jne 0x45b254
cmp byte [esp + 0x20cdc], al
je 0x45b24a
lea eax, [esp + 0x10cd8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x45b24a
lea eax, [esp + 0x10cd8]
push eax
lea eax, [esp + 0xcdc]
push eax
call edi
jmp 0x45b246
movzx eax, byte [esp + 0x20cdc]
xor eax, 1
push eax
lea eax, [esp + 0x10cdc]
push eax
lea eax, [esp + 0xce0]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x45b254
call dword [sym.imp.KERNEL32.dll_GetLastError]
inc ebx
mov dword [ebp], eax
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x458]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x45b000
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x20cc8
ret