Function at 0x14002c520
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov r14, rdx
mov r13, rcx
xor edi, edi
mov qword [rbp - 0x41], rdi
mov r12d, 0xffffffff
mov dword [rbp - 0x39], r12d
mov qword [rbp - 0x31], rdi
lea rax, vtable.JROwnedPtrArray_class_JRMoveCopyDirectory::CItem__0_.0
mov qword [rbp - 0x49], rax
mov byte [rbp - 0x29], 1
mov byte [rbp - 0x21], dil
lea rax, [rbp + 0x17]
mov qword [rbp - 0x11], rax
lea rcx, [rbp + 0x17]
call fcn.14000bff0
mov rbx, rax
mov rdx, r13
lea rcx, [rbp - 0x19]
call fcn.14000bff0
nop
mov r9b, 1
mov r8, rbx
mov rdx, rax
lea rcx, [rbp - 0x49]
call fcn.14004f2c0
nop
cmp byte [rbp - 0x21], dil
je 0x14002c5ba
xor sil, sil
jmp 0x14002c758
mov byte [rbp - 0x21], 1
mov ecx, dword [rbp - 0x41]
mov sil, 1
test ecx, ecx
je 0x14002c758
mov ebx, edi
jle 0x14002c61d
mov r14, rdi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rbp - 0x31]
mov r15, qword [r14 + rax]
cmp dword [r15], 1
jne 0x14002c613
lea rdx, [r15 + 0x10]
lea rcx, [rbp - 0x11]
call fcn.14000bff0
mov rcx, rax
call fcn.14002b330
mov byte [r15 + 0x18], al
movzx esi, sil
test al, al
cmove esi, edi
mov ecx, dword [rbp - 0x41]
inc ebx
add r14, 8
cmp ebx, ecx
jl 0x14002c5e0
mov r15d, edi
test ecx, ecx
jle 0x14002c678
mov r14, rdi
nop word [rax + rax]
mov rax, qword [rbp - 0x31]
mov r9, qword [r14 + rax]
lea rbx, [r9 + 0x18]
cmp dword [r9], 0
jne 0x14002c65d
xor r8d, r8d
mov rdx, qword [r9 + 0x10]
mov rcx, qword [r9 + 8]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
setne al
mov byte [rbx], al
mov ecx, dword [rbp - 0x41]
mov edx, edi
movzx eax, sil
cmp byte [rbx], dil
cmovne edx, eax
inc r15d
add r14, 8
movzx esi, dl
cmp r15d, ecx
jl 0x14002c630
mov qword [rbp - 1], rdi
xorps xmm0, xmm0
movdqu xmmword [rbp + 7], xmm0
lea rax, vtable.JRStringUniqueList_class_JRString__0_.0
mov qword [rbp - 9], rax
test ecx, ecx
jle 0x14002c6c6
mov rbx, rdi
nop word [rax + rax]
mov rax, qword [rbp - 0x31]
mov rcx, qword [rbx + rax]
lea r8, [rbp + 0x7f]
mov rdx, qword [rcx + 0x10]
lea rcx, [rbp - 9]
call fcn.14000e7b0
inc edi
lea rbx, [rbx + 8]
mov ecx, dword [rbp - 0x41]
cmp edi, ecx
jl 0x14002c6a0
lea eax, [rcx - 1]
movsxd rdi, eax
test eax, eax
js 0x14002c718
mov rax, qword [rbp - 0x31]
mov rbx, qword [rax + rdi*8]
cmp byte [rbx + 0x18], 0
je 0x14002c712
xor r8d, r8d
mov rdx, qword [rbx + 8]
lea rcx, [rbp - 9]
call fcn.14000e8f0
test rax, rax
jne 0x14002c712
mov eax, dword [rbx]
cmp eax, 1
jne 0x14002c705
mov rcx, qword [rbx + 8]
call fcn.14002cbc0
jmp 0x14002c712
test eax, eax
jne 0x14002c712
lea rcx, [rbx + 8]
call fcn.14002ddb0
sub rdi, 1
jns 0x14002c6d0
lea rax, vtable.JRMap_class_JRString__wchar_t_const____ptr64__int__int__0_.0
mov qword [rbp - 9], rax
lea rcx, [rbp - 9]
call fcn.140042920
lea rax, vtable.JRMapBase.0
mov qword [rbp - 9], rax
mov rcx, qword [rbp + 0xf]
call fcn.14008d9d8
mov rcx, qword [rbp + 7]
test rcx, rcx
je 0x14002c754
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
nop
mov r14, qword [rbp + 0x6f]
lea rax, vtable.JROwnedPtrArray_class_JRMoveCopyDirectory::CItem__0_.0
mov qword [rbp - 0x49], rax
lea rcx, [rbp - 0x49]
call fcn.14004fc30
nop
lea rax, vtable.JRCoreArray_class_JRMoveCopyDirectory::CItem____ptr64__class_JRMoveCopyDirectory::CItem____ptr64__0_.0
mov qword [rbp - 0x49], rax
lea rcx, [rbp - 0x49]
call fcn.14004fc30
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14002c7b3
mov eax, dword [rdx + 0x10]
cmp eax, 0xffffffff
je 0x14002c7a9
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002c7b3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [r14]
sub rdx, 0x18
mov eax, dword [rdx + 0x10]
cmp eax, 0x7ffffc17
je 0x14002c7e2
mov ecx, dword [rdx + 0x10]
cmp ecx, 0xffffffff
je 0x14002c7d8
lock xadd dword [rdx + 0x10], r12d
sub r12d, 1
jg 0x14002c7e2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
movzx eax, sil
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret