Function at 0x1400a8d90
Capabilities:
Check if file exists
Copy file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4b8]
sub rsp, 0x5b8
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x4a0], rax
mov r12, r9
mov r13, r8
mov r14, rdx
mov rbx, rcx
xor r8d, r8d
lea rdx, str.CBaseInfoAddIn::BackupAndRestoreAddInFiles
lea rcx, [rsp + 0x30]
call fcn.1400075a0
nop
mov qword [rsp + 0x20], r13
mov r9, r14
lea r8, str.lpcSrcPath___p__lpcDstPath___p
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.140007780
xor esi, esi
mov r15d, esi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x70], rsi
mov ecx, Ordinal_203
call fcn.1401026a0
test rax, rax
je 0x1400a9388
mov qword [rsp + 0x68], rax
mov qword [rax], rax
mov rax, qword [rsp + 0x68]
mov qword [rax + 8], rax
mov rax, qword [rsp + 0x68]
mov qword [rax + 0x10], rax
mov rax, qword [rsp + 0x68]
mov byte [rax + 0xc0], 1
mov rax, qword [rsp + 0x68]
mov byte [rax + 0xc1], 1
test r14, r14
je 0x1400a92cf
test r13, r13
je 0x1400a92cf
mov r9, r14
lea r8, str._t_t_tsrc_Path__.
lea edx, [rsi + 7]
lea rcx, [rsp + 0x30]
call fcn.140007780
mov r9, r13
lea r8, str._t_t_tdst_Path__.
lea edx, [rsi + 7]
lea rcx, [rsp + 0x30]
call fcn.140007780
mov r11, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [r11 + 0x40]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
cmp rdi, rsi
je 0x1400a8efb
mov rbx, rdi
xor eax, eax
cmp qword [rbx + 0x18], 8
jb 0x1400a8ed6
mov rcx, qword [rbx]
call fcn.1401026ec
xor eax, eax
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], rax
mov word [rbx], ax
add rbx, 0x28
cmp rbx, rsi
jne 0x1400a8ec5
mov rsi, rdi
mov qword [rsp + 0x48], rdi
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1400a919e
xor edi, edi
nop
mov qword [rbp + 0x18], 7
mov qword [rbp + 0x10], rdi
mov word [rbp], di
mov qword [rbp + 0x40], 7
mov qword [rbp + 0x38], rdi
mov word [rbp + 0x28], di
mov qword [rbp + 0x70], 7
mov qword [rbp + 0x68], rdi
mov word [rbp + 0x58], di
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], rdi
mov word [rbp - 0x30], di
mov qword [rbp - 0x40], 7
mov qword [rbp - 0x48], rdi
mov word [rbp - 0x58], di
lea rdx, [rbx + 0x18]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp - 0x30]
call fcn.140001e00
mov edx, 7
lea rcx, [rsp + 0x30]
test r12, r12
jne 0x1400a8f8f
lea esi, [rdx - 6]
lea r8, str._t_t_tAll_Add_in_File_Copy.
jmp 0x1400a8ff0
lea r9, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae r9, qword [rbp - 0x30]
mov qword [rsp + 0x20], r12
lea r8, str._t_t_tstrDriverName___s__lpcDriverName___s_.
call fcn.140007780
lea rcx, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rcx, qword [rbp - 0x30]
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov edx, 7
lea rcx, [rsp + 0x30]
test eax, eax
jne 0x1400a8fe7
lea esi, [rdx - 6]
mov r9, r12
lea r8, str._t_t_tAdd_in_File_Copy_for__s_.
call fcn.140007780
jmp 0x1400a8ff5
mov esi, edi
lea r8, str._t_t_tNot_Add_in_File_Copy.
call fcn.140007780
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbx + 0x40]
lea rcx, [rbp]
call fcn.140001e00
lea rdx, [rbx + 0x68]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp + 0x28]
call fcn.140001e00
mov r11d, dword [rbx + 0x90]
mov dword [rbp + 0x50], r11d
mov eax, dword [rbx + 0x94]
mov dword [rbp + 0x54], eax
lea rdx, [rbx + 0x98]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rbp + 0x58]
call fcn.140001e00
test esi, esi
je 0x1400a9090
mov edi, dword [rbp + 0x50]
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0x58]
lea rcx, [rbp - 0x58]
call fcn.140001e00
cmp edi, 1
jne 0x1400a9090
mov rcx, qword [0x1403b9768]
lea rdx, [rbp - 0x58]
cmp qword [rbp - 0x40], 8
cmovae rdx, qword [rbp - 0x58]
mov rax, qword [rcx]
lea r9d, [rdi + 0x2b]
lea r8, [rsp + 0x40]
call qword [rax + 0x148]
nop
cmp qword [rbp - 0x40], 8
jb 0x1400a90a0
mov rcx, qword [rbp - 0x58]
call fcn.1401026ec
mov qword [rbp - 0x40], 7
xor edi, edi
mov qword [rbp - 0x48], rdi
mov word [rbp - 0x58], di
cmp qword [rbp - 0x18], 8
jb 0x1400a90c2
mov rcx, qword [rbp - 0x30]
call fcn.1401026ec
mov qword [rbp - 0x18], 7
mov qword [rbp - 0x20], rdi
mov word [rbp - 0x30], di
cmp qword [rbp + 0x70], 8
jb 0x1400a90e2
mov rcx, qword [rbp + 0x58]
call fcn.1401026ec
mov qword [rbp + 0x70], 7
mov qword [rbp + 0x68], rdi
mov word [rbp + 0x58], di
cmp qword [rbp + 0x40], 8
jb 0x1400a9102
mov rcx, qword [rbp + 0x28]
call fcn.1401026ec
mov qword [rbp + 0x40], 7
mov qword [rbp + 0x38], rdi
mov word [rbp + 0x28], di
cmp qword [rbp + 0x18], 8
jb 0x1400a9122
mov rcx, qword [rbp]
call fcn.1401026ec
cmp byte [rbx + 0xc1], 0
jne 0x1400a9189
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0xc1], 0
jne 0x1400a9161
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0xc1], 0
jne 0x1400a9189
nop word [rax + rax]
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0xc1], 0
je 0x1400a9150
jmp 0x1400a9189
mov rax, qword [rbx + 8]
cmp byte [rax + 0xc1], 0
jne 0x1400a9186
nop
cmp rbx, qword [rax + 0x10]
jne 0x1400a9186
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0xc1], 0
je 0x1400a9170
mov rbx, rax
cmp rbx, qword [rsp + 0x68]
jne 0x1400a8f10
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov eax, 7
mov qword [rbp - 0x40], rax
xor ecx, ecx
mov qword [rbp - 0x48], rcx
mov word [rbp - 0x58], cx
cmp rdi, rsi
je 0x1400a92be
nop word [rax + rax]
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rdi
lea rcx, [rbp - 0x58]
call fcn.140001e00
lea r11, [rbp - 0x58]
cmp qword [rbp - 0x40], 8
cmovae r11, qword [rbp - 0x58]
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r14
lea r9, [0x1402e3978]
or r8, 0xffffffffffffffff
mov edx, 0x104
lea rcx, [rbp + 0x290]
call fcn.14024679c
lea r11, [rbp - 0x58]
cmp qword [rbp - 0x40], 8
cmovae r11, qword [rbp - 0x58]
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r13
lea r9, [0x1402e3978]
or r8, 0xffffffffffffffff
mov edx, 0x104
lea rcx, [rbp + 0x80]
call fcn.14024679c
lea rcx, [rbp + 0x80]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea r11, [rbp + 0x80]
mov qword [rsp + 0x20], r11
lea r9, [rbp + 0x290]
lea r8, str._t_t_tcopy__s_____s.
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
xor r8d, r8d
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x290]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400a92ab
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str._t_t_tFailed_Copy_File_lastError___08x.
mov edx, 7
lea rcx, [rsp + 0x30]
call fcn.140007780
add rdi, 0x28
cmp rdi, qword [rsp + 0x48]
jne 0x1400a91c0
mov rax, qword [rbp - 0x40]
cmp rax, 8
jb 0x1400a92e1
mov rcx, qword [rbp - 0x58]
call fcn.1401026ec
jmp 0x1400a92e1
mov r15d, 0x80010001
mov dword [0x1403b95bc], 1
jmp 0x1400a92e3
xor esi, esi
mov r9d, r15d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.140007780
nop
mov r8, qword [rsp + 0x68]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x60]
call fcn.1400ac360
nop
mov rcx, qword [rsp + 0x68]
call fcn.1401026ec
nop
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x1400a936a
mov rdi, qword [rsp + 0x48]
cmp rbx, rdi
je 0x1400a9362
cmp qword [rbx + 0x18], 8
jb 0x1400a9345
mov rcx, qword [rbx]
call fcn.1401026ec
mov qword [rbx + 0x18], 7
mov qword [rbx + 0x10], rsi
mov word [rbx], si
add rbx, 0x28
cmp rbx, rdi
jne 0x1400a9336
mov rbx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.1401026ec
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rsi
lea rcx, [rsp + 0x30]
call fcn.140007730
mov eax, r15d
jmp 0x1400a93b5
mov qword [rbp - 0x80], rsi
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x70]
call fcn.140246874
lea r11, vtable.std::bad_alloc.0
mov qword [rbp - 0x70], r11
lea rdx, [0x14038c720]
lea rcx, [rbp - 0x70]
call fcn.14024b7b0
nop
mov rcx, qword [rbp + 0x4a0]
xor rcx, rsp
call fcn.140245660
add rsp, 0x5b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret