Function at 0x3226930
Capabilities:
Check if file exists
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x6a0
mov rax, qword [0x03260b88]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov rdi, rcx
test rcx, rcx
je 0x3226bbd
movzx eax, word [rcx]
cmp ax, 0x5c
je 0x3226bbd
test ax, ax
je 0x3226bbd
cmp ax, 0x2e
je 0x3226bbd
lea rdx, [0x0324aa98]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x3226bbd
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x3226bc8
not eax
test al, 0x10
jne 0x3226bbd
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
cmp eax, 1
jne 0x32269cc
jmp 0x3226bca
test eax, eax
jne 0x32269e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x91
jne 0x3226bc8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, str..
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [rax + 1]
add ecx, ebx
cmp ecx, 0x104
jg 0x3226bc8
lea eax, [rbx - 1]
mov r8, rdi
movsxd rcx, eax
lea rdx, [0x0324aaa0]
lea rbx, [rcx + rcx]
cmp word [rbx + rdi], 0x5c
lea rcx, [rsp + 0x270]
je 0x3226a34
lea rdx, str._s.
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x3226bc8
mov rdx, rdi
lea rcx, [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp word [rsp + rbx + 0x270], 0x5c
jne 0x3226a90
cmp rbx, 0x208
jae 0x3226bef
xor eax, eax
mov word [rsp + rbx + 0x270], ax
nop dword [rax]
lea rdx, [0x0324a400]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x3226b86
lea rdx, [0x0324aa98]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x3226b86
lea rcx, [0x0324a634]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0x4c]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, [rsp + 0x270]
add ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, ebx
cmp eax, 0x104
jge 0x3226b86
lea r9, [rsp + 0x4c]
lea r8, [rsp + 0x270]
lea rdx, [0x0324a618]
lea rcx, [rsp + 0x480]
call qword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [rsp + 0x20]
test al, 0x10
je 0x3226b61
test al, 1
je 0x3226b44
and eax, 0xfffffffe
lea rcx, [rsp + 0x480]
mov edx, eax
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [rsp + 0x20]
lea rcx, [rsp + 0x480]
bt eax, 0xa
jae 0x3226b5a
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x3226b86
call fcn.03226930
jmp 0x3226b86
test al, 5
je 0x3226b78
mov edx, 0x80
lea rcx, [rsp + 0x480]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x480]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x3226a90
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_FindClose]
cmp ebx, 0x12
jne 0x3226bc8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x3226bca
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.03229100
lea r11, [rsp + 0x6a0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
call fcn.03229400
int3