Function at 0x10050fb0
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10085829
mov eax, dword fs:[0]
push eax
sub esp, 0x690
mov eax, dword [0x100a5c90]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
lea eax, [ebp - 0x218]
push 0
push eax
mov dword [ebp - 4], 0
call fcn.1006b580
push 0x104
lea ecx, [ebp - 0x628]
push 0
push ecx
call fcn.1006b580
add esp, 0x18
xor eax, eax
movzx ecx, word [eax + str._temp_]
mov word [ebp + eax - 0x628], cx
add eax, 2
test cx, cx
jne 0x10051010
mov eax, dword [ebp + 8]
mov ebx, 8
cmp dword [ebp + 0x1c], ebx
jae 0x10051037
lea eax, [ebp + 8]
push 0x208
lea edx, [ebp - 0x218]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10051053
sub eax, edx
sar eax, 1
jne 0x10051083
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x1c], ebx
jae 0x1005106f
lea eax, [ebp + 8]
mov ecx, dword [ebp + 0x18]
push ecx
push eax
lea edx, [ebp - 0x218]
push edx
call fcn.10073cd0
add esp, 0xc
mov esi, dword [0x100aa1c0]
test esi, esi
jne 0x100510bf
push 0x1e8
call fcn.10067232
add esp, 4
mov dword [ebp - 0x69c], eax
mov byte [ebp - 4], 1
test eax, eax
je 0x100510b1
mov ecx, eax
call fcn.10011d60
jmp 0x100510b3
xor eax, eax
mov esi, eax
mov byte [ebp - 4], 0
mov dword [0x100aa1c0], esi
mov eax, dword [esi + 0x1a4]
lea ecx, [esi + 0x194]
push str.microstation
mov edi, 0xc
call fcn.10004240
test eax, eax
jne 0x10051147
lea eax, [ebp - 0x628]
push eax
mov eax, str.NVIDIA_Corpotayion_NV_Cache
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051141
lea ecx, [ebp - 0x218]
push ecx
mov eax, str..toc
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
lea edx, [ebp - 0x218]
push edx
mov eax, str..bin
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051141
cmp dword [ebp + 0x1c], ebx
jb 0x10051137
mov eax, dword [ebp + 8]
push eax
call fcn.10066b10
add esp, 4
mov eax, 1
jmp 0x10051ba9
mov esi, dword [0x100aa1c0]
test esi, esi
jne 0x1005117d
push 0x1e8
call fcn.10067232
add esp, 4
mov dword [ebp - 0x69c], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x1005116f
mov ecx, eax
call fcn.10011d60
jmp 0x10051171
xor eax, eax
mov esi, eax
mov byte [ebp - 4], 0
mov dword [0x100aa1c0], esi
mov eax, dword [esi + 0x1a4]
lea ecx, [esi + 0x194]
push str.idlrt
mov edi, 5
call fcn.10004240
test eax, eax
jne 0x10051232
lea ecx, [ebp - 0x218]
push ecx
mov eax, str.guidos_progs
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
lea edx, [ebp - 0x218]
push edx
mov eax, str.License_cllshm_shmFCUC__GuidosToolbox_license_flexera
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
lea eax, [ebp - 0x218]
push eax
mov eax, str.license
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
lea ecx, [ebp - 0x218]
push ecx
mov eax, str.mspatmp
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
lea edx, [ebp - 0x218]
push edx
mov eax, str.appdata
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051126
mov esi, dword [0x100aa1c0]
test esi, esi
jne 0x10051268
push 0x1e8
call fcn.10067232
add esp, 4
mov dword [ebp - 0x69c], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x1005125a
mov ecx, eax
call fcn.10011d60
jmp 0x1005125c
xor eax, eax
mov esi, eax
mov byte [ebp - 4], 0
mov dword [0x100aa1c0], esi
mov eax, esi
call fcn.100130b0
test eax, eax
je 0x100512db
lea ecx, [ebp - 0x218]
push ecx
mov eax, str.Resource
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100512a7
lea edx, [ebp - 0x628]
push edx
mov eax, str..png
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051764
lea eax, [ebp - 0x218]
push eax
mov eax, str.ProjectionMappingTable
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100512db
lea ecx, [ebp - 0x628]
push ecx
mov eax, str..csv
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051764
call fcn.10001170
lea ecx, [eax + 0x194]
mov eax, dword [ecx + 0x10]
push str.acad
mov edi, 4
call fcn.10004240
test eax, eax
jne 0x1005170b
xor esi, esi
mov edi, 7
xor edx, edx
mov dword [ebp - 0x64c], edi
mov dword [ebp - 0x650], esi
mov word [ebp - 0x660], dx
mov byte [ebp - 4], 4
mov word [ebp - 0x67c], ax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x668], edi
mov dword [ebp - 0x66c], esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x10051340
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x218]
lea esi, [ebp - 0x67c]
call fcn.10003a30
lea ecx, [ebp - 0x660]
push ecx
push 1
mov ecx, esi
mov byte [ebp - 4], 5
call fcn.1001f900
mov ebx, 8
add esp, 8
mov byte [ebp - 4], 4
cmp dword [ebp - 0x668], ebx
jb 0x10051398
mov edx, dword [ebp - 0x67c]
push edx
call fcn.10066b10
add esp, 4
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x628]
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100514d5
lea ecx, [ebp - 0x218]
push ecx
mov eax, str..pfd
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
lea edx, [ebp - 0x218]
push edx
mov eax, str..out
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
lea eax, [ebp - 0x218]
push eax
mov eax, 0x10097654
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
lea ecx, [ebp - 0x218]
push ecx
mov eax, str..cmdline
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
lea edx, [ebp - 0x218]
push edx
mov eax, str.AdskCleanup.0001
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
lea eax, [ebp - 0x218]
push eax
mov eax, str..csa
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051486
sub esp, 0x1c
lea ecx, [ebp - 0x660]
mov esi, esp
lea edi, [eax + 1]
mov dword [ebp - 0x69c], esp
call fcn.100036a0
mov esi, edi
call fcn.10050240
test al, al
je 0x100514d5
mov ecx, dword [ebp - 0x650]
add ecx, 0xffffffe8
cmp ecx, 2
ja 0x100514d5
lea edi, [esi + 6]
cmp dword [ebp - 0x64c], ebx
jb 0x1005149d
mov edx, dword [ebp - 0x660]
push edx
call fcn.10066b10
add esp, 4
xor eax, eax
mov dword [ebp - 0x64c], edi
mov dword [ebp - 0x650], 0
mov word [ebp - 0x660], ax
cmp dword [ebp + 0x1c], ebx
jb 0x10051137
mov ecx, dword [ebp + 8]
push ecx
call fcn.10066b10
add esp, 4
mov eax, 1
jmp 0x10051ba9
push 0x104
lea edx, [ebp - 0x420]
push 0
push edx
call fcn.1006b580
add esp, 0xc
push 0
push 0x23
lea eax, [ebp - 0x420]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x100515e7
lea ecx, [ebp - 0x218]
push ecx
lea eax, [ebp - 0x420]
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100515e7
lea edx, [ebp - 0x218]
push edx
mov eax, str.ADUTProdInd_UserInd.cur
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
lea eax, [ebp - 0x218]
push eax
mov eax, str.AdSSO
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100515e7
lea ecx, [ebp - 0x218]
push ecx
mov eax, str.AdSSOAppState_v2
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
lea edx, [ebp - 0x218]
push edx
mov eax, str.AdSSOAppState_v2.lock
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
lea eax, [ebp - 0x218]
push eax
mov eax, str.AdSSOIpcServers_v2
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
lea ecx, [ebp - 0x218]
push ecx
mov eax, str.AdSSOIpcServers_v2.lock
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
lea edx, [ebp - 0x218]
push edx
mov eax, str.AdSSOQuit_v2_1844
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051759
cmp dword [ebp - 0x650], 3
jae 0x10051617
sub esp, 0x1c
lea ecx, [ebp - 0x660]
mov esi, esp
xor edi, edi
mov dword [ebp - 0x69c], esp
call fcn.100036a0
mov esi, edi
call fcn.10050240
test al, al
jne 0x10051759
mov eax, 0x1008da28
lea ecx, [ebp - 0x698]
call fcn.100036d0
mov bl, 6
mov byte [ebp - 4], bl
cmp dword [ebp - 0x650], 3
jbe 0x10051669
push 3
xor ecx, ecx
lea esi, [ebp - 0x67c]
lea edx, [ebp - 0x660]
call fcn.10009bd0
mov edi, eax
lea esi, [ebp - 0x698]
mov byte [ebp - 4], 7
call fcn.100037e0
lea ecx, [ebp - 0x67c]
mov byte [ebp - 4], bl
call fcn.10003710
cmp dword [ebp - 0x688], 0
mov esi, 8
je 0x100516a1
mov eax, dword [ebp - 0x698]
cmp dword [ebp - 0x684], esi
jae 0x1005168b
lea eax, [ebp - 0x698]
push eax
mov eax, 0x10097788
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x1005174e
mov eax, dword [ebp - 0x660]
cmp dword [ebp - 0x64c], esi
jae 0x100516b5
lea eax, [ebp - 0x660]
push eax
mov eax, str._addwfpdk
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x1005174e
mov eax, dword [ebp - 0x660]
cmp dword [ebp - 0x64c], esi
jae 0x100516df
lea eax, [ebp - 0x660]
push eax
mov eax, str.ProdInd_UserDep.cur
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x1005174e
lea ecx, [ebp - 0x698]
call fcn.10003710
lea ecx, [ebp - 0x660]
mov byte [ebp - 4], 0
call fcn.10003710
call fcn.10001170
call fcn.10012910
test eax, eax
je 0x100517af
mov ecx, str.NUL:
lea eax, [ebp - 0x218]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10051776
test dx, dx
je 0x1005174a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10051776
add eax, 4
add ecx, 4
test dx, dx
jne 0x10051728
xor eax, eax
jmp 0x1005177b
lea ecx, [ebp - 0x698]
call fcn.10003710
lea ecx, [ebp - 0x660]
call fcn.10003710
lea ecx, [ebp + 8]
call fcn.10003710
mov eax, 1
jmp 0x10051ba9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10051764
lea eax, [ebp - 0x218]
push eax
mov eax, str.Documents0_Report
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100517af
lea ecx, [ebp - 0x218]
push ecx
mov eax, str..rpt
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051764
push 0x104
lea edx, [ebp - 0x420]
push 0
push edx
call fcn.1006b580
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x630], 7
mov dword [ebp - 0x634], 0
mov word [ebp - 0x644], ax
push eax
push 0x1c
lea ecx, [ebp - 0x420]
push ecx
mov byte [ebp - 4], 8
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push eax
call edi
test eax, eax
je 0x10051a95
lea eax, [ebp - 0x420]
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10051810
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x420]
lea esi, [ebp - 0x644]
call fcn.10003a30
call fcn.10001170
call fcn.10012c80
test eax, eax
je 0x1005189b
mov edx, esi
push edx
mov eax, str.MicrosoftWindowsTemporary_Internet_FilesContent.MSO
call fcn.10005b30
mov eax, dword [ebp - 0x644]
mov esi, 8
cmp dword [ebp - 0x630], esi
jae 0x10051865
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100518a0
lea edx, [ebp - 0x218]
push edx
mov eax, str..emf
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100518a0
lea ecx, [ebp - 0x644]
jmp 0x1005175f
mov esi, 8
call fcn.10001170
mov ecx, eax
call fcn.10013260
test eax, eax
je 0x10051927
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x420]
call fcn.10003740
lea ecx, [ebp - 0x644]
push ecx
mov eax, str.Temp
call fcn.10005b30
lea edx, [ebp - 0x644]
push edx
mov eax, str.SolidDocuments
call fcn.10005b30
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x100518f8
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051927
lea edx, [ebp - 0x218]
push edx
mov eax, str..tmp
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
call fcn.10001170
mov ecx, eax
call fcn.10012ee0
test eax, eax
jne 0x10051947
call fcn.10001170
mov ecx, eax
call fcn.10013000
test eax, eax
je 0x100519ad
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x420]
call fcn.10003740
lea ecx, [ebp - 0x644]
push ecx
mov eax, str.Temp
call fcn.10005b30
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x1005197e
lea eax, [ebp - 0x644]
lea edx, [ebp - 0x218]
push edx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x100519ad
lea eax, [ebp - 0x218]
push eax
mov eax, str..tmp
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
call fcn.10001170
call fcn.100132f0
test eax, eax
je 0x10051a1a
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x100519cf
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051a1a
lea edx, [ebp - 0x218]
push edx
mov eax, str..tmp
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
lea eax, [ebp - 0x218]
push eax
mov eax, str..csa
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
call fcn.10001170
call fcn.10011f80
test eax, eax
je 0x10051a9a
lea ecx, [ebp - 0x644]
push ecx
lea eax, [ebp - 0x420]
call fcn.10003740
lea edx, [ebp - 0x644]
push edx
mov eax, str.ESRI
call fcn.10005b30
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x10051a5f
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051a9a
lea edx, [ebp - 0x218]
push edx
mov eax, str..newcfg
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051a9a
lea ecx, [ebp - 0x644]
jmp 0x1005175f
mov esi, 8
push 0
push 0x1a
lea eax, [ebp - 0x420]
push eax
push 0
call edi
test eax, eax
je 0x10051b23
lea ecx, [ebp - 0x644]
push ecx
lea eax, [ebp - 0x420]
call fcn.10003740
call fcn.10001170
mov ecx, eax
call fcn.10012eb0
test eax, eax
je 0x10051b23
lea edx, [ebp - 0x644]
push edx
mov eax, str.CorelCorelDRAW9_default
call fcn.10005b30
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x10051af4
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
je 0x10051b23
lea edx, [ebp - 0x218]
push edx
mov eax, str..cfg
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
push 0
push 0x1c
lea eax, [ebp - 0x420]
push eax
push 0
call edi
test eax, eax
je 0x10051b94
lea ecx, [ebp - 0x644]
push ecx
lea eax, [ebp - 0x420]
call fcn.10003740
lea edx, [ebp - 0x644]
push edx
mov eax, str.AdobeAcrobat10.0Cache
call fcn.10005b30
call fcn.10001170
mov ecx, eax
call fcn.10013000
test eax, eax
je 0x10051b94
mov eax, dword [ebp - 0x644]
cmp dword [ebp - 0x630], esi
jae 0x10051b7d
lea eax, [ebp - 0x644]
lea ecx, [ebp - 0x218]
push ecx
call fcn.100263b0
add esp, 4
test eax, eax
jne 0x10051890
lea ecx, [ebp - 0x644]
call fcn.10003710
lea ecx, [ebp + 8]
call fcn.10003710
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10066b1b
mov esp, ebp
pop ebp
ret 0x1c