Function at 0x140003120
Capabilities:
Check if file exists
Create directory
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x900]
sub rsp, 0xa00
mov rax, qword [0x140084a00]
xor rax, rsp
mov qword [rbp + 0x8f0], rax
mov rbx, rcx
xor r15d, r15d
mov r8d, 0x104
lea rdx, [rbp + 0xb0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14000374b
lea rax, [rbp + 0x2c0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14000374b
lea rax, [rbp + 0x4d0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 0x1c]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14000374b
lea rax, [rbp + 0x6e0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 0x23]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x14000374b
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
lea rdx, [rbp + 0x2c0]
lea rcx, [rbp - 0x78]
call fcn.1400038d0
nop
mov rdx, rax
lea rcx, [rbp - 0x10]
call fcn.140003bb0
nop
lea rdx, [rbp + 0x4d0]
lea rcx, [rsp + 0x68]
call fcn.1400038d0
nop
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.140003bb0
nop
lea rdx, [rbp + 0x6e0]
lea rcx, [rsp + 0x48]
call fcn.1400038d0
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.140003bb0
nop
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], r15
lea ecx, [r15 + 0x60]
call fcn.14003cb40
mov rdi, rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rax
lea rcx, [rax + 0x60]
mov qword [rbp + 0x80], rcx
lea rax, [rbp + 0x70]
mov qword [rsp + 0x40], rax
lea rsi, [rbp - 0x10]
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x58], rdi
lea rax, [rbp + 0x70]
mov qword [rbp + 0x60], rax
mov rdx, rsi
mov rcx, rdi
call fcn.140003a10
add rdi, 0x20
mov qword [rbp + 0x58], rdi
add rsi, 0x20
lea rax, [rbp + 0x50]
cmp rsi, rax
jne 0x1400032a5
mov rdx, rdi
mov rcx, rdi
call fcn.140003c80
mov qword [rbp + 0x78], rdi
lea r9, [0x1400037c0]
mov edx, 0x20
lea r8d, [rdx - 0x1d]
lea rcx, [rbp - 0x10]
call fcn.14003cb7c
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 7
jbe 0x140003330
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000332b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000377e
call fcn.14003cc54
movdqa xmm0, xmmword [0x140078b00]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], r15w
mov rdx, qword [rbp - 0x80]
cmp rdx, 7
jbe 0x140003385
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003380
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003784
call fcn.14003cc54
movdqa xmm0, xmmword [0x140078b00]
movdqu xmmword [rsp + 0x78], xmm0
mov word [rsp + 0x68], r15w
mov rdx, qword [rbp - 0x60]
cmp rdx, 7
jbe 0x1400033d9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400033d4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000378a
call fcn.14003cc54
movdqa xmm0, xmmword [0x140078b00]
movdqu xmmword [rbp - 0x68], xmm0
mov word [rbp - 0x78], r15w
xor ecx, ecx
call fcn.140023ebc
mov rcx, rax
call fcn.140023ea4
xor r14b, r14b
mov rsi, r15
mov rdi, qword [rbp + 0x78]
mov rax, rdi
mov rcx, qword [rbp + 0x70]
sub rax, rcx
sar rax, 5
test rax, rax
je 0x1400036ae
movabs r12, 0x7ffffffffffffffe
nop word [rax + rax]
sub rdi, rcx
sar rdi, 5
call fcn.140023e78
cdqe
xor edx, edx
div rdi
shl rdx, 5
add rdx, qword [rbp + 0x70]
lea rcx, [rbp + 0x50]
call fcn.140003a10
nop
lea rcx, [rbp + 0x50]
cmp qword [rbp + 0x68], 7
cmova rcx, qword [rbp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rcx, [rbp + 0x50]
cmp qword [rbp + 0x68], 7
cmova rcx, qword [rbp + 0x50]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edx, 0x5c
lea rcx, [rbp + 0xb0]
call fcn.14003ecb0
lea rdx, [rax + 2]
lea rcx, [rbp + 0x88]
call fcn.1400038d0
nop
mov rax, r12
mov rcx, qword [rbp + 0x60]
sub rax, rcx
cmp rax, 1
jb 0x140003778
lea r9, [rbp + 0x50]
cmp qword [rbp + 0x68], 7
cmova r9, qword [rbp + 0x50]
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x38]
call fcn.140003d20
nop
lea rdx, [rbp + 0x88]
cmp qword [rbp + 0xa0], 7
cmova rdx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x98]
lea rcx, [rbp - 0x38]
call fcn.140003e60
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x48], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 7
mov word [rax], r15w
lea rdx, [rbp - 0x58]
mov rcx, rbx
call fcn.140003830
mov rdx, qword [rbp - 0x40]
cmp rdx, 7
jbe 0x140003573
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000356d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003790
call fcn.14003cc54
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 7
jbe 0x1400035b3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400035ae
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003796
call fcn.14003cc54
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x1400035c0
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140003609
mov rdx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x1400035d8
mov rdx, qword [rbx]
lea rcx, [rbp + 0xb0]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x140003609
mov rcx, rbx
cmp qword [rbx + 0x18], 7
jbe 0x1400035f6
mov rcx, qword [rbx]
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x1400036c0
mov rdx, qword [rbp + 0xa0]
cmp rdx, 7
jbe 0x140003650
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x88]
cmp rdx, 0x1000
mov rax, rcx
jb 0x14000364a
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000379c
call fcn.14003cc54
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 7
jbe 0x140003690
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
cmp rdx, 0x1000
mov rax, rcx
jb 0x14000368b
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400037a2
call fcn.14003cc54
inc rsi
mov rdi, qword [rbp + 0x78]
mov rax, rdi
mov rcx, qword [rbp + 0x70]
sub rax, rcx
sar rax, 5
cmp rsi, rax
jb 0x140003430
lea rcx, [rbp + 0x70]
call fcn.140003b40
movzx eax, r14b
jmp 0x14000374d
mov r14b, 1
mov rdx, qword [rbp + 0xa0]
cmp rdx, 7
jbe 0x14000370a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x88]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003704
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000379c
call fcn.14003cc54
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 7
jbe 0x1400036ae
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003741
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400037a2
call fcn.14003cc54
jmp 0x1400036ae
xor al, al
mov rcx, qword [rbp + 0x8f0]
xor rcx, rsp
call fcn.14003cb20
lea r11, [rsp + 0xa00]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.140003100
nop
call fcn.14002433c
nop
call fcn.14002433c
nop
call fcn.14002433c
nop
call fcn.14002433c
nop
call fcn.14002433c
nop
call fcn.14002433c
nop
call fcn.14002433c
int3