Function at 0x140087d80
Capabilities:
Copy file
Get common file path
Get file attributes
Set file attributes

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x920]
sub rsp, 0xa20
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0xa70], rbx
mov rax, qword [0x1402ba4e0]
xor rax, rsp
mov qword [rbp + 0x910], rax
mov esi, r9d
mov rdi, r8
mov r14, rdx
mov r13, rcx
test rcx, rcx
je 0x140088437
test rdx, rdx
je 0x140088437
test r8, r8
je 0x140088437
mov byte [rbp + 0x1a0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x1a1]
call fcn.14010da60
mov ebx, 1
cmp dword [0x1402c0964], 0
je 0x140087f2a
mov r8d, 0x104
lea rdx, [rbp + 0x1a0]
mov rcx, r14
call fcn.14000b210
mov rdx, qword [0x1402c0418]
lea rcx, [rsp + 0x40]
call fcn.14000f100
nop
mov rcx, r14
lea rdx, [rbp - 0x80]
sub rdx, r14
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
inc rcx
test al, al
jne 0x140087e42
xor esi, esi
mov ecx, esi
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0x1a0]
mov byte [rbp + rcx + 0x84], al
inc rcx
test al, al
jne 0x140087e60
nop word [rax + rax]
xor r8d, r8d
lea rdx, [0x1402c0528]
lea rcx, [rsp + 0x40]
call fcn.1400ce980
mov ebx, eax
cmp eax, 1
je 0x140087ea9
call fcn.14000b060
mov ebx, eax
cmp eax, 1
je 0x140087e80
jmp 0x140087f20
mov rax, qword [r13]
mov edx, 0x400
mov rcx, r13
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, qword [r13 + 0xb0]
mov dword [rcx + 0x69b4], 1
mov rax, qword [r13]
mov edx, 0x400
mov rcx, r13
call qword [rax + 0x30]
cmp dword [rbp + 0x188], esi
je 0x140087f05
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rsi
mov r9d, 1
lea r8, [rbp + 0x1a0]
mov rdx, r14
mov rcx, r13
call fcn.14000d980
mov edx, dword [rbp + 0x18c]
test edx, edx
je 0x140087f17
mov rcx, r13
call fcn.14000b1a0
mov rcx, r14
call fcn.140009ac0
nop
lea rcx, [rsp + 0x40]
jmp 0x14008842e
cmp esi, ebx
jne 0x140088433
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69b4], ebx
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69b8], ebx
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69d4], ebx
mov rax, qword [r13 + 0xb0]
xor esi, esi
mov dword [rax + 0x69c0], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69c4], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69c8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69cc], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x9ca8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69d8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69dc], esi
mov rcx, qword [r13 + 0xb0]
mov eax, dword [0x1402c0634]
mov dword [rcx + 0x69e0], eax
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x6a00], esi
mov rax, qword [r13 + 0xb0]
mov byte [rax + 0x6a04], sil
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x9cac], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x9cb0], esi
mov rax, qword [r13]
mov edx, 0x400
mov rcx, r13
call qword [rax + 0x30]
lea rcx, [rbp + 0x1a0]
sub rcx, rdi
nop word [rax + rax]
movzx eax, byte [rdi]
mov byte [rcx + rdi], al
inc rdi
test al, al
jne 0x140088020
mov byte [rbp + 0x800], sil
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x801]
call fcn.14010da60
xor r8d, r8d
mov edx, 0x104
lea rcx, [rbp + 0x800]
call fcn.14000c570
mov edi, eax
mov rdx, qword [0x1402c0418]
lea rcx, [rsp + 0x40]
call fcn.14007ee60
nop
mov rdx, rsi
nop word [rax + rax]
movzx ecx, byte [rbp + rdx + 0x1a0]
mov byte [rbp + rdx - 0x80], cl
inc rdx
test cl, cl
jne 0x140088080
mov qword [rbp + 0x88], r13
mov eax, esi
test edi, edi
setns al
mov dword [rbp + 0x98], eax
nop word [rax + rax]
xor r8d, r8d
lea rdx, [0x1402c0528]
lea rcx, [rsp + 0x40]
call fcn.1400ce980
mov ebx, eax
cmp eax, 1
je 0x1400880e5
cmp dword [rbp + 0x90], 0
jne 0x1400880db
call fcn.14000b060
mov ebx, eax
cmp ebx, 1
je 0x1400880b0
jmp 0x140088429
mov rcx, qword [r13 + 0xb0]
mov eax, dword [rbp + 0x9c]
mov dword [rcx + 0x69d4], eax
mov rcx, qword [r13 + 0xb0]
mov eax, dword [0x1402c0634]
mov dword [rcx + 0x69e0], eax
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x6a00], esi
mov rax, qword [r13 + 0xb0]
mov byte [rax + 0x6a04], 0
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69b8], 1
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69c0], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69c4], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69c8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69cc], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x9ca8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69d8], esi
mov rax, qword [r13 + 0xb0]
mov dword [rax + 0x69dc], esi
mov rax, qword [r13]
mov edx, 0x403
mov rcx, r13
call qword [rax + 0x30]
mov byte [rbp + 0x6f0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x6f1]
call fcn.14010da60
lea rdx, [rbp + 0x6f0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov byte [rbp + 0x2b0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x2b1]
call fcn.14010da60
mov rdx, rsi
nop dword [rax]
movzx eax, byte [rbp + rdx + 0x1a0]
mov byte [rbp + rdx + 0x2b0], al
inc rdx
test al, al
jne 0x1400881f0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x2b0]
repne scasb al, byte [rdi]
not rcx
sub rcx, 2
cmp rcx, 1
jle 0x140088245
movzx eax, byte [rbp + rcx + 0x2b0]
cmp al, 0x5c
je 0x14008823d
cmp al, 0x2f
je 0x14008823d
dec rcx
cmp rcx, 1
jg 0x140088222
jmp 0x140088245
mov byte [rbp + rcx + 0x2b1], 0
mov byte [rbp + 0x4d0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x4d1]
call fcn.14010da60
mov byte [rbp + 0x3c0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x3c1]
call fcn.14010da60
mov r12, rsi
lea r15, [0x140000000]
mov rcx, rsi
nop dword [rax + rax]
movzx eax, byte [rbp + rcx + 0x6f0]
mov byte [rbp + rcx + 0x4d0], al
inc rcx
test al, al
jne 0x140088290
lea rcx, [rbp + 0x4d0]
call fcn.1400c9bc0
lea rdi, [rbp + 0x4d0]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rdx, qword [r12 + r15 + 0x2b90f8]
xor ecx, ecx
nop dword [rax + rax]
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x1400882d0
mov rcx, rsi
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0x2b0]
mov byte [rbp + rcx + 0x3c0], al
inc rcx
test al, al
jne 0x1400882f0
lea rdi, [rbp + 0x3c0]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rdx, qword [r12 + r15 + 0x2b90d8]
xor ecx, ecx
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x140088320
mov r8d, 1
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x4d0]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add r12, 8
cmp r12, 0x10
jl 0x140088285
mov rdx, r13
lea rcx, [rbp + 0x2b0]
call fcn.140086a90
test eax, eax
je 0x140088429
mov byte [rbp + 0x5e0], 0
xor edx, edx
mov r8d, 0x103
lea rcx, [rbp + 0x5e1]
call fcn.14010da60
nop dword [rax + rax]
movzx eax, byte [rbp + rsi + 0x2b0]
mov byte [rbp + rsi + 0x5e0], al
inc rsi
test al, al
jne 0x1400883b0
lea rcx, [rbp + 0x5e0]
call fcn.1400c9bc0
lea rdi, [rbp + 0x5e0]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
mov rdx, qword [str.eb716setup_stub.bin]
xor ecx, ecx
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x1400883f0
mov dword [rsp + 0x28], 1
lea rax, [rbp + 0x5e0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rbp + 0x1a0]
mov rdx, r14
mov rcx, r13
call fcn.14000d980
nop
lea rcx, [rsp + 0x40]
call fcn.1400ce4b0
mov eax, ebx
jmp 0x14008843c
mov eax, 2
mov rcx, qword [rbp + 0x910]
xor rcx, rsp
call fcn.14010d170
mov rbx, qword [rsp + 0xa70]
add rsp, 0xa20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret