Function at 0x40f570
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov r11, rsp
sub rsp, 0x1b8
mov rax, qword [0x00424338]
mov qword [rsp + 0x190], rax
test rcx, rcx
mov qword [r11 + 0x20], rbx
mov qword [r11 - 8], rbp
mov ebp, r8d
mov qword [rsp + 0x40], rdx
mov rbx, rcx
mov qword [rsp + 0x28], rcx
jne 0x40f5ad
xor eax, eax
jmp 0x40f7e2
mov qword [rsp + 0x1a0], rdi
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
dec rcx
cmp rcx, 3
jbe 0x40f7da
test rdx, rdx
je 0x40f5ea
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_strstr]
test rax, rax
je 0x40f7d5
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
mov qword [rsp + 0x1a8], rsi
xor edx, edx
not rcx
mov r8d, 0x140
dec rcx
mov rsi, rcx
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x50]
call sub.msvcrt.dll_memset
lea edi, [rsi + 5]
movsxd rcx, edi
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov r9, rax
mov qword [rsp + 0x20], rax
je 0x40f7c4
test edi, edi
jle 0x40f661
lea ecx, [rsi + 4]
mov rdx, rbx
movsxd r8, ecx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_strncpy]
mov r9, qword [rsp + 0x20]
movsxd rdx, esi
mov byte [rdx + r9 + 4], 0
test edi, edi
jle 0x40f689
lea eax, [rsi + 4]
lea rdx, str..
mov rcx, r9
movsxd r8, eax
call qword [sym.imp.msvcrt.dll_strncat]
mov r9, qword [rsp + 0x20]
movsxd rdx, esi
mov byte [rdx + r9 + 4], 0
lea rdx, [rsp + 0x50]
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0x30], rax
je 0x40f7b9
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40f7ae
nop
cmp byte [rsp + 0x7c], 0x2e
je 0x40f791
xor eax, eax
lea rdi, [rsp + 0x7c]
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
lea edi, [rcx + rsi + 1]
movsxd rsi, edi
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_malloc]
test rax, rax
mov rbx, rax
je 0x40f78c
test edi, edi
mov byte [rax], 0
jle 0x40f74b
mov rdx, qword [rsp + 0x28]
lea ecx, [rdi - 1]
movsxd rdi, ecx
mov rcx, rax
mov r8, rdi
call qword [sym.imp.msvcrt.dll_strncat]
lea rdx, [0x0041d478]
mov r8, rdi
mov rcx, rbx
mov byte [rsi + rbx - 1], 0
call qword [sym.imp.msvcrt.dll_strncat]
lea rdx, [rsp + 0x7c]
mov r8, rdi
mov rcx, rbx
mov byte [rsi + rbx - 1], 0
call qword [sym.imp.msvcrt.dll_strncat]
mov byte [rsi + rbx - 1], 0
test byte [rsp + 0x50], 0x10
je 0x40f772
mov rdx, qword [rsp + 0x40]
mov r8d, ebp
mov rcx, rbx
call fcn.0040f570
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
mov rsi, qword [rsp + 0x38]
jmp 0x40f791
mov edx, ebp
mov rcx, rbx
call fcn.0040ebb0
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
mov rsi, qword [rsp + 0x38]
jmp 0x40f791
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40f6c0
mov rbx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.msvcrt.dll_free]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov rsi, qword [rsp + 0x1a8]
mov eax, 1
mov rdi, qword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1d8]
mov rcx, qword [rsp + 0x190]
call fcn.00419e60
add rsp, 0x1b8
ret