Function at 0x1401a4470
Capabilities:
Copy file
Delete directory
Enumerate files on windows
Enumerate files recursively
Get file size
Move file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x818]
sub rsp, 0x918
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rbp + 0x7e0], rax
mov r12, qword [rbp + 0x880]
mov r15d, r8d
mov r13, qword [rbp + 0x890]
mov r14, r9
mov rdi, rdx
mov qword [rsp + 0x50], rcx
mov rbx, rcx
mov r8, rcx
xor esi, esi
lea rcx, [rbp + 0x5d0]
mov edx, 0x104
lea r9, [rsi - 1]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
lea r9, [rsi - 1]
mov edx, 0x104
lea r8, [0x140450db0]
lea rcx, [rbp + 0x5d0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat_s]
cmp r15d, 2
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x5d0]
cmove rdi, rbx
mov qword [rsp + 0x58], rdi
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x1401a4820
mov rbx, qword [rbp + 0x898]
mov rdi, qword [rbp + 0x888]
movaps xmmword [rsp + 0x900], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x8f0], xmm7
movsd xmm7, qword [0x140450f68]
mov edx, 0x2e
cmp dx, word [rbp - 0x74]
jne 0x1401a4574
movzx eax, word [rbp - 0x72]
xor ecx, ecx
cmp cx, ax
je 0x1401a47d7
cmp dx, ax
jne 0x1401a4574
cmp cx, word [rbp - 0x70]
je 0x1401a47d7
mov r8, qword [rsp + 0x50]
lea rcx, [rbp + 0x1b0]
mov r9, 0xffffffffffffffff
mov edx, 0x104
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
mov r9, 0xffffffffffffffff
lea r8, [rbp - 0x74]
mov edx, 0x104
lea rcx, [rbp + 0x1b0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat_s]
mov r8, qword [rsp + 0x58]
lea rcx, [rbp + 0x3c0]
mov r9, 0xffffffffffffffff
mov edx, 0x104
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy_s]
mov r9, 0xffffffffffffffff
lea r8, [rbp - 0x74]
mov edx, 0x104
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat_s]
test byte [rsp + 0x60], 0x10
lea rcx, [rbp + 0x1b0]
je 0x1401a4683
mov r9, 0xffffffffffffffff
lea r8, [0x14044bfc8]
mov edx, 0x104
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat_s]
mov r9, 0xffffffffffffffff
lea r8, [0x14044bfc8]
mov edx, 0x104
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat_s]
cmp r15d, 2
je 0x1401a4651
xor edx, edx
lea rcx, [rbp + 0x3c0]
call sym.ErrorReportClient.exe_SfCreateDirectory
test eax, eax
je 0x1401a4792
mov qword [rsp + 0x38], rbx
lea rdx, [rbp + 0x3c0]
mov qword [rsp + 0x30], r13
lea rcx, [rbp + 0x1b0]
mov qword [rsp + 0x28], rdi
mov r9, r14
mov r8d, r15d
mov qword [rsp + 0x20], r12
call fcn.1401a4470
jmp 0x1401a4762
cmp r15d, 1
jne 0x1401a4778
xor r8d, r8d
lea rdx, [rbp + 0x3c0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x1401a4792
inc dword [r14]
test r13, r13
je 0x1401a47d7
xor eax, eax
lea rcx, [rbp + 0x1b0]
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor edx, edx
mov r8d, r15d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1401a4706
lea rdx, [rsp + 0x44]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rsp + 0x40], eax
mov rcx, rdi
mov rbx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add qword [r12], rbx
mov rax, qword [r12]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp + 0x888]
cvtsi2sd xmm1, rax
mulsd xmm1, xmm7
divsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1401a4731
movaps xmm0, xmm6
jmp 0x1401a4738
movaps xmm0, xmm7
minsd xmm0, xmm1
mov rcx, qword [rbp + 0x898]
lea r8, [rbp + 0x1b0]
movaps xmm1, xmm0
call r13
test eax, eax
js 0x1401a47f0
mov rbx, qword [rbp + 0x898]
mov rdi, qword [rbp + 0x888]
cmp eax, 0x8004e00c
je 0x1401a47f0
test eax, eax
jns 0x1401a47d7
test esi, esi
cmovns esi, eax
jmp 0x1401a47d7
test r15d, r15d
jne 0x1401a47a3
lea r8d, [r15 + 3]
lea rdx, [rbp + 0x3c0]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x1401a479e
test esi, esi
mov eax, 0x8004e009
cmovns esi, eax
jmp 0x1401a47d7
inc dword [r14]
jmp 0x1401a47d7
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov edx, 0x80000000
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 3
lea r8d, [rax + 4]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x1401a47f7
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
lea rdx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x1401a47fc
jmp 0x1401a454b
mov esi, 0x8004e00c
jmp 0x1401a47fc
mov esi, 0x8004e16e
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_FindClose]
movaps xmm7, xmmword [rsp + 0x8f0]
movaps xmm6, xmmword [rsp + 0x900]
test esi, esi
js 0x1401a482e
mov rbx, qword [rsp + 0x50]
test r15d, r15d
jne 0x1401a482e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, esi
mov rcx, qword [rbp + 0x7e0]
xor rcx, rsp
call fcn.14039bbb0
add rsp, 0x918
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret