Function at 0x1800b6640
Capabilities:
Check if file exists
Copy file
Get common file path
Get file attributes

Disassembly:
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x4b8]
sub rsp, 0x5b8
mov rax, qword [0x18012a010]
xor rax, rsp
mov qword [rbp + 0x4a0], rax
mov r14, rdx
mov rsi, rcx
mov rdx, rcx
mov rdi, r8
lea rcx, [rbp - 0x60]
call fcn.1800c2490
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.1800b6520
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1800b66c2
mov rcx, qword [rbp - 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b66bd
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f89
call fcn.1800cf9b0
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x5b0], r15
call fcn.18008b240
mov rdx, rax
lea rcx, [rbp + 0x80]
call fcn.18008b690
mov rdx, rsi
lea rcx, [rbp + 0x20]
call fcn.1800c2490
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1800b6520
cmp qword [rbp + 0x98], 0x10
lea r8, [rbp + 0x80]
mov r9, qword [rbp + 0x90]
mov rcx, rax
cmovae r8, qword [rbp + 0x80]
call fcn.1800c7240
xor r15d, r15d
lea rdx, [0x18012d018]
lea rcx, [rbp - 0x20]
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
call fcn.1800c2490
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.18008b110
mov rcx, qword [rsp + 0x58]
mov rdx, rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rax + 0x10]
mov rax, rcx
sub rax, r9
cmp r8, rax
jbe 0x1800b67a0
mov rax, qword [rdx + 0x18]
sub rax, r8
cmp rax, r9
jb 0x1800b67a0
cmp rcx, 0x10
lea r8, [rsp + 0x40]
mov rcx, rdx
cmovae r8, qword [rsp + 0x40]
call fcn.1800c7240
jmp 0x1800b67b4
cmp qword [rdx + 0x18], 0x10
jb 0x1800b67aa
mov rdx, qword [rdx]
lea rcx, [rsp + 0x40]
call fcn.1800c22c0
movups xmm0, xmmword [rax]
mov rdx, r14
movups xmmword [rsp + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x30], xmm1
mov byte [rax], r15b
mov qword [rax + 0x18], 0xf
mov qword [rax + 0x10], r15
cmp qword [r14 + 0x18], 0x10
jb 0x1800b67e1
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
lea rcx, [rsp + 0x20]
call fcn.1800c22c0
lea rdx, [0x18012d2d8]
lea rcx, [rbp]
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
call fcn.1800c2490
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.18008b110
mov rcx, qword [rsp + 0x78]
mov rdx, rax
mov r9, qword [rsp + 0x70]
mov r8, qword [rax + 0x10]
mov rax, rcx
sub rax, r9
cmp r8, rax
jbe 0x1800b686c
mov rax, qword [rdx + 0x18]
sub rax, r8
cmp rax, r9
jb 0x1800b686c
cmp rcx, 0x10
lea r8, [rsp + 0x60]
mov rcx, rdx
cmovae r8, qword [rsp + 0x60]
call fcn.1800c7240
jmp 0x1800b6880
cmp qword [rdx + 0x18], 0x10
jb 0x1800b6876
mov rdx, qword [rdx]
lea rcx, [rsp + 0x60]
call fcn.1800c22c0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov byte [rax], r15b
mov qword [rax + 0x18], 0xf
mov qword [rax + 0x10], r15
mov rdx, qword [rsp + 0x78]
movups xmmword [rbp + 0x70], xmm1
movups xmmword [rbp + 0x60], xmm0
cmp rdx, 0x10
jb 0x1800b68db
mov rcx, qword [rsp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b68d6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], r15b
cmp rdx, 0x10
jb 0x1800b692b
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6926
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], r15b
cmp rdx, 0x10
jb 0x1800b697b
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6976
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
mov rdx, qword [rbp - 0x28]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], r15b
cmp rdx, 0x10
jb 0x1800b69c9
mov rcx, qword [rbp - 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b69c4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
mov rdx, qword [rbp - 0x68]
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], r15b
cmp rdx, 0x10
jb 0x1800b6a14
mov rcx, qword [rbp - 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6a0f
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
mov rdx, qword [rbp - 0x48]
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], r15b
cmp rdx, 0x10
jb 0x1800b6a5f
mov rcx, qword [rbp - 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6a5a
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f8f
call fcn.1800cf9b0
lea rdx, [rbp + 0xa0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x50], r15
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], r15b
inc r8
cmp byte [rax + r8], r15b
jne 0x1800b6a92
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x40]
call fcn.1800c2b50
cmp qword [rbp + 0x98], 0x10
lea rdx, [rbp + 0x80]
mov r8, qword [rbp + 0x90]
lea rcx, [rsp + 0x40]
cmovae rdx, qword [rbp + 0x80]
call fcn.1800c22c0
cmp qword [rbp + 0x78], 0x10
lea rdx, [rbp + 0x60]
mov r8, qword [rbp + 0x70]
lea rcx, [rsp + 0x20]
cmovae rdx, qword [rbp + 0x60]
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x30], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
call fcn.1800c22c0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x50], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1800b6b6b
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6b66
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f95
call fcn.1800cf9b0
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], r15b
cmp rdx, 0x10
jb 0x1800b6bbb
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6bb6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f95
call fcn.1800cf9b0
cmp qword [rsi + 0x18], 0x10
mov rcx, rsi
jb 0x1800b6bc8
mov rcx, qword [rsi]
mov qword [rsp + 0x5f8], rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1800b6db3
test al, 0x10
je 0x1800b6db3
lea rdx, [rbp + 0x40]
lea rcx, [rbp]
call fcn.1800c2490
mov rdx, rsi
lea rcx, [rbp - 0x20]
mov rbx, rax
call fcn.1800c2490
mov rcx, rax
mov rdx, rbx
call fcn.18008d6b0
cmp qword [rbp + 0x58], 0x10
lea rcx, [rbp + 0x40]
lea rdx, [0x180118ce0]
cmovae rcx, qword [rbp + 0x40]
call fcn.1800db8c8
test rax, rax
je 0x1800b6db3
mov rcx, rax
call fcn.1800db958
mov rcx, qword [rdi + 0x18]
mov rdx, rdi
cmp rcx, 0x10
jb 0x1800b6c49
mov rdx, qword [rdi]
mov rax, qword [rdi + 0x10]
cmp rax, 1
jne 0x1800b6c88
cmp byte [rdx], 0x30
jne 0x1800b6c88
lea rdx, [rbp + 0x60]
lea rcx, [rbp]
call fcn.1800c2490
lea rdx, [rbp + 0x40]
mov rbx, rax
lea rcx, [rbp - 0x20]
call fcn.1800c2490
mov rcx, rax
mov rdx, rbx
call fcn.18008d990
mov rcx, qword [rdi + 0x18]
mov rax, qword [rdi + 0x10]
mov rdx, rdi
cmp rcx, 0x10
jb 0x1800b6c94
mov rdx, qword [rdi]
cmp rax, 1
jne 0x1800b6da0
cmp byte [rdx], 0x31
jne 0x1800b6da0
lea rcx, [rbp - 0x60]
call fcn.18008d030
cmp qword [rbp + 0x78], 0x10
lea rdx, [rbp + 0x60]
mov r8, qword [rbp + 0x70]
mov rcx, rax
cmovae rdx, qword [rbp + 0x60]
call fcn.1800c22c0
lea rdx, [rsp + 0x20]
mov r8d, 1
lea rcx, [rbp + 0x40]
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x30], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], r15b
cmp qword [rsp + 0x38], 0x10
cmovae rdx, qword [rsp + 0x20]
cmp qword [rbp + 0x58], 0x10
cmovae rcx, qword [rbp + 0x40]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1800b6d52
mov rcx, qword [rsp + 0x20]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6d4d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f7d
call fcn.1800cf9b0
mov rdx, qword [rbp - 0x48]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], r15b
cmp rdx, 0x10
jb 0x1800b6da0
mov rcx, qword [rbp - 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6d9b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f7d
call fcn.1800cf9b0
cmp qword [rbp + 0x58], 0x10
lea rcx, [rbp + 0x40]
cmovae rcx, qword [rbp + 0x40]
call fcn.1800dbb34
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x1800b6dee
mov rcx, qword [rbp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6de9
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f83
call fcn.1800cf9b0
mov rdx, qword [rbp + 0x78]
mov qword [rbp + 0x50], r15
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], r15b
cmp rdx, 0x10
jb 0x1800b6e39
mov rcx, qword [rbp + 0x60]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6e34
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f83
call fcn.1800cf9b0
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1800b6e7a
mov rcx, qword [rbp + 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800b6e75
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800b6f83
call fcn.1800cf9b0
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x1800b6eb4
mov rcx, qword [rsi]
inc rdx
cmp rdx, 0x1000
jb 0x1800b6eaf
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800b6f83
mov rcx, r8
call fcn.1800cf9b0
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], 0xf
mov byte [rsi], r15b
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x1800b6efd
mov rcx, qword [r14]
inc rdx
cmp rdx, 0x1000
jb 0x1800b6ef8
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800b6f83
mov rcx, r8
call fcn.1800cf9b0
mov qword [r14 + 0x10], r15
mov qword [r14 + 0x18], 0xf
mov byte [r14], r15b
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x1800b6f42
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x1800b6f3d
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1800b6f83
mov rcx, r8
call fcn.1800cf9b0
mov rbx, qword [rsp + 0x5f8]
mov qword [rdi + 0x10], r15
mov byte [rdi], r15b
mov r15, qword [rsp + 0x5b0]
mov qword [rdi + 0x18], 0xf
mov rcx, qword [rbp + 0x4a0]
xor rcx, rsp
call fcn.1800cf6f0
add rsp, 0x5b8
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.1800dec10
int3
call fcn.1800dec10
int3
call fcn.1800dec10
int3
call fcn.1800dec10
int3
call fcn.1800dec10
int3