Function at 0x18001e080
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Set file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov rax, qword [0x180185680]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r13d, r8d
mov rbx, rdx
mov rdi, rcx
call fcn.1800f3548
test rax, rax
je 0x18001e7f7
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
xor r15d, r15d
mov rsi, 0xffffffffffffffff
add rax, 0x18
mov qword [rbp - 0x21], rax
test rbx, rbx
je 0x18001e102
cmp rbx, 0x10000
jae 0x18001e0f3
movzx edx, bx
lea rcx, [rbp - 0x21]
call fcn.18000f660
jmp 0x18001e114
mov rax, rsi
inc rax
cmp word [rbx + rax*2], r15w
jne 0x18001e0f6
jmp 0x18001e105
mov eax, r15d
mov r8d, eax
lea rcx, [rbp - 0x21]
mov rdx, rbx
call fcn.180007b10
xor eax, eax
lea rcx, [rbp - 0x19]
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], rax
lea r14d, [rax + 1]
mov qword [rbp - 1], rax
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], rax
call fcn.1800f3bc0
mov dword [rsp + 0x30], r15d
call fcn.1800f3548
test rax, rax
je 0x18001e7f7
mov r8, qword [rax]
mov rcx, rax
mov qword [rsp + 0x148], r12
call qword [r8 + 0x18]
xor r8d, r8d
lea rcx, [rbp - 0x19]
add rax, 0x18
mov rdx, rdi
mov qword [rbp - 0x29], rax
call fcn.1800f3ec8
test eax, eax
je 0x18001e50b
mov r12d, dword [rsp + 0x34]
nop dword [rax + rax]
lea rcx, [rbp - 0x19]
call fcn.1800f41b8
lea rcx, [rbp - 0x19]
mov dword [rsp + 0x34], eax
call fcn.1800f47dc
test eax, eax
jne 0x18001e4f0
mov r8, qword [rbp - 0x19]
lea edx, [rax + 0x10]
lea rcx, [rbp - 0x19]
call qword [r8 + 0x70]
test eax, eax
je 0x18001e576
mov rdi, qword [rbp - 0x21]
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x18001e1dd
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x18001e1f4
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e80d
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r8d, dword [rdi - 0x10]
lea r9, [0x180155ad4]
add rax, 0x18
mov dword [rsp + 0x20], 1
mov rdx, rdi
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
call fcn.18000f130
lea rdx, [rbp - 0x59]
lea rcx, [rbp - 0x19]
call fcn.1800f42bc
mov rbx, qword [rsp + 0x40]
mov r15, rax
mov rcx, qword [rbx - 0x18]
lea r14, [rbx - 0x18]
test rcx, rcx
je 0x18001e253
mov rdx, qword [rcx]
call qword [rdx + 0x20]
test rax, rax
jne 0x18001e26a
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e80d
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r9, qword [r15]
lea rcx, [rsp + 0x48]
mov r8d, dword [rbx - 0x10]
add rax, 0x18
mov qword [rsp + 0x48], rax
mov rdx, rbx
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
call fcn.18000f130
mov rbx, qword [rsp + 0x48]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [rbx - 0x18]
mov ecx, esi
mov r15d, eax
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x18001e2c5
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov eax, esi
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x18001e2de
mov rcx, qword [r14]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x59]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e2fb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test r15d, r15d
jne 0x18001e311
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x18001e7e4
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x18001e325
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x18001e33c
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e802
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r8d, dword [rdi - 0x10]
lea r9, [0x180155ad4]
mov rdx, qword [rbp - 0x21]
lea rcx, [rbp - 0x79]
add rax, 0x18
mov dword [rsp + 0x20], 1
mov qword [rbp - 0x79], rax
call fcn.18000f130
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x19]
call fcn.1800f42bc
mov rbx, qword [rbp - 0x79]
mov r14, rax
mov rcx, qword [rbx - 0x18]
lea rdi, [rbx - 0x18]
test rcx, rcx
je 0x18001e399
mov rdx, qword [rcx]
call qword [rdx + 0x20]
test rax, rax
jne 0x18001e3b0
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e802
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r9, qword [r14]
lea rcx, [rsp + 0x38]
mov r8d, dword [rbx - 0x10]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov rdx, rbx
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
call fcn.18000f130
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x19]
call fcn.1800f4354
mov rbx, rax
mov rcx, qword [rax]
mov rcx, qword [rcx - 0x18]
test rcx, rcx
je 0x18001e405
mov rdx, qword [rcx]
call qword [rdx + 0x20]
test rax, rax
jne 0x18001e41c
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e802
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov rdx, qword [rbx]
lea r9, [0x180155a80]
add rax, 0x18
mov dword [rsp + 0x20], 4
lea rcx, [rbp - 0x71]
mov qword [rbp - 0x71], rax
mov r8d, dword [rdx - 0x10]
call fcn.18000f130
mov rbx, qword [rbp - 0x71]
mov r8d, r13d
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call sym.SafeBase64.dll_CopyFileDirs
mov r14d, eax
lea rdx, [rbx - 0x18]
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
sub ecx, 1
jg 0x18001e47d
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov rdx, qword [rbp - 0x51]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e49a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rsp + 0x38]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e4b8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x18001e4d0
mov rcx, qword [rdi]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x49]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e4ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor r15d, r15d
mov ebx, dword [rsp + 0x30]
cmp dword [rsp + 0x34], 0
jne 0x18001e190
test ebx, ebx
je 0x18001e50b
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdx, qword [rbp - 0x29]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e528
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp - 0x19]
call fcn.1800f3dc8
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x18001e54d
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
mov r12, qword [rsp + 0x148]
mov eax, r14d
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.18010faf0
add rsp, 0xf0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rbx, qword [rbp - 0x21]
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x18001e58e
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x18001e5a5
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e7ec
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r8d, dword [rbx - 0x10]
lea r9, [0x180155ad4]
add rax, 0x18
mov dword [rsp + 0x20], 1
mov rdx, rbx
mov qword [rbp - 0x69], rax
lea rcx, [rbp - 0x69]
call fcn.18000f130
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x19]
call fcn.1800f42bc
mov rbx, qword [rbp - 0x69]
mov rdi, rax
mov rcx, qword [rbx - 0x18]
lea r14, [rbx - 0x18]
test rcx, rcx
je 0x18001e601
mov rdx, qword [rcx]
call qword [rdx + 0x20]
test rax, rax
jne 0x18001e618
call fcn.1800f3548
mov rcx, rax
mov rdx, qword [rax]
call qword [rdx + 0x20]
test rax, rax
je 0x18001e7ec
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
mov r9, qword [rdi]
lea rcx, [rbp - 0x61]
mov r8d, dword [rbx - 0x10]
add rax, 0x18
mov qword [rbp - 0x61], rax
mov rdx, rbx
mov eax, dword [r9 - 0x10]
mov dword [rsp + 0x20], eax
call fcn.18000f130
mov rdx, qword [rbp - 0x61]
mov rbx, qword [rbp - 0x29]
add rbx, 0xffffffffffffffe8
lea rdi, [rdx - 0x18]
cmp rdi, rbx
je 0x18001e6a5
cmp dword [rbx + 0x10], 0
jl 0x18001e698
mov rax, qword [rbx]
cmp qword [rdi], rax
jne 0x18001e698
mov rcx, rdi
call fcn.18000f360
mov r15, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x18001e68b
mov rcx, qword [rbx]
mov rdx, rbx
mov r8, qword [rcx]
call qword [r8 + 8]
lea rax, [r15 + 0x18]
xor r15d, r15d
mov qword [rbp - 0x29], rax
jmp 0x18001e6a5
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x29]
call fcn.180007b10
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x18001e6bd
mov rcx, qword [rdi]
mov rdx, rdi
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, esi
lock xadd dword [r14 + 0x10], eax
sub eax, 1
jg 0x18001e6d6
mov rcx, qword [r14]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp - 0x41]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e6f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rbp - 0x29]
mov edi, r15d
test r13d, r13d
jne 0x18001e730
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
mov r12d, eax
mov eax, 0x80
cmove r12d, eax
test r12b, 1
je 0x18001e730
mov edx, r12d
mov rcx, rbx
and edx, 0xfffffffe
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea edi, [r13 + 1]
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 0x19]
call fcn.1800f4354
mov r8d, r13d
mov rdx, rbx
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rdx, qword [rbp - 0x39]
mov r14d, eax
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e76c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test r14d, r14d
jne 0x18001e7ca
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x19]
call fcn.1800f4354
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdx, qword [rbx]
lea rcx, [0x180155de0]
mov r8d, eax
mov r9d, r13d
call sym.SafeBase64.dll_DbgPrintW
mov rdx, qword [rbp - 0x31]
mov eax, esi
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18001e7b9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [rsp + 0x30], eax
jmp 0x18001e4f4
test edi, edi
je 0x18001e4f0
mov rcx, qword [rbp - 0x29]
mov edx, r12d
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x18001e4f0
xor r14d, r14d
jmp 0x18001e50b
mov ecx, 0x80004005
call fcn.180007f70
int3
mov ecx, 0x80004005
call fcn.180007f70
int3
mov ecx, 0x80004005
call fcn.180007f70
int3
mov ecx, 0x80004005
call fcn.180007f70
int3