Function at 0x140020920
Capabilities:
Check if file exists
Copy file
Create directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push rbp
push rsi
push rdi
push r12
push r15
lea rbp, [rsp - 0x9de0]
mov eax, 0x9ee0
call fcn.1400d76d0
sub rsp, rax
mov rax, qword [0x140317e98]
xor rax, rsp
mov qword [rbp + 0x9db0], rax
mov r12, r8
mov r15, rdx
mov rdi, rcx
xor edx, edx
mov r8d, 0x4e20
lea rcx, [rbp + 0x4f90]
call fcn.1400d9fc0
xor edx, edx
lea rcx, [rbp + 0x170]
mov r8d, 0x4e20
call fcn.1400d9fc0
mov r8, r15
lea rcx, [rbp + 0x4f90]
mov edx, 0x2710
call fcn.1400eac98
lea r8, [0x140246e88]
mov edx, 0x2710
lea rcx, [rbp + 0x4f90]
call fcn.1400eac18
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x4f90]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400209cd
xor eax, eax
jmp 0x140020bb0
mov qword [rsp + 0x9ed0], r14
mov r14d, 1
movaps xmmword [rsp + 0x9ec0], xmm6
movss xmm6, dword [0x140247bc0]
mov qword [rsp + 0x9ed8], rbx
lea rdx, [0x140246ca0]
lea rcx, [rsp + 0x4c]
call fcn.1400ea684
test eax, eax
je 0x140020b67
lea rdx, [0x140246ca4]
lea rcx, [rsp + 0x4c]
call fcn.1400ea684
test eax, eax
je 0x140020b67
mov r8, r15
lea rcx, [rbp + 0x4f90]
mov edx, 0x2710
call fcn.1400eac98
lea r8, [0x140245a90]
mov edx, 0x2710
lea rcx, [rbp + 0x4f90]
call fcn.1400eac18
lea r8, [rsp + 0x4c]
mov edx, 0x2710
lea rcx, [rbp + 0x4f90]
call fcn.1400eac18
mov r8, r12
lea rcx, [rbp + 0x170]
mov edx, 0x2710
call fcn.1400eac98
lea r8, [0x140245a90]
mov edx, 0x2710
lea rcx, [rbp + 0x170]
call fcn.1400eac18
lea r8, [rsp + 0x4c]
mov edx, 0x2710
lea rcx, [rbp + 0x170]
call fcn.1400eac18
test byte [rsp + 0x20], 0x10
je 0x140020afe
lea rcx, [rbp + 0x170]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140020ad8
xor edx, edx
lea rcx, [rbp + 0x170]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x140020bce
lea r8, [rbp + 0x170]
mov rcx, rdi
lea rdx, [rbp + 0x4f90]
call fcn.140020920
test eax, eax
jne 0x140020b67
lea rdx, str.copyFiles_in_copyFiles
jmp 0x140020bde
xor r8d, r8d
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x4f90]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
lea rcx, [rbp + 0x4f90]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test ebx, ebx
je 0x140020bd7
mov eax, dword [rdi + 0xc]
mov rcx, qword [rdi]
inc eax
mov dword [rdi + 0xc], eax
test rcx, rcx
je 0x140020b67
movd xmm0, dword [rdi + 0x10]
xor r9d, r9d
movd xmm1, eax
mov edx, 0x601
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
mulss xmm1, xmm6
cvttss2si eax, xmm1
movsxd r8, eax
call fcn.14003a280
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1400209f3
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0x12
cmovne r14d, ecx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
mov eax, r14d
mov rbx, qword [rsp + 0x9ed8]
mov r14, qword [rsp + 0x9ed0]
movaps xmm6, xmmword [rsp + 0x9ec0]
mov rcx, qword [rbp + 0x9db0]
xor rcx, rsp
call fcn.1400d7670
add rsp, 0x9ee0
pop r15
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, str.CreateDirectory_in_copyFiles
jmp 0x140020bde
lea rdx, str.CopyFile_in_copyFiles
lea r8, [rbp + 0x170]
lea rcx, str._error
call fcn.14002c680
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x140020b98