Function at 0x40a0b0
Capabilities:
Copy file
Get common file path

Disassembly:
mov rax, rsp
sub rsp, 0x338
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov qword [rax - 8], rbp
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov qword [rax - 0x28], r13
mov qword [rax - 0x30], r14
mov qword [rax - 0x38], r15
mov rax, qword [0x0045c120]
xor rax, rsp
mov qword [rsp + 0x2f0], rax
mov esi, r8d
mov dword [rsp + 0x48], r8d
mov qword [rsp + 0x50], rdx
mov r12, rcx
mov qword [rsp + 0x60], rcx
call fcn.00418ad4
mov rcx, rax
xor eax, eax
test rcx, rcx
setne al
test eax, eax
jne 0x40a129
mov ecx, 0x80004005
call fcn.00401000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
call fcn.00418ad4
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x40a157
mov ecx, 0x80004005
call fcn.00401000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x58], rdi
mov byte [rsp + 0x20], 1
mov edx, 0x104
lea rcx, [rsp + 0x1e0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x40a1e1
lea rcx, str.Error_:_Get_windows_path_error_n
call fcn.00405500
nop
lea rdx, [rdi - 0x18]
mov r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x40a1b6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x40a1d7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0x4e25
jmp 0x40af8e
xor r15d, r15d
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x40], r15
lea r14, [r15 - 1]
test esi, esi
je 0x40af41
nop
nop
mov byte [rsp + 0x21], 0
test r12, r12
je 0x40a29b
xor eax, eax
mov rcx, r14
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
je 0x40a29b
mov esi, dword [rbx - 0x10]
mov rbp, r12
sub rbp, rbx
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ecx
or eax, edx
jge 0x40a251
mov edx, ecx
lea rcx, [rsp + 0x38]
call fcn.00401e90
mov rbx, qword [rsp + 0x38]
cmp rbp, rsi
ja 0x40a26d
movsxd rsi, edi
lea r8, [rbx + rbp]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.00425e30
jmp 0x40a281
movsxd rsi, edi
mov r9, rsi
mov r8, r12
mov rdx, rsi
mov rcx, rbx
call fcn.00425d30
test edi, edi
js 0x40af0e
cmp edi, dword [rbx - 0xc]
jg 0x40af0e
mov dword [rbx - 0x10], edi
mov byte [rsi + rbx], 0
jmp 0x40a2ee
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x40a2ee
cmp dword [rdx + 0x10], 0
jge 0x40a2c4
cmp dword [rbx - 0xc], 0
jl 0x40af19
mov dword [rbx - 0x10], 0
mov byte [rbx], 0
jmp 0x40a2ee
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x40a2dc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
xor eax, eax
mov rcx, r14
lea rdi, [0x00440e0c]
repne scasb al, byte [rdi]
not rcx
lea r13, [rcx - 1]
lea rbp, [0x00440e0c]
lea rsi, [0x00440e0c]
sub rsi, rbx
mov r12d, dword [rbx - 0x10]
lea edi, [r12 + rcx - 1]
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, edx
jge 0x40a33f
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.00401e90
mov rbx, qword [rsp + 0x38]
cmp rsi, r12
ja 0x40a348
lea rbp, [rsi + rbx]
movsxd rdx, r13d
lea rcx, [r12 + rbx]
mov r9, rdx
mov r8, rbp
call fcn.00425d30
test edi, edi
js 0x40af36
cmp edi, dword [rbx - 0xc]
jg 0x40af36
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], 0
imul r15, r15, 0x1cc
mov rcx, qword [rsp + 0x50]
add r15, rcx
jne 0x40a38a
xor ebp, ebp
jmp 0x40a39b
xor eax, eax
mov rcx, r14
mov rdi, r15
repne scasb al, byte [rdi]
not rcx
lea rbp, [rcx - 1]
mov r12, r15
mov rsi, r15
sub rsi, rbx
mov r13d, dword [rbx - 0x10]
lea edi, [r13 + rbp]
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, edx
jge 0x40a3cf
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.00401e90
mov rbx, qword [rsp + 0x38]
cmp rsi, r13
ja 0x40a3d8
lea r12, [rsi + rbx]
movsxd rdx, ebp
lea rcx, [r13 + rbx]
mov r9, rdx
mov r8, r12
call fcn.00425d30
test edi, edi
js 0x40af2b
cmp edi, dword [rbx - 0xc]
jg 0x40af2b
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], 0
lea rdx, [rsp + 0xa0]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov rbp, rax
mov qword [rsp + 0x28], rax
cmp rax, 0xffffffffffffffff
jne 0x40a439
mov rdx, rbx
lea rcx, str.Info__:_fail_to_find_files___s__n
call fcn.00405500
jmp 0x40aee7
xor edi, edi
nop
nop
mov edx, edi
imul rdx, rdx, 0x1cc
lea rax, str.usbser.sys
add rdx, rax
mov rcx, r15
call fcn.00427110
test eax, eax
je 0x40a469
add edi, 1
cmp edi, 1
jb 0x40a440
jmp 0x40a47d
mov rdx, r15
lea rcx, str.Info__:_find_system_driver_files___s__not_Over_write_n
call fcn.00405500
mov byte [rsp + 0x21], 1
mov r10d, 0xf
mov qword [rsp + 0x90], r10
xor r8d, r8d
mov qword [rsp + 0x88], r8
mov byte [rsp + 0x78], r8b
xor eax, eax
mov rcx, r14
lea rdi, [rsp + 0x1e0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
cmp rcx, 0xfffffffffffffffe
jbe 0x40a4cf
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
cmp r10, rdi
jae 0x40a4f3
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
jmp 0x40a524
test rdi, rdi
jne 0x40a524
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rax], dil
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
jmp 0x40a57b
test rdi, rdi
je 0x40a57b
lea rcx, [rsp + 0x78]
cmp r10, 0x10
cmovae rcx, qword [rsp + 0x78]
mov r9, rdi
lea r8, [rsp + 0x1e0]
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rax + rdi], 0
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
lea rdi, [0x004412a8]
lea rsi, [r15 + 0x40]
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
repe cmpsb byte [rsi], byte [rdi]
jne 0x40a59d
cmp byte [rsp + 0x20], 1
jne 0x40a59d
mov eax, 1
jmp 0x40a59f
xor eax, eax
mov r12, qword [rsp + 0x40]
imul r12, r12, 0x1cc
mov rcx, qword [rsp + 0x50]
mov dword [r12 + rcx + 0x1c0], eax
test eax, eax
je 0x40a83e
lea rax, [rsp + 0x78]
mov rcx, qword [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
lea rsi, str._system32
cmp rsi, rax
jb 0x40a74d
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, rsi
jbe 0x40a74d
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov rbp, rsi
sub rbp, rax
cmp r8, rbp
jae 0x40a62d
call fcn.0043dc40
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov rax, r8
sub rax, rbp
mov esi, 9
cmp rax, rsi
cmovb rsi, rax
mov rax, r14
sub rax, r8
cmp rax, rsi
jbe 0x40a653
lea rax, [r8 + rsi]
cmp rax, r8
jae 0x40a66d
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
test rsi, rsi
je 0x40ad9f
lea rdi, [r8 + rsi]
cmp rdi, 0xfffffffffffffffe
jbe 0x40a69a
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rdi
jae 0x40a6c3
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40a6ea
test rdi, rdi
jne 0x40a6ea
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], dil
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
test rdi, rdi
je 0x40ad98
lea rdx, [rsp + 0x78]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [rax + r8]
lea r8, [rdx + rbp]
mov r9, rsi
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rax + rdi], 0
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rax, r14
sub rax, r8
cmp rax, 9
jbe 0x40a762
lea rax, [r8 + 9]
cmp rax, r8
jae 0x40a77c
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
lea rdi, [r8 + 9]
cmp rdi, 0xfffffffffffffffe
jbe 0x40a7a0
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rdi
jae 0x40a7c9
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40a7eb
test rdi, rdi
jne 0x40a7eb
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], dil
jmp 0x40adab
test rdi, rdi
je 0x40adab
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [rax + r8]
mov r9d, 9
mov r8, rsi
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rdi + rax], 0
jmp 0x40adab
lea rbp, [r15 + 0x80]
xor eax, eax
mov rcx, r14
mov rdi, rbp
repne scasb al, byte [rdi]
not rcx
cmp rcx, 1
je 0x40aae9
mov rcx, r14
mov rdi, rbp
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
lea rax, [rsp + 0x78]
mov rcx, qword [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
cmp rbp, rax
jb 0x40a9e9
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, rbp
jbe 0x40a9e9
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub rbp, rax
cmp r8, rbp
jae 0x40a8ce
call fcn.0043dc40
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov rax, r8
sub rax, rbp
cmp rax, rdi
cmovb rdi, rax
mov rax, r14
sub rax, r8
cmp rax, rdi
jbe 0x40a8ef
lea rax, [r8 + rdi]
cmp rax, r8
jae 0x40a909
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
test rdi, rdi
je 0x40ad83
lea rsi, [r8 + rdi]
cmp rsi, 0xfffffffffffffffe
jbe 0x40a936
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rsi
jae 0x40a95f
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40a986
test rsi, rsi
jne 0x40a986
mov qword [rsp + 0x88], rsi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], sil
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
test rsi, rsi
je 0x40ad7c
lea rdx, [rsp + 0x78]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
lea r8, [rdx + rbp]
mov r9, rdi
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rsi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rsi + rax], 0
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rax, r14
sub rax, r8
cmp rax, rdi
jbe 0x40a9fd
lea rax, [r8 + rdi]
cmp rax, r8
jae 0x40aa17
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
test rdi, rdi
je 0x40ad91
lea rsi, [r8 + rdi]
cmp rsi, 0xfffffffffffffffe
jbe 0x40aa44
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rsi
jae 0x40aa6d
mov rdx, rsi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40aa94
test rsi, rsi
jne 0x40aa94
mov qword [rsp + 0x88], rsi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], sil
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
test rsi, rsi
je 0x40ad8a
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
mov r9, rdi
mov r8, rbp
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rsi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rsi + rax], 0
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
lea rax, [rsp + 0x78]
mov rcx, qword [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
lea rsi, str._system32drivers
cmp rsi, rax
jb 0x40ac76
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
add rax, r8
cmp rax, rsi
jbe 0x40ac76
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov rbp, rsi
sub rbp, rax
cmp r8, rbp
jae 0x40ab56
call fcn.0043dc40
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov rax, r8
sub rax, rbp
mov esi, 0x11
cmp rax, rsi
cmovb rsi, rax
mov rax, r14
sub rax, r8
cmp rax, rsi
jbe 0x40ab7c
lea rax, [r8 + rsi]
cmp rax, r8
jae 0x40ab96
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
test rsi, rsi
je 0x40ad75
lea rdi, [r8 + rsi]
cmp rdi, 0xfffffffffffffffe
jbe 0x40abc3
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rdi
jae 0x40abec
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40ac13
test rdi, rdi
jne 0x40ac13
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], dil
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
test rdi, rdi
je 0x40ad6e
lea rdx, [rsp + 0x78]
cmp r10, 0x10
cmovae rdx, rcx
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
lea r8, [rdx + rbp]
mov r9, rsi
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rdi + rax], 0
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rax, r14
sub rax, r8
cmp rax, 0x11
jbe 0x40ac8b
lea rax, [r8 + 0x11]
cmp rax, r8
jae 0x40aca5
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
lea rdi, [r8 + 0x11]
cmp rdi, 0xfffffffffffffffe
jbe 0x40acc9
call fcn.0043db70
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
cmp r10, rdi
jae 0x40acf2
mov rdx, rdi
lea rcx, [rsp + 0x70]
call fcn.00402010
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
jmp 0x40ad19
test rdi, rdi
jne 0x40ad19
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
mov byte [rax], dil
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
test rdi, rdi
je 0x40ada6
lea rax, [rsp + 0x78]
cmp r10, 0x10
cmovae rax, rcx
sub r10, r8
lea rcx, [r8 + rax]
mov r9d, 0x11
mov r8, rsi
mov rdx, r10
call fcn.00425d30
mov qword [rsp + 0x88], rdi
lea rax, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rax, qword [rsp + 0x78]
mov byte [rdi + rax], 0
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
jmp 0x40adab
mov rbp, qword [rsp + 0x28]
mov r8d, 1
lea rdx, [0x00440e0c]
lea rcx, [rsp + 0x70]
call fcn.00403fd0
xor eax, eax
mov rcx, r14
lea rdi, [rsp + 0xcc]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0xcc]
lea rcx, [rsp + 0x70]
call fcn.00403fd0
lea rdx, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae rdx, qword [rsp + 0x78]
movzx edi, byte [rsp + 0x21]
mov r8d, edi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x40ae60
test dil, dil
je 0x40ae29
mov rdx, rbx
lea rcx, str.info:system_driver___s__is_already_exist._n
call fcn.00405500
jmp 0x40ae38
mov rdx, rbx
lea rcx, str.Error_:_Copy__file___s__error._n
call fcn.00405500
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rsp + 0x90], 0x10
jb 0x40aee7
mov rcx, qword [rsp + 0x78]
call fcn.004185a4
jmp 0x40aee7
lea r8, [rsp + 0x78]
cmp qword [rsp + 0x90], 0x10
cmovae r8, qword [rsp + 0x78]
mov rdx, r15
lea rcx, str.Info__:_Copy_file__s__to___s__OK._n
call fcn.00405500
lea rdi, [0x004412a8]
lea rsi, [r15 + 0x40]
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
repe cmpsb byte [rsi], byte [rdi]
jne 0x40aea5
cmp byte [rsp + 0x20], 1
jne 0x40aea5
mov eax, 1
jmp 0x40aea7
xor eax, eax
mov rcx, qword [rsp + 0x50]
mov dword [r12 + rcx + 0x1c0], eax
test eax, eax
je 0x40aec8
mov byte [rsp + 0x20], 0
add dword [rsp + 0x30], 0xffffffff
sub qword [rsp + 0x40], 1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
cmp qword [rsp + 0x90], 0x10
jb 0x40aee7
mov rcx, qword [rsp + 0x78]
call fcn.004185a4
mov r15d, dword [rsp + 0x30]
add r15d, 1
mov dword [rsp + 0x30], r15d
add qword [rsp + 0x40], 1
mov esi, dword [rsp + 0x48]
cmp r15d, esi
jae 0x40af24
mov r12, qword [rsp + 0x60]
jmp 0x40a200
mov ecx, 0x80070057
call fcn.00401000
int3
mov ecx, 0x80070057
call fcn.00401000
int3
mov rdi, qword [rsp + 0x58]
jmp 0x40af41
mov ecx, 0x80070057
call fcn.00401000
int3
mov ecx, 0x80070057
call fcn.00401000
int3
lea rcx, str.Info__:_Copy_file_exit._n
call fcn.00405500
nop
lea rdx, [rdi - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x40af6b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x40af8c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.004252f0
mov rbx, qword [rsp + 0x358]
mov rbp, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x328]
mov rdi, qword [rsp + 0x320]
mov r12, qword [rsp + 0x318]
mov r13, qword [rsp + 0x310]
mov r14, qword [rsp + 0x308]
mov r15, qword [rsp + 0x300]
add rsp, 0x338
ret