Function at 0x1400021f0
Capabilities:
Create directory
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x140042080]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
mov r14, rcx
lea rdx, [rbp + 0xa0]
mov ecx, 0xff
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
xor r15d, r15d
test eax, eax
je 0x1400027e8
mov rdx, 0xffffffffffffffff
mov qword [rbp + 0x90], r15
mov rbx, rdx
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], r15b
lea rax, [rbp + 0xa0]
nop
inc rbx
cmp byte [rax + rbx], r15b
jne 0x140002270
cmp rbx, 0xf
ja 0x1400022b0
mov r8, rbx
mov qword [rbp + 0x90], rbx
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x80]
call fcn.14000d100
mov byte [rbp + rbx + 0x80], r15b
mov rdi, qword [rbp + 0x80]
jmp 0x140002351
movabs rsi, 0x7fffffffffffffff
cmp rbx, rsi
ja 0x14000286b
mov rax, rbx
or rax, 0xf
cmp rax, rsi
ja 0x1400022de
mov ecx, 0x16
mov rsi, rax
cmp rax, rcx
cmovb rsi, rcx
lea rax, [rsi + 1]
cmp rax, 0x1000
jb 0x140002311
lea rcx, [rax + 0x27]
cmp rcx, rax
cmovbe rcx, rdx
call fcn.14000b994
test rax, rax
je 0x14000285f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140002326
test rax, rax
je 0x140002323
mov rcx, rax
call fcn.14000b994
mov rdi, rax
jmp 0x140002326
mov rdi, r15
mov r8, rbx
mov qword [rbp + 0x90], rbx
lea rdx, [rbp + 0xa0]
mov qword [rbp + 0x98], rsi
mov rcx, rdi
call fcn.14000d100
mov byte [rdi + rbx], r15b
mov qword [rbp + 0x80], rdi
mov rdx, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x90]
mov rax, rdx
sub rax, rcx
cmp rax, 0xe
jb 0x1400023a3
cmp rdx, 0x10
lea rax, [rcx + 0xe]
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x90], rax
cmovae rbx, rdi
lea rdx, str.CreativeCloud
add rbx, rcx
mov r8d, 0xe
mov rcx, rbx
call fcn.14000d100
mov byte [rbx + 0xe], r15b
jmp 0x1400023c4
lea r9, str.CreativeCloud
mov qword [rsp + 0x20], 0xe
mov edx, 0xe
lea rcx, [rbp + 0x80]
call fcn.140009110
cmp qword [rbp + 0x98], 0x10
lea rcx, [rbp + 0x80]
cmovae rcx, qword [rbp + 0x80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x1400023f8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400027ab
mov rdx, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x90]
mov rax, rdx
sub rax, rcx
cmp rax, 0x19
jb 0x14000244e
cmp rdx, 0x10
lea rax, [rcx + 0x19]
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x90], rax
cmovae rbx, qword [rbp + 0x80]
lea rdx, str.Creative_Cloud_Libraries
add rbx, rcx
mov r8d, 0x19
mov rcx, rbx
call fcn.14000d100
mov byte [rbx + 0x19], r15b
jmp 0x14000246f
lea r9, str.Creative_Cloud_Libraries
mov qword [rsp + 0x20], 0x19
mov edx, 0x19
lea rcx, [rbp + 0x80]
call fcn.140009110
cmp qword [rbp + 0x98], 0x10
lea rcx, [rbp + 0x80]
cmovae rcx, qword [rbp + 0x80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x1400024a3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400027ab
mov rdx, qword [rbp + 0x98]
mov rcx, qword [rbp + 0x90]
mov rax, rdx
sub rax, rcx
cmp rax, 0x17
jb 0x1400024f9
cmp rdx, 0x10
lea rax, [rcx + 0x17]
lea rbx, [rbp + 0x80]
mov qword [rbp + 0x90], rax
cmovae rbx, qword [rbp + 0x80]
lea rdx, str.CC_Library_Process.log
add rbx, rcx
mov r8d, 0x17
mov rcx, rbx
call fcn.14000d100
mov byte [rbx + 0x17], r15b
jmp 0x14000251a
lea r9, str.CC_Library_Process.log
mov qword [rsp + 0x20], 0x17
mov edx, 0x17
lea rcx, [rbp + 0x80]
call fcn.140009110
lea rax, [0x14003d8d8]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x38]
lea rax, [0x14003d800]
lea rcx, [rsp + 0x30]
mov qword [rbp - 0x28], rax
call fcn.140006ba0
mov rax, qword [rsp + 0x30]
lea rdi, [0x14003d958]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x30], rdi
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [0x14003d8e0]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x2c], edx
mov ecx, 0x10
mov qword [rsp + 0x38], rax
call fcn.14000b994
mov cl, 1
mov rbx, rax
call fcn.14000a6ac
mov qword [rbx + 8], rax
lea rdx, [rbp + 0x80]
cmp qword [rbp + 0x98], 0x10
lea rax, [0x14003d860]
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x30]
cmovae rdx, qword [rbp + 0x80]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x48]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
lea rax, [rbp - 0x80]
mov qword [rbp - 0x78], rax
lea rax, [rbp - 0x7c]
mov qword [rbp - 0x70], rax
mov rax, qword [0x140044700]
mov qword [rbp - 0x54], rax
mov qword [rbp - 0x68], rbx
mov byte [rbp - 0x4c], r15b
mov byte [rbp - 0x56], r15b
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x68], r15
mov qword [rbp - 0x80], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x60], r15
mov qword [rbp - 0x48], r15
mov qword [rbp - 0x60], r15
call fcn.1400066c0
lea rcx, [rbp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [rbp + 0x70]
lea rcx, [rsp + 0x30]
call fcn.140004bd0
mov rcx, rax
lea rdx, [0x14003d58c]
call fcn.140007fe0
movzx edx, word [rbp + 0x72]
mov rcx, rax
call fcn.140004bd0
mov rcx, rax
lea rdx, [0x14003d58c]
call fcn.140007fe0
movzx edx, word [rbp + 0x76]
mov rcx, rax
call fcn.140004bd0
mov rcx, rax
lea rdx, [0x14003d58c]
call fcn.140007fe0
movzx edx, word [rbp + 0x78]
mov rcx, rax
call fcn.140004bd0
mov rcx, rax
lea rdx, [0x14003d588]
call fcn.140007fe0
mov rcx, rax
movzx edx, word [rbp + 0x7a]
call fcn.140004bd0
mov rcx, rax
lea rdx, [0x14003d588]
call fcn.140007fe0
movzx edx, word [rbp + 0x7c]
mov rcx, rax
call fcn.140004bd0
mov rcx, rax
lea rdx, str._CCLibrariesNative:
call fcn.140007fe0
cmp qword [r14 + 0x18], 8
mov rdx, r14
jb 0x1400026e3
mov rdx, qword [r14]
lea rcx, [rsp + 0x30]
call fcn.140008410
mov rcx, rax
lea rdx, [0x14003d590]
call fcn.140007fe0
lea rcx, [rsp + 0x30]
call fcn.140004b00
lea rcx, [rsp + 0x38]
call fcn.140006ad0
test rax, rax
jne 0x140002747
mov rax, qword [rsp + 0x30]
mov edx, 2
movsxd rcx, dword [rax + 4]
mov eax, 6
cmp qword [rsp + rcx + 0x78], r15
cmovne eax, edx
mov edx, dword [rsp + rcx + 0x44]
or eax, dword [rsp + rcx + 0x40]
and eax, 0x17
mov dword [rsp + rcx + 0x40], eax
and edx, eax
jne 0x140002871
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x30], rdi
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x2c], edx
lea rcx, [rsp + 0x38]
call fcn.140004a50
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [0x14003d840]
mov qword [rsp + rcx + 0x30], rax
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [0x14003d838]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x2c], edx
lea rcx, [rbp - 0x28]
mov qword [rbp - 0x28], rax
call fcn.14000abb0
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1400027e8
mov rcx, qword [rbp + 0x80]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400027e3
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000285f
call fcn.14000b9d0
mov rdx, qword [r14 + 0x18]
cmp rdx, 8
jb 0x140002823
mov rcx, qword [r14]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000281e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140002865
mov rcx, r8
call fcn.14000b9d0
mov qword [r14 + 0x10], r15
mov qword [r14 + 0x18], 7
mov word [r14], r15w
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.14000b970
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.14000fb0c
int3
call fcn.14000fb0c
int3
call fcn.140009860
int3
test dl, 4
je 0x14000287f
lea rbx, str.ios_base::badbit_set
jmp 0x140002894
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
lea rcx, [rbp + 0x40]
call fcn.140001ca0
mov r8, rax
lea rcx, [rbp + 0x50]
mov rdx, rbx
call fcn.1400020e0
mov rcx, rax
call fcn.140001100
int3