Function at 0x140043198
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, [0x14005a960]
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 0x14004360e
jmp 0x140043215
xor eax, eax
test byte [rbp + 0x40], 0x10
je 0x140043505
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], rax
mov word [rsp + 0x50], ax
cmp word [rbp + 0x6c], ax
jne 0x14004323d
mov r8, rax
jmp 0x14004324e
lea rcx, [rbp + 0x6c]
mov r8, rdx
inc r8
cmp word [rcx + r8*2], ax
jne 0x140043244
lea rdx, [rbp + 0x6c]
lea rcx, [rsp + 0x50]
call fcn.140001b58
nop
lea rdx, [0x140057a04]
lea rcx, [rsp + 0x50]
call fcn.140015344
test al, al
je 0x1400434ef
lea rdx, [0x14005a96c]
lea rcx, [rsp + 0x50]
call fcn.140015344
xor r11d, r11d
test al, al
je 0x1400434ef
movsxd rcx, dword [rbp + 0x2d8]
test ecx, ecx
jle 0x1400434ef
mov rbx, qword [rbp + 0x2d0]
mov rsi, rcx
mov r9, qword [rsp + 0x60]
mov r10, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 8
jb 0x1400432c0
mov r8, qword [rbx]
jmp 0x1400432c3
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 0x1400432f7
movzx eax, word [r8]
cmp word [rcx], ax
jne 0x1400432fb
add rcx, 2
add r8, 2
dec rdx
jne 0x1400432e3
jmp 0x140043304
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x140043307
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 0x1400434d7
lea r8, [0x140057a14]
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.1400121d8
nop
cmp qword [rbp - 0x38], 8
jb 0x140043368
mov rcx, qword [rbp - 0x50]
call fcn.14001e48c
mov qword [rbp - 0x38], 7
xor eax, eax
mov qword [rbp - 0x40], rax
mov word [rbp - 0x50], ax
lea r8, [0x140057a34]
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.1400121d8
nop
lea r8, [0x140057a24]
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.1400153cc
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.1400121d8
nop
cmp qword [rbp + 0x30], 8
jb 0x1400433da
mov rcx, qword [rbp + 0x18]
call fcn.14001e48c
mov qword [rbp + 0x30], 7
xor eax, eax
mov qword [rbp + 0x28], rax
mov word [rbp + 0x18], ax
cmp qword [rbp - 0x58], 8
jb 0x1400433fe
mov rcx, qword [rbp - 0x70]
call fcn.14001e48c
xor eax, eax
mov qword [rbp - 0x58], 7
mov qword [rbp - 0x60], rax
mov word [rbp - 0x70], ax
cmp qword [rbp - 0x78], 8
jb 0x140043421
mov rcx, qword [rsp + 0x70]
call fcn.14001e48c
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.140043198
nop
cmp qword [rsp + 0x48], 8
jb 0x1400434a8
mov rcx, qword [rsp + 0x30]
call fcn.14001e48c
mov qword [rsp + 0x48], 7
xor r11d, r11d
mov qword [rsp + 0x40], r11
mov word [rsp + 0x30], r11w
cmp qword [rbp + 0x10], 8
jb 0x1400434d2
mov rcx, qword [rbp - 8]
call fcn.14001e48c
xor r11d, r11d
mov r9, qword [rsp + 0x60]
add rbx, 0x20
dec rsi
jne 0x1400432b0
mov rbx, qword [rbp - 0x10]
mov rsi, qword [rbp + 0x2c0]
cmp qword [rsp + 0x68], 8
jb 0x1400435e8
mov rcx, qword [rsp + 0x50]
jmp 0x1400435e3
lea r8, [0x140057a44]
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.1400064b0
nop
lea r8, [rbp + 0x6c]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1400153cc
nop
cmp qword [rbp - 0x78], 8
jb 0x14004353c
mov rcx, qword [rsp + 0x70]
call fcn.14001e48c
mov qword [rbp - 0x78], 7
xor eax, eax
mov qword [rbp - 0x80], rax
mov word [rsp + 0x70], ax
lea r8, [0x140057a7c]
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.1400153cc
nop
cmp qword [rbp + 0x10], 8
jb 0x140043589
mov rcx, qword [rbp - 8]
call fcn.14001e48c
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 0x1400435c3
mov rcx, qword [rsp + 0x30]
call fcn.14001e48c
mov qword [rsp + 0x48], 7
xor eax, eax
mov qword [rsp + 0x40], rax
mov word [rsp + 0x30], ax
cmp qword [rbp - 0x58], 8
jb 0x1400435e8
mov rcx, qword [rbp - 0x70]
call fcn.14001e48c
lea rdx, [rbp + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
mov rdx, 0xffffffffffffffff
jne 0x140043213
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rbp - 0x18], 8
jb 0x14004361e
mov rcx, qword [rbp - 0x30]
call fcn.14001e48c
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 0x140043640
mov rcx, qword [rdi]
call fcn.14001e48c
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