Function at 0x14007453c
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 - 0x48]
sub rsp, 0x148
mov r12, r8
movsxd rbx, edx
mov rsi, rcx
xor r14d, r14d
mov r13d, r14d
mov dword [rbp + 0x98], r14d
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r14
lea rcx, [rbp - 0x70]
call fcn.140025968
nop
imul rcx, rbx, 0x118
mov qword [rsp + 0x48], rcx
mov rdx, qword [rsi + 0x150]
add rdx, rcx
lea r8, [0x1400b8640]
lea rcx, [rsp + 0x30]
call fcn.140074458
nop
mov qword [rsp + 0x38], r14
lea r8, [0x1400db91c]
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen_s]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
jne 0x1400745f8
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x1400ef010]
je 0x140074af6
or r15d, 0xffffffff
jmp 0x140074ad9
xor r8d, r8d
lea rcx, [rbp - 0x70]
call fcn.140025c4c
mov bl, al
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test bl, bl
je 0x1400745d9
lea rdx, [0x1400b8710]
lea rcx, [rbp - 0x70]
call fcn.140025014
mov rbx, rax
test rax, rax
je 0x1400745d9
lea rdx, str.FileList
mov rcx, rax
call fcn.140025014
mov rdi, rax
test rax, rax
je 0x140074660
mov rax, qword [rax]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x140074660
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
jne 0x140074698
mov ecx, 0x90
call fcn.1400b0a08
mov qword [rbp + 0xa8], rax
test rax, rax
je 0x14007468a
lea rdx, str.FileList
mov rcx, rax
call fcn.1400252a0
mov rdi, rax
jmp 0x14007468d
mov rdi, r14
mov rdx, rdi
mov rcx, rbx
call fcn.140024cf4
mov dword [rbp + 0xa8], 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 0x140074a99
mov rcx, r14
mov r9, qword [rsi + 0x150]
add r9, 0xe8
mov qword [rsp + 0x70], r9
mov rax, qword [r9]
mov qword [rsp + 0x40], rax
lea rsi, [rcx + rcx*4]
mov qword [rsp + 0x60], rsi
mov rax, qword [r12]
lea rax, [rax + rsi*8]
mov qword [rsp + 0x68], rax
mov r8, rax
lea rdx, [rbp + 8]
mov rcx, r9
call fcn.1400721bc
mov rbx, qword [rbp + 0x18]
cmp byte [rbx + 0x19], r14b
jne 0x140074730
mov rdx, qword [rbx + 0x20]
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
test eax, eax
jns 0x140074738
mov rbx, qword [rsp + 0x70]
mov rbx, qword [rbx]
cmp rbx, qword [rsp + 0x40]
jne 0x140074a51
mov ecx, 0x90
call fcn.1400b0a08
mov qword [rbp], rax
test rax, rax
je 0x14007476a
lea rdx, str.FileItem
mov rcx, rax
call fcn.1400252a0
mov rbx, rax
jmp 0x14007476d
mov rbx, r14
mov rdx, qword [r12]
mov rdx, qword [rdx + rsi*8]
lea rcx, [rsp + 0x78]
call fcn.1400703ac
mov qword [rsp + 0x40], rax
test rbx, rbx
je 0x1400747a2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x1400747a2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x1400747a5
mov rax, r14
mov r8, qword [rsp + 0x40]
lea rdx, str.name
mov rcx, rax
call fcn.14002560c
mov rdx, qword [r12]
mov rdx, qword [rdx + rsi*8 + 0x10]
lea rcx, [rsp + 0x78]
call fcn.1400703ac
mov qword [rsp + 0x40], rax
test rbx, rbx
je 0x1400747ef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x1400747ef
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x1400747f2
mov rax, r14
mov r8, qword [rsp + 0x40]
lea rdx, [0x1400b86d0]
mov rcx, rax
call fcn.14002560c
mov rax, qword [r12]
cmp dword [rax + rsi*8 + 0x1c], r14d
je 0x140074848
test rbx, rbx
je 0x14007482f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test rax, rax
je 0x14007482f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x140074832
mov rax, r14
lea r8, [0x1400b86ec]
lea rdx, str.optional
mov rcx, rax
call fcn.14002560c
test rdi, rdi
je 0x140074866
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
test rax, rax
je 0x140074866
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x28]
jmp 0x140074869
mov rax, r14
mov rdx, rbx
mov rcx, rax
call fcn.140024cf4
mov rax, qword [r12]
lea rsi, [rax + rsi*8]
mov rax, qword [rbp + 0x90]
mov rax, qword [rax + 0x150]
mov rcx, qword [rsp + 0x48]
add rcx, 0xe8
add rcx, rax
mov r8, rsi
lea rdx, [rbp + 0x20]
call fcn.140072314
mov rbx, qword [rax]
mov rdx, rsi
lea rcx, [rbx + 0x28]
call fcn.14006c8f4
lea rdx, [rsi + 8]
lea rcx, [rbx + 0x30]
call fcn.14006c8f4
lea rdx, [rsi + 0x10]
lea rcx, [rbx + 0x38]
call fcn.14006c8f4
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.14006c8f4
mov rax, qword [r12]
mov rsi, qword [rsp + 0x60]
cmp dword [rax + rsi*8 + 0x18], r14d
je 0x140074a51
mov rax, qword [rbp + 0x90]
mov rbx, qword [rax + 0x150]
mov rax, qword [0x1400ef018]
mov qword [rsp + 0x58], rax
or r13d, 2
mov dword [rbp + 0x98], r13d
lea rcx, [0x1400b8094]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rbx]
lea rdx, [0x1400b8094]
mov qword [rsp + 0x20], rdx
mov r9d, eax
mov r8, rcx
mov edx, dword [rcx - 8]
lea rcx, [rsp + 0x58]
call fcn.14006ccd0
mov rcx, qword [r12]
mov rax, qword [0x1400ef018]
mov qword [rsp + 0x50], rax
or r13d, 4
mov dword [rbp + 0x98], r13d
mov rax, qword [rcx + rsi*8]
mov qword [rsp + 0x20], rax
mov r9d, dword [rax - 8]
mov rbx, qword [rsp + 0x58]
mov r8, rbx
mov edx, dword [rbx - 8]
lea rcx, [rsp + 0x50]
call fcn.14006ccd0
and r13d, 0xfffffffd
mov dword [rbp + 0x98], r13d
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x1400ef010]
je 0x1400749c4
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x1400749bd
call fcn.1400b0a54
mov r13d, dword [rbp + 0x98]
mov rcx, qword [r12]
mov r8d, 1
mov rbx, qword [rsp + 0x50]
mov rdx, rbx
mov rcx, qword [rcx + rsi*8 + 8]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rax, qword [r12]
lea r8, [rax + rsi*8]
mov rsi, qword [rbp + 0x90]
mov rcx, qword [rsp + 0x48]
add rcx, 0xe8
add rcx, qword [rsi + 0x150]
lea rdx, [rbp + 0x30]
call fcn.140072314
mov rcx, qword [rax]
add rcx, 0x30
lea rdx, [rsp + 0x50]
call fcn.14006c8f4
and r13d, 0xfffffffb
mov dword [rbp + 0x98], r13d
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x1400ef010]
je 0x140074a58
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140074a48
call fcn.1400b0a54
mov r13d, dword [rbp + 0x98]
jmp 0x140074a58
mov rsi, qword [rbp + 0x90]
mov r8d, dword [rbp + 0xa8]
inc r8d
mov dword [rbp + 0xa8], 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 ecx, r8d
cmp rcx, rdx
jb 0x1400746d0
lea r8, [0x1400b879c]
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen_s]
mov rdx, qword [rsp + 0x38]
test rdx, rdx
je 0x140074ac7
lea rcx, [rbp - 0x70]
call fcn.140025dc4
test al, al
jne 0x140074b18
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x1400ef010]
je 0x140074af6
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140074af6
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
call fcn.1400b0a54
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x70], rax
lea rax, [0x1400f0ec0]
mov rcx, qword [rbp - 0x18]
cmp rcx, rax
je 0x140074b79
call fcn.1400b0a54
jmp 0x140074b79
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
nop
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x1400ef010]
je 0x140074b53
mov eax, r15d
lock xadd dword [rcx], eax
add eax, r15d
test eax, eax
jg 0x140074b53
mov rcx, qword [rsp + 0x30]
add rcx, 0xfffffffffffffff4
call fcn.1400b0a54
nop
lea rax, vtable.TiXmlDocument.0
mov qword [rbp - 0x70], rax
lea rax, [0x1400f0ec0]
mov rcx, qword [rbp - 0x18]
cmp rcx, rax
je 0x140074b73
call fcn.1400b0a54
mov r14d, 1
lea rcx, [rbp - 0x70]
call fcn.140024c0c
nop
lea rcx, [rsp + 0x78]
call fcn.14006c87c
nop
mov rcx, r12
call fcn.14007a4b4
mov eax, r14d
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret