Function at 0x140009430
Capabilities:
Check if file exists
Create directory
Get common file path
Get file attributes

Disassembly:
push rsi
push rdi
push r12
mov eax, 0x1390
call fcn.1400206d0
sub rsp, rax
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x13b8], rbx
mov qword [rsp + 0x13c0], rbp
mov rax, qword [0x140030020]
xor rax, rsp
mov qword [rsp + 0x1380], rax
mov r12, rcx
lea rbp, [rcx + 0x88]
mov qword [rsp + 0x20], rbp
lea r9, [0x1400243d0]
xor edx, edx
lea r8d, [rdx + 0x17]
lea rcx, [0x140024338]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1400094a4
mov eax, 0x80004005
jmp 0x140009b14
lea rax, [rsp + 0x380]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1400099b9
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x380]
repne scasw ax, word [rdi]
not rcx
dec rcx
test ecx, ecx
jne 0x1400094ed
mov qword [rsp + 0x30], rax
jmp 0x140009512
mov edx, ecx
lea rcx, [rsp + 0x380]
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov qword [rsp + 0x30], rax
test rax, rax
jne 0x140009512
mov ecx, 0x8007000e
call fcn.140002460
nop
lea rcx, str.Autodesk
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.Autodesk
lea rcx, [rsp + 0x30]
call fcn.14000c020
test eax, eax
jns 0x14000953f
mov ecx, eax
call fcn.140002460
int3
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
mov rdi, qword [rsp + 0x30]
test rdi, rdi
jne 0x140009568
xor ecx, ecx
mov qword [rsp + 0x160], rcx
jmp 0x14000967f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
add ebx, 1
mov ecx, 0
setns cl
test ecx, ecx
jne 0x14000958d
mov ecx, 0x80070057
call fcn.140002460
int3
lea rax, [rsp + 0x168]
mov rcx, qword [rsp + 0x160]
cmp rcx, rax
je 0x1400095eb
cmp ebx, 0x80
jle 0x1400095d3
movsxd rdx, ebx
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x1400095c9
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x160], rax
jmp 0x140009609
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
jmp 0x140009629
cmp ebx, 0x80
jle 0x140009619
movsxd rcx, ebx
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x160], rax
test rax, rax
jne 0x140009629
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x168]
mov qword [rsp + 0x160], rax
movsxd rdx, ebx
add rdx, rdx
mov r9, rdx
mov r8, rdi
mov rcx, rax
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x140009677
cmp eax, 0xc
je 0x14000966c
cmp eax, 0x16
je 0x140009661
cmp eax, 0x22
je 0x140009661
cmp eax, 0x50
je 0x140009677
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140009994
test al, 0x10
je 0x140009994
test al, 1
jne 0x140009994
lea rcx, str.WebServices
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rdx, str.WebServices
lea rcx, [rsp + 0x30]
call fcn.14000c020
test eax, eax
jns 0x1400096cb
mov ecx, eax
call fcn.140002460
int3
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
mov rdi, qword [rsp + 0x30]
test rdi, rdi
jne 0x1400096f4
xor ecx, ecx
mov qword [rsp + 0x270], rcx
jmp 0x14000980b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
add ebx, 1
mov ecx, 0
setns cl
test ecx, ecx
jne 0x140009719
mov ecx, 0x80070057
call fcn.140002460
int3
lea rax, [rsp + 0x278]
mov rcx, qword [rsp + 0x270]
cmp rcx, rax
je 0x140009777
cmp ebx, 0x80
jle 0x14000975f
movsxd rdx, ebx
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x140009755
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x270], rax
jmp 0x140009795
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
jmp 0x1400097b5
cmp ebx, 0x80
jle 0x1400097a5
movsxd rcx, ebx
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x270], rax
test rax, rax
jne 0x1400097b5
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x278]
mov qword [rsp + 0x270], rax
movsxd rdx, ebx
add rdx, rdx
mov r9, rdx
mov r8, rdi
mov rcx, rax
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x140009803
cmp eax, 0xc
je 0x1400097f8
cmp eax, 0x16
je 0x1400097ed
cmp eax, 0x22
je 0x1400097ed
cmp eax, 0x50
je 0x140009803
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140009962
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
test rdi, rdi
jne 0x140009835
xor ecx, ecx
mov qword [rsp + 0x50], rcx
jmp 0x140009931
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
add ebx, 1
mov ecx, 0
setns cl
test ecx, ecx
jne 0x14000985a
mov ecx, 0x80070057
call fcn.140002460
int3
lea rax, [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
je 0x1400098a9
cmp ebx, 0x80
jle 0x140009897
movsxd rdx, ebx
mov r8d, 2
call qword [sym.imp.MSVCR90.dll__recalloc]
test rax, rax
jne 0x140009890
mov ecx, 0x8007000e
call fcn.140002460
int3
mov qword [rsp + 0x50], rax
jmp 0x1400098c4
call qword [sym.imp.MSVCR90.dll_free]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
jmp 0x1400098de
cmp ebx, 0x80
jle 0x1400098d4
movsxd rcx, ebx
mov edx, 2
call qword [sym.imp.MSVCR90.dll_calloc]
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1400098de
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
movsxd rdx, ebx
add rdx, rdx
mov r9, rdx
mov r8, rdi
mov rcx, rax
call qword [sym.imp.MSVCR90.dll_memcpy_s]
test eax, eax
je 0x14000992c
cmp eax, 0xc
je 0x140009921
cmp eax, 0x16
je 0x140009916
cmp eax, 0x22
je 0x140009916
cmp eax, 0x50
je 0x14000992c
mov ecx, 0x80004005
call fcn.140002460
int3
mov ecx, 0x80070057
call fcn.140002460
int3
mov ecx, 0x8007000e
call fcn.140002460
int3
mov rcx, qword [rsp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x14000994b
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x40]
nop
lea rax, [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
je 0x140009978
call qword [sym.imp.MSVCR90.dll_free]
jmp 0x140009978
test al, 0x10
je 0x140009978
test al, 1
jne 0x140009978
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x40]
nop
lea rax, [rsp + 0x278]
mov rcx, qword [rsp + 0x270]
cmp rcx, rax
je 0x140009994
call qword [sym.imp.MSVCR90.dll_free]
nop
lea rax, [rsp + 0x168]
mov rcx, qword [rsp + 0x160]
cmp rcx, rax
je 0x1400099b0
call qword [sym.imp.MSVCR90.dll_free]
nop
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov edx, 0x186a0
call qword [rax + 0x50]
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov edx, 2
call qword [rax + 0x60]
lea rcx, str.HKEY_CURRENT_USERSoftwareAutodeskWebServices
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rsi, rax
mov qword [rsp + 0x30], rax
test rax, rax
jne 0x1400099fc
mov ecx, 0x8007000e
call fcn.140002460
nop
lea rcx, str.CommCntr
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x140009a21
mov ecx, 0x8007000e
call fcn.140002460
nop
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov r8, rdi
mov rdx, rsi
call qword [rax + 0x78]
test eax, eax
jns 0x140009a6a
mov rcx, qword [rbp]
test rcx, rcx
je 0x140009a4d
mov qword [rbp], 0
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, rsi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, 0x80004005
jmp 0x140009b14
mov rcx, qword [rbp]
mov rax, qword [rcx]
mov edx, reloc.OLEAUT32.dll_SafeArrayDestroy
call qword [rax + 0x70]
mov rcx, qword [r12 + 0x90]
lea rbx, str.Controller
cmp rbx, rcx
je 0x140009ab4
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [r12 + 0x90], rax
test rax, rax
jne 0x140009ab4
mov ecx, 0x8007000e
call fcn.140002460
int3
lea rcx, str.Communication_Center_Starts.
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x140009ad9
mov ecx, 0x8007000e
call fcn.140002460
nop
lea rcx, [r12 + 8]
mov rax, qword [rcx]
mov edx, 1
mov r9, rbx
mov r8, qword [r12 + 0x90]
call qword [rax + 0x50]
nop
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, rsi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor eax, eax
mov rcx, qword [rsp + 0x1380]
xor rcx, rsp
call fcn.14001fb00
lea r11, [rsp + 0x1390]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret