Function at 0x100048e40
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0xb68
mov qword [rsp + 0xb48], 0xfffffffffffffffe
mov rax, qword [0x1000a81b8]
mov qword [rsp + 0xb58], rax
mov byte [rsp + 0x4c0], 1
lea rcx, [rsp + 0x4c8]
call fcn.100014450
nop
lea rcx, [rsp + 0x6e0]
call fcn.100014450
nop
lea rcx, [rsp + 0x40]
call fcn.100014450
nop
mov rcx, qword [rsp + 0xb70]
call fcn.100013bb0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x2a0], eax
cmp dword [rsp + 0x2a0], 0xffffffff
jne 0x100048ef7
mov byte [rsp + 0xb30], 0
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb30]
jmp 0x100049479
mov eax, dword [rsp + 0x2a0]
and eax, 0x10
test eax, eax
jne 0x100048f3f
mov byte [rsp + 0xb31], 0
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb31]
jmp 0x100049479
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x6e0]
mov rcx, qword [rsp + 0xb70]
call fcn.1000482e0
movzx eax, al
test eax, eax
je 0x100048fdf
lea rcx, [rsp + 0x6e0]
call fcn.100013fb0
movzx eax, al
test eax, eax
jne 0x100048fdf
lea rcx, [rsp + 0x6e0]
call fcn.100013bb0
lea r9, [rsp + 0x6f0]
xor r8d, r8d
lea rdx, [0x100007f60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x100048fdf
mov rcx, qword [rsp + 0xb70]
call fcn.100013bb0
mov r8d, 1
lea rdx, [rsp + 0x6f0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x100048fdf
lea rdx, [rsp + 0x6f0]
lea rcx, [rsp + 0x4c8]
call fcn.100015f70
jmp 0x100048ffc
mov rcx, qword [rsp + 0xb70]
call fcn.100013bb0
mov rdx, rax
lea rcx, [rsp + 0x4c8]
call fcn.100015f70
mov eax, dword [rsp + 0x2a0]
and eax, 0x400
test eax, eax
je 0x1000490eb
mov qword [rsp + 0x910], 0xffffffffffffffff
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x6200000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 7
mov edx, 0x10000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x910], rax
cmp qword [rsp + 0x910], 0xffffffffffffffff
je 0x100049084
mov rcx, qword [rsp + 0x910]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [rsp + 0x4c0], 1
jmp 0x1000490aa
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov r8d, 4
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [rsp + 0x4c0], 0
movzx eax, byte [rsp + 0x4c0]
mov byte [rsp + 0xb32], al
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb32]
jmp 0x100049479
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov r8, rax
mov edx, 0x104
lea rcx, [rsp + 0x4d0]
call fcn.10001fc80
test eax, eax
jge 0x10004914b
mov byte [rsp + 0xb33], 0
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb33]
jmp 0x100049479
mov eax, dword [rsp + 0x2a0]
and eax, 0x10
test eax, eax
je 0x1000491b4
xor r9d, r9d
mov r8d, 0x104
lea rdx, [0x100007f58]
lea rcx, [rsp + 0x4d0]
call fcn.100086880
test eax, eax
jne 0x1000491b4
mov byte [rsp + 0xb34], 0
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb34]
jmp 0x100049479
mov dword [rsp + 0x900], 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x4d0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x908], rax
cmp qword [rsp + 0x908], 0xffffffffffffffff
je 0x1000493c4
cmp dword [rsp + 0x900], 1
jne 0x1000493c4
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov r8, rax
mov edx, 0x104
lea rcx, [rsp + 0x2b0]
call fcn.10001fc80
test eax, eax
jl 0x1000493a5
xor r9d, r9d
mov r8d, 0x104
lea rdx, [rsp + 0x7c]
lea rcx, [rsp + 0x2b0]
call fcn.100086880
test eax, eax
je 0x1000493a5
mov eax, dword [rsp + 0x50]
and eax, 0x10
test eax, eax
je 0x1000492fa
lea rdx, [0x100007498]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1000492f5
lea rdx, [0x100007490]
lea rcx, [rsp + 0x7c]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x1000492f5
lea rdx, [rsp + 0x2b0]
lea rcx, [rsp + 0xb38]
call fcn.100018c00
nop
lea rcx, [rsp + 0xb38]
call fcn.100048e40
movzx eax, al
test eax, eax
jne 0x1000492ba
mov dword [rsp + 0xb50], 1
jmp 0x1000492c5
mov dword [rsp + 0xb50], 0
movzx eax, byte [rsp + 0xb50]
mov byte [rsp + 0xb35], al
lea rcx, [rsp + 0xb38]
call fcn.1000144b0
movzx eax, byte [rsp + 0xb35]
test eax, eax
je 0x1000492f5
mov byte [rsp + 0x4c0], 0
jmp 0x1000493a5
mov edx, 0x80
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x1000493a5
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
lea r9, [rsp + 0x920]
xor r8d, r8d
lea rdx, [0x100007f60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x100049387
mov r8d, 1
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x100049387
mov r8d, 4
xor edx, edx
lea rcx, [rsp + 0x920]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x10004939d
mov r8d, 4
xor edx, edx
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [rsp + 0x4c0], 0
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x908]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [rsp + 0x900], eax
jmp 0x1000491da
mov rcx, qword [rsp + 0x908]
call qword [sym.imp.KERNEL32.dll_FindClose]
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [rsp + 0x2a0], eax
mov eax, dword [rsp + 0x2a0]
and eax, 0x10
test eax, eax
je 0x10004943d
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x10004943d
lea rcx, [rsp + 0x4c8]
call fcn.100013bb0
mov r8d, 4
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [rsp + 0x4c0], 0
movzx eax, byte [rsp + 0x4c0]
mov byte [rsp + 0xb40], al
lea rcx, [rsp + 0x40]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x6e0]
call fcn.1000144b0
nop
lea rcx, [rsp + 0x4c8]
call fcn.1000144b0
mov al, byte [rsp + 0xb40]
mov rcx, qword [rsp + 0xb58]
call fcn.100087ed0
add rsp, 0xb68
ret