Function at 0x140074e34
Capabilities:
Copy file

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xf0
mov qword [rbp + 7], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov r14, r8
movsxd rbx, edx
mov rsi, rcx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
xor r12d, r12d
mov qword [rsp + 0x48], r12
lea rcx, [rbp - 0x69]
call fcn.140021cac
nop
imul rcx, rbx, 0x118
mov qword [rbp - 0x79], rcx
mov rdx, qword [rsi + 0x150]
add rdx, rcx
lea r8, [0x1400c8ed0]
lea rcx, [rbp + 0x7f]
call fcn.140068a74
nop
mov qword [rsp + 0x20], r12
lea r8, [0x1400eb52c]
mov rdx, qword [rbp + 0x7f]
lea rcx, [rsp + 0x20]
call qword [sym.imp.MSVCR120.dll__wfopen_s]
mov rdx, qword [rsp + 0x20]
test rdx, rdx
jne 0x140074f7c
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140074f05
or r15d, 0xffffffff
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140074f05
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x140074f25
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x140074f75
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x140074f5d
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x140074f51
mov rcx, qword [r14]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
xor eax, eax
jmp 0x14007566f
xor r8d, r8d
lea rcx, [rbp - 0x69]
call fcn.140021fc8
mov bl, al
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.MSVCR120.dll_fclose]
test bl, bl
jne 0x140075034
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140074fce
or r15d, 0xffffffff
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140074fce
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x140074fee
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x140074f75
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x14007502a
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x14007501e
jmp 0x140074f62
lea rdx, [0x1400c8f90]
lea rcx, [rbp - 0x69]
call fcn.140021304
mov rbx, rax
test rax, rax
jne 0x1400750e7
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140075081
or r15d, 0xffffffff
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140075081
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x1400750a1
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x140074f75
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x1400750dd
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x1400750d1
jmp 0x140074f62
lea rdx, str.FileList
mov rcx, rax
call fcn.140021304
mov rdi, rax
test rax, rax
je 0x140075117
mov rax, qword [rax]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x140075117
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x14007511a
mov rax, r12
test rax, rax
jne 0x140075155
mov ecx, 0x90
call sub.MSVCR120.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov qword [rsp + 0x30], rax
test rax, rax
je 0x140075147
lea rdx, str.FileList
mov rcx, rax
call fcn.140021590
mov rdi, rax
jmp 0x14007514a
mov rdi, r12
mov rdx, rdi
mov rcx, rbx
call fcn.140020fcc
mov r13d, r12d
mov rcx, qword [r14 + 8]
sub rcx, qword [r14]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
or r15d, 0xffffffff
add rdx, rax
je 0x140075466
mov r8, r12
mov rcx, qword [rsi + 0x150]
mov rbx, qword [rcx + 0xe8]
lea r12, [r8 + r8*4]
mov rax, qword [r14]
lea r8, [rax + r12*8]
add rcx, 0xe8
lea rdx, [rbp + 0xf]
call fcn.14007c3ec
cmp qword [rax], rbx
jne 0x140075432
mov ecx, 0x90
call sub.MSVCR120.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov qword [rbp + 0x17], rax
test rax, rax
je 0x1400751e0
lea rdx, str.FileItem
mov rcx, rax
call fcn.140021590
mov rbx, rax
jmp 0x1400751e2
xor ebx, ebx
mov rdx, qword [r14]
mov rdx, qword [rdx + r12*8]
lea rcx, [rsp + 0x38]
call fcn.14006ce24
mov rsi, rax
test rbx, rbx
je 0x140075214
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x28]
test rax, rax
je 0x140075214
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x28]
jmp 0x140075216
xor eax, eax
mov r8, rsi
lea rdx, str.name
mov rcx, rax
call fcn.140021930
mov rdx, qword [r14]
mov rdx, qword [rdx + r12*8 + 0x10]
lea rcx, [rsp + 0x38]
call fcn.14006ce24
mov rsi, rax
test rbx, rbx
je 0x14007525b
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x28]
test rax, rax
je 0x14007525b
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x28]
jmp 0x14007525d
xor eax, eax
mov r8, rsi
lea rdx, [0x1400c8f50]
mov rcx, rax
call fcn.140021930
mov rax, qword [r14]
cmp dword [rax + r12*8 + 0x1c], 0
je 0x1400752b0
test rbx, rbx
je 0x140075298
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x140075298
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x14007529a
xor eax, eax
lea r8, [0x1400c8f6c]
lea rdx, str.optional
mov rcx, rax
call fcn.140021930
test rdi, rdi
je 0x1400752ce
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x1400752ce
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x1400752d0
xor eax, eax
mov rdx, rbx
mov rcx, rax
call fcn.140020fcc
mov rax, qword [r14]
lea rsi, [rax + r12*8]
mov rax, qword [rbp + 0x67]
mov rax, qword [rax + 0x150]
mov rcx, qword [rbp - 0x79]
add rcx, 0xe8
add rcx, rax
mov rdx, rsi
call fcn.140073fa0
mov rbx, rax
mov rdx, rsi
mov rcx, rax
call fcn.140068904
lea rdx, [rsi + 8]
lea rcx, [rbx + 8]
call fcn.140068904
lea rdx, [rsi + 0x10]
lea rcx, [rbx + 0x10]
call fcn.140068904
mov ecx, dword [rsi + 0x18]
mov dword [rbx + 0x18], ecx
mov ecx, dword [rsi + 0x1c]
mov dword [rbx + 0x1c], ecx
lea rdx, [rsi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.140068904
mov rax, qword [r14]
mov rsi, qword [rbp + 0x67]
cmp dword [rax + r12*8 + 0x18], 0
je 0x140075432
mov rdx, qword [rsi + 0x150]
mov rbx, qword [rbp - 0x79]
add rdx, rbx
lea r8, [0x1400c7534]
lea rcx, [rsp + 0x30]
call fcn.140068a74
nop
mov rcx, qword [r14]
lea r8, [rcx + r12*8]
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.140074ae0
nop
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x1400753ba
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x1400753ba
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov rax, qword [r14]
mov r8d, 1
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax + r12*8 + 8]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rax, qword [r14]
lea rdx, [rax + r12*8]
mov rcx, qword [rsi + 0x150]
add rcx, 0xe8
add rcx, rbx
call fcn.140073fa0
lea rcx, [rax + 8]
lea rdx, [rsp + 0x28]
call fcn.140068904
nop
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff4
xor r12d, r12d
cmp rcx, qword [0x140108010]
je 0x140075435
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140075435
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
jmp 0x140075435
xor r12d, r12d
inc r13d
mov r8d, r13d
mov rcx, qword [r14 + 8]
sub rcx, qword [r14]
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8, rdx
jb 0x140075187
lea r8, [0x1400c901c]
mov rdx, qword [rbp + 0x7f]
lea rcx, [rsp + 0x20]
call qword [sym.imp.MSVCR120.dll__wfopen_s]
mov rdx, qword [rsp + 0x20]
test rdx, rdx
jne 0x14007551d
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x1400754b7
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x1400754b7
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x1400754d7
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x140074f75
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x140075513
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x140075507
jmp 0x140074f62
lea rcx, [rbp - 0x69]
call fcn.14002215c
test al, al
jne 0x1400755c1
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x14007555b
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x14007555b
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x14007557b
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x140074f75
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x1400755b7
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x1400755ab
jmp 0x140074f62
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.MSVCR120.dll_fclose]
nop
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x1400755fa
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x1400755fa
mov rcx, qword [rbp + 0x7f]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x69], rax
lea rax, [0x140109f70]
mov rcx, qword [rbp - 0x11]
cmp rcx, rax
je 0x14007561a
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
lea rcx, [rbp - 0x69]
call fcn.140020ed4
nop
lea rcx, [rsp + 0x38]
call fcn.140068890
nop
cmp qword [r14], r12
je 0x14007566a
mov rcx, r14
call qword [sym.imp.MSVCP120.dll_public:_void___cdecl_std::_Container_base0::_Orphan_all_void____ptr64]
mov rdi, qword [r14 + 8]
mov rbx, qword [r14]
jmp 0x140075652
mov rcx, rbx
call fcn.140073858
add rbx, 0x28
cmp rbx, rdi
jne 0x140075646
mov rcx, qword [r14]
call sub.MSVCR120.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], r12
mov eax, 1
mov rbx, qword [rsp + 0x138]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret