Function at 0x1400707a4
Capabilities:
Copy file

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov r12, r8
movsxd rbx, edx
mov rsi, rcx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
xor r14d, r14d
mov qword [rsp + 0x50], r14
lea rcx, [rsp + 0x60]
call fcn.140021d30
nop
imul rcx, rbx, 0x118
mov qword [rsp + 0x38], rcx
mov rdx, qword [rsi + 0x158]
add rdx, rcx
lea r8, [0x1401216c0]
lea rcx, [rbp + 0x78]
call fcn.1400680f0
nop
mov qword [rsp + 0x20], r14
lea r8, [0x1401523cc]
mov rdx, qword [rbp + 0x78]
lea rcx, [rsp + 0x20]
call fcn.1400d96bc
mov rdx, qword [rsp + 0x20]
test rdx, rdx
jne 0x1400708b5
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x14007086f
or r15d, 0xffffffff
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x14007086f
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
call fcn.1400b0230
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rsp + 0x60], rax
lea rax, [0x1401781c8]
mov rcx, qword [rbp - 0x48]
cmp rcx, rax
je 0x140070890
call fcn.1400b0230
lea rcx, [rsp + 0x60]
call fcn.140020f8c
nop
lea rcx, [rsp + 0x40]
call fcn.140067f00
nop
mov rcx, r12
call fcn.140075df4
xor eax, eax
jmp 0x140070dad
xor r8d, r8d
lea rcx, [rsp + 0x60]
call fcn.140022048
mov bl, al
mov rcx, qword [rsp + 0x20]
call fcn.1400d9814
test bl, bl
je 0x14007083e
lea rdx, [0x140121790]
lea rcx, [rsp + 0x60]
call fcn.1400213ac
mov rbx, rax
test rax, rax
je 0x14007083e
lea rdx, str.FileList
mov rcx, rax
call fcn.1400213ac
mov rdi, rax
test rax, rax
je 0x140070923
mov rax, qword [rax]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x140070923
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140070926
mov rax, r14
test rax, rax
jne 0x140070961
mov ecx, 0x90
call fcn.1400b01ec
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140070953
lea rdx, str.FileList
mov rcx, rax
call fcn.140021638
mov rdi, rax
jmp 0x140070956
mov rdi, r14
mov rdx, rdi
mov rcx, rbx
call fcn.140021074
mov dword [rbp + 0x68], r14d
mov rcx, qword [r12 + 8]
sub rcx, qword [r12]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
or r15d, 0xffffffff
add rdx, rax
je 0x140070c96
mov rax, r14
mov rcx, qword [rsi + 0x158]
mov rbx, qword [rcx + 0xe8]
mov qword [rbp - 0x28], rbx
lea r13, [rax + rax*4]
mov rax, qword [r12]
lea r8, [rax + r13*8]
add rcx, 0xe8
lea rdx, [rbp - 0x20]
call fcn.1400771c4
cmp qword [rax], rbx
jne 0x140070c5b
mov ecx, 0x90
call fcn.1400b01ec
mov qword [rbp - 0x18], rax
test rax, rax
je 0x1400709f4
lea rdx, str.FileItem
mov rcx, rax
call fcn.140021638
mov rbx, rax
jmp 0x1400709f7
mov rbx, r14
mov rdx, qword [r12]
mov rdx, qword [rdx + r13*8]
lea rcx, [rsp + 0x40]
call fcn.14006ba5c
mov rsi, rax
test rbx, rbx
je 0x140070a2a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x140070a2a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x140070a2d
mov rax, r14
mov r8, rsi
lea rdx, str.name
mov rcx, rax
call fcn.1400219cc
mov rdx, qword [r12]
mov rdx, qword [rdx + r13*8 + 0x10]
lea rcx, [rsp + 0x40]
call fcn.14006ba5c
mov rsi, rax
test rbx, rbx
je 0x140070a73
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x140070a73
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x140070a76
mov rax, r14
mov r8, rsi
lea rdx, [0x140121750]
mov rcx, rax
call fcn.1400219cc
mov rax, qword [r12]
cmp dword [rax + r13*8 + 0x1c], r14d
je 0x140070aca
test rbx, rbx
je 0x140070ab1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x140070ab1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x140070ab4
mov rax, r14
lea r8, [0x14012176c]
lea rdx, str.optional
mov rcx, rax
call fcn.1400219cc
test rdi, rdi
je 0x140070ae8
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x140070ae8
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140070aeb
mov rax, r14
mov rdx, rbx
mov rcx, rax
call fcn.140021074
mov rax, qword [r12]
lea rsi, [rax + r13*8]
mov rax, qword [rbp + 0x60]
mov rax, qword [rax + 0x158]
mov rcx, qword [rsp + 0x38]
add rcx, 0xe8
add rcx, rax
mov r8, rsi
lea rdx, [rbp - 0x10]
call fcn.14006e774
mov rbx, qword [rbp - 0x10]
mov rdx, rsi
lea rcx, [rbx + 0x28]
call fcn.140067f7c
lea rdx, [rsi + 8]
lea rcx, [rbx + 0x30]
call fcn.140067f7c
lea rdx, [rsi + 0x10]
lea rcx, [rbx + 0x38]
call fcn.140067f7c
mov eax, dword [rsi + 0x18]
mov dword [rbx + 0x40], eax
mov eax, dword [rsi + 0x1c]
mov dword [rbx + 0x44], eax
lea rdx, [rsi + 0x20]
lea rcx, [rbx + 0x48]
call fcn.140067f7c
mov rax, qword [r12]
mov rsi, qword [rbp + 0x60]
cmp dword [rax + r13*8 + 0x18], r14d
je 0x140070c5b
mov rdx, qword [rsi + 0x158]
mov rbx, qword [rsp + 0x38]
add rdx, rbx
lea r8, [0x1401202e4]
lea rcx, [rsp + 0x30]
call fcn.1400680f0
mov rdx, rax
mov rax, qword [r12]
lea r8, [rax + r13*8]
lea rcx, [rsp + 0x28]
call fcn.1400706e0
nop
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x140070bde
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140070bde
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
call fcn.1400b0230
mov rax, qword [r12]
mov r8d, 1
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax + r13*8 + 8]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rax, qword [r12]
lea r8, [rax + r13*8]
mov rcx, qword [rsi + 0x158]
add rcx, 0xe8
add rcx, rbx
lea rdx, [rbp]
call fcn.14006e774
mov rcx, qword [rbp]
add rcx, 0x30
lea rdx, [rsp + 0x28]
call fcn.140067f7c
nop
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x140070c5b
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140070c5b
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff4
call fcn.1400b0230
mov r8d, dword [rbp + 0x68]
inc r8d
mov dword [rbp + 0x68], r8d
mov rcx, qword [r12 + 8]
sub rcx, qword [r12]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov eax, r8d
cmp rax, rdx
jb 0x140070996
lea r8, [0x14012181c]
mov rdx, qword [rbp + 0x78]
lea rcx, [rsp + 0x20]
call fcn.1400d96bc
mov rdx, qword [rsp + 0x20]
test rdx, rdx
jne 0x140070ccf
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x14007086f
jmp 0x140070853
lea rcx, [rsp + 0x60]
call fcn.1400221d4
test al, al
jne 0x140070d2d
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x140070d0a
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140070d0a
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
call fcn.1400b0230
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rsp + 0x60], rax
lea rax, [0x1401781c8]
mov rcx, qword [rbp - 0x48]
cmp rcx, rax
je 0x140070d8c
call fcn.1400b0230
jmp 0x140070d8c
mov rcx, qword [rsp + 0x20]
call fcn.1400d9814
nop
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140174010]
je 0x140070d65
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140070d65
mov rcx, qword [rbp + 0x78]
add rcx, 0xfffffffffffffff4
call fcn.1400b0230
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rsp + 0x60], rax
lea rax, [0x1401781c8]
mov rcx, qword [rbp - 0x48]
cmp rcx, rax
je 0x140070d86
call fcn.1400b0230
mov r14d, 1
lea rcx, [rsp + 0x60]
call fcn.140020f8c
nop
lea rcx, [rsp + 0x40]
call fcn.140067f00
nop
mov rcx, r12
call fcn.140075df4
mov eax, r14d
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret