Function at 0x100032ffc
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:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0xb28
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x100082138]
xor rax, rsp
mov qword [rsp + 0xb10], rax
mov rdi, rcx
mov ebp, 1
mov byte [rsp + 0x40], bpl
lea rcx, [rsp + 0x58]
call fcn.10001fee0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fee0
nop
lea rcx, [rsp + 0x50]
call fcn.10001fee0
nop
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x100033088
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x58]
call fcn.10001fba0
xor al, al
jmp 0x1000334c5
test al, 0x10
jne 0x1000330a9
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
xor esi, esi
jmp 0x1000334b8
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.1000325f8
xor esi, esi
cmp al, sil
je 0x10003312e
mov rcx, qword [rsp + 0x48]
cmp dword [rcx - 0x10], esi
je 0x10003312e
lea r9, [rsp + 0x4e0]
xor r8d, r8d
lea rdx, [0x10000ba00]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
cmp eax, esi
je 0x10003312e
mov r8d, ebp
lea rdx, [rsp + 0x4e0]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp eax, esi
je 0x10003312e
xor eax, eax
lea rcx, [rsi - 1]
lea rdi, [rsp + 0x4e0]
repne scasw ax, word [rdi]
not rcx
sub rcx, rbp
mov r8d, ecx
lea rdx, [rsp + 0x4e0]
lea rcx, [rsp + 0x58]
call fcn.10001fae8
jmp 0x100033159
mov rdx, qword [rdi]
cmp rdx, rsi
jne 0x10003313a
mov ecx, esi
jmp 0x10003314c
xor eax, eax
lea rcx, [rax - 1]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, rbp
mov r8d, ecx
lea rcx, [rsp + 0x58]
call fcn.10001fae8
bt ebx, 0xa
jae 0x1000331ce
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x6200000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x10000
lea r8d, [r9 + 7]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x10003319c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1000331b0
xor edx, edx
lea r8d, [rdx + 4]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov bpl, sil
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
mov sil, bpl
jmp 0x1000334b8
mov r10d, 0x104
mov rdx, r10
lea rcx, [rsp + 0x6f0]
mov r9d, esi
lea rax, [rsp + 0x6f0]
mov rdi, qword [rsp + 0x58]
mov r8, rdi
sub r8, rax
lea rax, [rdx + 0x7ffffefa]
cmp rax, rsi
je 0x100033217
movzx eax, word [r8 + rcx]
cmp ax, si
je 0x100033217
mov word [rcx], ax
add rcx, 2
sub rdx, rbp
jne 0x1000331f5
cmp rdx, rsi
jne 0x100033226
sub rcx, 2
mov r9d, 0x8007007a
mov word [rcx], si
cmp r9d, esi
jge 0x100033249
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
jmp 0x1000334b8
xor r9d, r9d
mov r8d, r10d
lea rdx, [0x10000ba08]
lea rcx, [rsp + 0x6f0]
call fcn.1000687ec
cmp eax, esi
jne 0x100033282
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
jmp 0x1000334b8
mov ebx, ebp
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x6f0]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
je 0x100033466
cmp ebx, ebp
jne 0x100033461
mov r10d, 0x104
mov rdx, r10
lea rcx, [rsp + 0x2d0]
mov r8d, esi
lea rax, [rsp + 0x2d0]
mov r9, rdi
sub r9, rax
lea rax, [rdx + 0x7ffffefa]
cmp rax, rsi
je 0x1000332f5
movzx eax, word [r9 + rcx]
cmp ax, si
je 0x1000332f5
mov word [rcx], ax
add rcx, 2
sub rdx, rbp
jne 0x1000332d3
cmp rdx, rsi
jne 0x100033304
sub rcx, 2
mov r8d, 0x8007007a
mov word [rcx], si
cmp r8d, esi
jl 0x100033447
xor r9d, r9d
mov r8d, r10d
lea rdx, [rsp + 0xac]
lea rcx, [rsp + 0x2d0]
call fcn.1000687ec
cmp eax, esi
je 0x100033447
test byte [rsp + 0x80], 0x10
je 0x1000333b7
lea rdx, [0x100009ef4]
lea rcx, [rsp + 0xac]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
cmp eax, esi
je 0x100033447
lea rdx, [0x100009ef8]
lea rcx, [rsp + 0xac]
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
cmp eax, esi
je 0x100033447
lea rdx, [rsp + 0x2d0]
lea rcx, [rsp + 0x68]
call fcn.10001ff98
nop
lea rcx, [rsp + 0x68]
call fcn.100032ffc
cmp al, sil
sete bl
lea rcx, [rsp + 0x68]
call fcn.10001fba0
cmp bl, sil
je 0x100033447
mov byte [rsp + 0x40], sil
jmp 0x100033447
mov edx, 0x80
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp eax, esi
jne 0x100033447
lea r9, [rsp + 0x900]
xor r8d, r8d
lea rdx, [0x10000ba00]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
cmp eax, esi
je 0x10003342e
mov r8d, ebp
lea rdx, [rsp + 0x900]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp eax, esi
je 0x10003342e
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rsp + 0x900]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x100033442
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [rsp + 0x40], sil
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ebx, eax
jmp 0x1000332a9
mov rax, qword [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x10003349d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
cmp eax, esi
jne 0x10003349d
xor edx, edx
lea r8d, [rdx + 4]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [rsp + 0x40], sil
lea rcx, [rsp + 0x50]
call fcn.10001fba0
nop
lea rcx, [rsp + 0x48]
call fcn.10001fba0
nop
mov sil, byte [rsp + 0x40]
lea rcx, [rsp + 0x58]
call fcn.10001fba0
mov al, sil
mov rcx, qword [rsp + 0xb10]
xor rcx, rsp
call fcn.10006b1f0
add rsp, 0xb28
pop rdi
pop rsi
pop rbp
pop rbx
ret