Function at 0x1400af0c0
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x14033d010]
xor rax, rsp
mov qword [rbp + 0x108], rax
mov rbx, rdx
mov qword [rsp + 0x50], rdx
mov r15, rcx
xor edi, edi
mov r14d, edi
mov dword [rsp + 0x30], edi
xor r8d, r8d
mov rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.140204560
cmp dword [rax], 1
jbe 0x1400af5b2
xor r8d, r8d
mov rdx, r15
lea rcx, [rbp - 0x58]
call fcn.140204560
cmp dword [rax], 3
jne 0x1400af5b2
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.140204560
mov rcx, rbx
cmp dword [rax], 1
ja 0x1400af60f
xor edx, edx
call fcn.140204080
test al, al
je 0x1400af56c
mov rdx, r15
lea rcx, [rsp + 0x60]
call fcn.14007c030
nop
mov rcx, qword [rsp + 0x60]
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x40], xmm0
psrldq xmm0, 8
movq rdx, xmm0
test rdx, rdx
je 0x1400af19a
mov eax, 1
lock xadd dword [rdx + 8], eax
mov r14d, dword [rsp + 0x30]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x38], xmm0
mov r13d, 0xffffffff
mov rsi, qword [rsp + 0x40]
nop dword [rax]
test rcx, rcx
je 0x1400af4ce
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x1400af4ce
mov rax, qword [rsi + 8]
mov r12, qword [rax - 0x10]
lea rdx, [rbp + 8]
mov rcx, r12
call fcn.140050d50
nop
mov r8, rdi
mov qword [rbp + 0x38], rdi
mov edx, 0xf
mov qword [rbp + 0x40], rdx
mov byte [rbp + 0x28], 0
or r14d, 2
mov dword [rsp + 0x30], r14d
mov r9, qword [r15 + 0x10]
test r9, r9
je 0x1400af239
mov rax, r15
cmp qword [r15 + 0x18], 8
jb 0x1400af20e
mov rax, qword [r15]
lea rdi, [rax + r9*2]
mov rbx, r15
jb 0x1400af21a
mov rbx, qword [r15]
call fcn.140206ff0
mov r9, rax
lea r8, [rbp + 0x28]
mov rdx, rdi
mov rcx, rbx
call fcn.1402052c0
mov rdx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x38]
lea r9, [0x14026d109]
mov qword [rbp - 0x70], r9
mov qword [rbp - 0x68], r9
lea r10, [rbp + 0x28]
cmp rdx, 0x10
cmovae r10, qword [rbp + 0x28]
add r10, r8
lea r11, [rbp + 0x28]
cmp rdx, 0x10
cmovae r11, qword [rbp + 0x28]
mov qword [rbp - 8], r10
lea rcx, [rbp + 8]
mov rbx, qword [rbp + 8]
mov rdi, qword [rbp + 0x20]
cmp rdi, 0x10
cmovae rcx, rbx
add rcx, qword [rbp + 0x18]
lea rdx, [rbp + 8]
cmp rdi, 0x10
cmovae rdx, rbx
cmp rdx, rcx
je 0x1400af2d0
cmp r11, r10
je 0x1400af2d0
mov r8, rdx
mov rax, r11
cmp rdx, rcx
je 0x1400af2bf
cmp rax, r10
je 0x1400af3cd
movzx r9d, byte [rax]
cmp byte [r8], r9b
jne 0x1400af2bf
inc r8
inc rax
cmp r8, rcx
jne 0x1400af2a2
cmp rax, r10
je 0x1400af3cd
inc rdx
cmp rdx, rcx
jne 0x1400af292
xor edi, edi
and r14d, 0xfffffffd
lea rcx, [rbp + 0x28]
call fcn.14004f4d0
mov qword [rbp + 0x78], rdi
mov qword [rbp + 0x80], 7
mov word [rbp + 0x68], di
mov r8, qword [rbp + 0x18]
test r8, r8
je 0x1400af333
lea rbx, [rbp + 8]
cmp qword [rbp + 0x20], 0x10
cmovae rbx, qword [rbp + 8]
add rbx, r8
lea rdi, [rbp + 8]
cmp qword [rbp + 0x20], 0x10
cmovae rdi, qword [rbp + 8]
call fcn.140206ff0
mov r9, rax
lea r8, [rbp + 0x68]
mov rdx, rbx
mov rcx, rdi
call fcn.1402051d0
xor edi, edi
mov rdx, qword [rsp + 0x50]
lea rcx, [rbp + 0x88]
call fcn.140061f70
nop
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x88]
call fcn.1402053f0
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.140061f70
or r14d, 4
mov dword [rsp + 0x30], r14d
lea rcx, [rbp + 0x88]
call fcn.14004f460
nop
lea rcx, [rbp + 0x68]
call fcn.14004f460
xor r8d, r8d
mov rdx, r12
lea rcx, [rbp - 0x48]
call fcn.140204560
lea rdx, [rbp + 0x48]
cmp dword [rax], 3
je 0x1400af431
cmp qword [rbp + 0x60], 8
cmovae rdx, qword [rbp + 0x48]
mov rcx, r12
cmp qword [r12 + 0x18], 8
jb 0x1400af3b5
mov rcx, qword [r12]
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400af413
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1400af415
cmp rdx, r8
je 0x1400af2d0
movaps xmm0, xmmword [rbp - 0x70]
movdqa xmmword [rbp - 0x20], xmm0
lea rax, [rbp + 8]
cmp rdi, 0x10
cmovae rax, rbx
mov rcx, rdx
sub rcx, rax
sub r8, rdx
xor edi, edi
mov qword [rsp + 0x20], rdi
lea r9, [0x14026d109]
mov rdx, rcx
lea rcx, [rbp + 8]
call fcn.1400c8000
jmp 0x1400af2d2
mov eax, edi
lea rcx, str.boost::filesystem::copy_file
mov qword [rsp + 0x20], rcx
lea r8, [rbp + 0x48]
mov rdx, r12
mov ecx, eax
call fcn.140202cc0
jmp 0x1400af44e
xor r8d, r8d
lea rcx, [rbp - 0x40]
call fcn.140204560
cmp dword [rax], 1
ja 0x1400af44e
xor edx, edx
lea rcx, [rbp + 0x48]
call fcn.140204080
nop
lea rcx, [rbp + 0x48]
call fcn.14004f460
nop
lea rcx, [rbp + 8]
call fcn.14004f4d0
mov rcx, rsi
call fcn.14007bd90
mov rcx, rsi
mov rax, qword [rsi + 8]
cmp qword [rsi], rax
jne 0x1400af1b0
mov rsi, rdi
mov qword [rsp + 0x40], rdi
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rdi
test rbx, rbx
je 0x1400af4c6
mov eax, r13d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400af4bc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov eax, r13d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400af4bc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov r14d, dword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov rcx, rdi
jmp 0x1400af1b0
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400af50c
mov eax, r13d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400af50c
mov rbx, qword [rsp + 0x48]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov eax, r13d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400af50c
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rbx, qword [rsp + 0x68]
test rbx, rbx
je 0x1400af542
mov eax, r13d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400af542
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
lock xadd dword [rbx + 0xc], r13d
cmp r13d, 1
jne 0x1400af542
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rcx, qword [rbp + 0x108]
xor rcx, rsp
call fcn.14022d970
mov rbx, qword [rsp + 0x260]
add rsp, 0x210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rdx, [rbp + 0xc8]
mov rcx, rbx
call fcn.140050d50
nop
mov r8, rax
lea rdx, str.Cannot_create_destination_directory
lea rcx, [rbp + 0xa8]
call fcn.140064ac0
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.14007a6c0
lea rdx, [0x140314990]
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rdx, [rbp + 0xc8]
mov rcx, r15
call fcn.140050d50
nop
mov r8, rax
lea rdx, str.Source_directory
lea rcx, [rbp + 0xa8]
call fcn.140064ac0
nop
lea r8, str._does_not_exist_or_is_not_a_directory
mov rdx, rax
lea rcx, [rbp + 0xe8]
call fcn.140064770
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.14007a6c0
lea rdx, [0x140314990]
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
lea rdx, [rbp + 0xe8]
call fcn.140050d50
nop
mov r8, rax
lea rdx, str.Destination_directory
lea rcx, [rbp + 0xa8]
call fcn.140064ac0
nop
lea r8, str._already_exists_or_is_not_empty
mov rdx, rax
lea rcx, [rbp + 0xc8]
call fcn.140064770
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.14007a6c0
lea rdx, [0x140314990]
lea rcx, [rsp + 0x70]
call sub.VCRUNTIME140.dll__CxxThrowException
int3