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

Disassembly:
mov r11, rsp
sub rsp, 0x1b8
mov rax, qword [0x1005d650]
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 0x1003982d
xor eax, eax
jmp 0x10039a62
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 0x10039a5a
test rdx, rdx
je 0x1003986a
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_strstr]
test rax, rax
je 0x10039a55
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 0x10039a44
test edi, edi
jle 0x100398e1
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 0x10039909
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 0x10039a39
lea rdx, [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x10039a2e
nop
cmp byte [rsp + 0x7c], 0x2e
je 0x10039a11
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 0x10039a0c
test edi, edi
mov byte [rax], 0
jle 0x100399cb
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, [0x1004dc18]
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 0x100399f2
mov rdx, qword [rsp + 0x40]
mov r8d, ebp
mov rcx, rbx
call fcn.100397f0
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
mov rsi, qword [rsp + 0x38]
jmp 0x10039a11
mov edx, ebp
mov rcx, rbx
call fcn.10038e30
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
mov rsi, qword [rsp + 0x38]
jmp 0x10039a11
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 0x10039940
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.10044fa0
add rsp, 0x1b8
ret