Function at 0x140045a64
Capabilities:
Copy file
Create directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rax - 0x2b8]
sub rsp, 0x398
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov rsi, rcx
lea r8, [0x14005d7f0]
mov rdx, rcx
lea rcx, [rbp - 0x30]
call fcn.1400064b0
nop
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rcx, qword [rbp - 0x30]
lea rdx, [rbp + 0x40]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rbx, rax
mov qword [rbp - 0x10], rax
xor eax, eax
mov rdi, qword [rbp + 0x2e0]
or rdx, 0xffffffffffffffff
cmp rbx, rdx
je 0x140045eda
jmp 0x140045ae1
xor eax, eax
test byte [rbp + 0x40], 0x10
je 0x140045dd1
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], rax
mov word [rsp + 0x50], ax
cmp word [rbp + 0x6c], ax
jne 0x140045b09
mov r8, rax
jmp 0x140045b1a
lea rcx, [rbp + 0x6c]
mov r8, rdx
inc r8
cmp word [rcx + r8*2], ax
jne 0x140045b10
lea rdx, [rbp + 0x6c]
lea rcx, [rsp + 0x50]
call fcn.140001b58
nop
lea rdx, [0x14005abc4]
lea rcx, [rsp + 0x50]
call fcn.140017788
test al, al
je 0x140045dbb
lea rdx, [0x14005d744]
lea rcx, [rsp + 0x50]
call fcn.140017788
xor r11d, r11d
test al, al
je 0x140045dbb
movsxd rcx, dword [rbp + 0x2d8]
test ecx, ecx
jle 0x140045dbb
mov rbx, qword [rbp + 0x2d0]
mov rsi, rcx
mov r9, qword [rsp + 0x60]
mov r10, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x140045b8c
mov r8, qword [rbx]
jmp 0x140045b8f
mov r8, rbx
lea rcx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rcx, qword [rsp + 0x50]
mov rdx, r10
cmp r9, r10
cmovb rdx, r9
test rdx, rdx
jmp 0x140045bc3
movzx eax, word [r8]
cmp word [rcx], ax
jne 0x140045bc7
add rcx, 2
add r8, 2
dec rdx
jne 0x140045baf
jmp 0x140045bd0
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x140045bd3
mov eax, r11d
movsxd rcx, eax
mov eax, r11d
cmp r9, r10
setne al
cmp r9, r10
mov rdx, 0xffffffffffffffff
cmovb eax, edx
test rcx, rcx
cmovne eax, ecx
test eax, eax
jne 0x140045da3
lea r8, [0x14005abd4]
mov rdx, qword [rbp + 0x2c0]
lea rcx, [rbp - 0x50]
call fcn.1400064b0
nop
lea r8, [rsp + 0x50]
mov rdx, rax
lea rcx, [rbp - 8]
call fcn.14001461c
nop
cmp qword [rbp - 0x38], 8
jb 0x140045c34
mov rcx, qword [rbp - 0x50]
call fcn.1400208dc
mov qword [rbp - 0x38], 7
xor eax, eax
mov qword [rbp - 0x40], rax
mov word [rbp - 0x50], ax
lea r8, [0x14005ac4c]
mov rdx, qword [rbp + 0x2c8]
lea rcx, [rsp + 0x70]
call fcn.1400064b0
nop
lea r8, [rsp + 0x50]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.14001461c
nop
lea r8, [0x14005ac0c]
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.140017810
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14001461c
nop
cmp qword [rbp + 0x30], 8
jb 0x140045ca6
mov rcx, qword [rbp + 0x18]
call fcn.1400208dc
mov qword [rbp + 0x30], 7
xor eax, eax
mov qword [rbp + 0x28], rax
mov word [rbp + 0x18], ax
cmp qword [rbp - 0x58], 8
jb 0x140045cca
mov rcx, qword [rbp - 0x70]
call fcn.1400208dc
xor eax, eax
mov qword [rbp - 0x58], 7
mov qword [rbp - 0x60], rax
mov word [rbp - 0x70], ax
cmp qword [rbp - 0x78], 8
jb 0x140045ced
mov rcx, qword [rsp + 0x70]
call fcn.1400208dc
xor eax, eax
mov qword [rbp - 0x78], 7
mov qword [rbp - 0x80], rax
mov word [rsp + 0x70], ax
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov qword [rbp - 0x38], 7
xor eax, eax
mov qword [rbp - 0x40], rax
mov word [rbp - 0x50], ax
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x50]
call fcn.140001e28
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp + 0x2d8]
mov r8, qword [rbp + 0x2d0]
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 8]
call fcn.140045a64
nop
cmp qword [rsp + 0x48], 8
jb 0x140045d74
mov rcx, qword [rsp + 0x30]
call fcn.1400208dc
mov qword [rsp + 0x48], 7
xor r11d, r11d
mov qword [rsp + 0x40], r11
mov word [rsp + 0x30], r11w
cmp qword [rbp + 0x10], 8
jb 0x140045d9e
mov rcx, qword [rbp - 8]
call fcn.1400208dc
xor r11d, r11d
mov r9, qword [rsp + 0x60]
add rbx, 0x20
dec rsi
jne 0x140045b7c
mov rbx, qword [rbp - 0x10]
mov rsi, qword [rbp + 0x2c0]
cmp qword [rsp + 0x68], 8
jb 0x140045eb4
mov rcx, qword [rsp + 0x50]
jmp 0x140045eaf
lea r8, [0x14005ac5c]
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.1400064b0
nop
lea r8, [rbp + 0x6c]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140017810
nop
cmp qword [rbp - 0x78], 8
jb 0x140045e08
mov rcx, qword [rsp + 0x70]
call fcn.1400208dc
mov qword [rbp - 0x78], 7
xor eax, eax
mov qword [rbp - 0x80], rax
mov word [rsp + 0x70], ax
lea r8, [0x14005ac8c]
mov rdx, qword [rbp + 0x2c8]
lea rcx, [rbp - 8]
call fcn.1400064b0
nop
lea r8, [rbp + 0x6c]
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140017810
nop
cmp qword [rbp + 0x10], 8
jb 0x140045e55
mov rcx, qword [rbp - 8]
call fcn.1400208dc
lea rdx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rdx, qword [rsp + 0x30]
lea rcx, [rbp - 0x70]
cmp qword [rbp - 0x58], 8
cmovae rcx, qword [rbp - 0x70]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
cmp qword [rsp + 0x48], 8
jb 0x140045e8f
mov rcx, qword [rsp + 0x30]
call fcn.1400208dc
mov qword [rsp + 0x48], 7
xor eax, eax
mov qword [rsp + 0x40], rax
mov word [rsp + 0x30], ax
cmp qword [rbp - 0x58], 8
jb 0x140045eb4
mov rcx, qword [rbp - 0x70]
call fcn.1400208dc
lea rdx, [rbp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
mov rdx, 0xffffffffffffffff
jne 0x140045adf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rbp - 0x18], 8
jb 0x140045eea
mov rcx, qword [rbp - 0x30]
call fcn.1400208dc
mov esi, 7
mov qword [rbp - 0x18], rsi
xor ebx, ebx
mov qword [rbp - 0x20], rbx
mov word [rbp - 0x30], bx
cmp qword [rdi + 0x18], 8
jb 0x140045f0c
mov rcx, qword [rdi]
call fcn.1400208dc
mov qword [rdi + 0x18], rsi
mov qword [rdi + 0x10], rbx
mov word [rdi], bx
add rsp, 0x398
pop rdi
pop rsi
pop rbx
pop rbp
ret