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

Disassembly:
sub esp, 0x18
mov eax, dword [0x546560]
push ebx
lea ecx, [esp + 0x18]
push esi
push ecx
push 0x1a
push 0
mov dword [esp + 0x14], eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jl 0x464f52
mov edx, dword [esp + 0x1c]
push edi
push edx
lea ecx, [esp + 0x18]
call fcn.0050fe10
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
call fcn.00510700
mov ecx, dword [esp + 0xc]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov esi, eax
mov eax, dword [esi]
cmp ecx, eax
je 0x464e8a
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x464e5e
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x464e65
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x464e75
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x14]
call fcn.00405870
jmp 0x464e8a
lea ecx, [esp + 0xc]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x464eb5
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x464eb5
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x464f48
lea edx, [esp + 0x1c]
push edx
call fcn.004b6ee0
mov ecx, dword [esp + 0x10]
mov esi, eax
add esp, 4
mov eax, dword [esi]
cmp ecx, eax
je 0x464f1d
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x464ef1
mov edx, dword [0x546564]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x464ef8
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x464f08
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x14]
call fcn.00405870
jmp 0x464f1d
lea ecx, [esp + 0xc]
call fcn.00412670
mov esi, dword [esi]
mov dword [esp + 0xc], esi
add esi, 0xfffffff4
push esi
call edi
mov eax, dword [esp + 0x1c]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x464f48
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x464f48
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x14]
call fcn.0050fe40
pop edi
mov eax, dword [0x546560]
mov ecx, 0x547308
test ecx, ecx
mov dword [esp + 0xc], eax
je 0x464f9e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x464f9e
push esi
lea ecx, [esp + 0x10]
call fcn.00405530
test eax, eax
je 0x464f9e
mov edx, dword [esp + 0xc]
inc esi
push esi
push 0x547308
push edx
call fcn.00405400
add esp, 0xc
lea ecx, [esp + 0xc]
push 0xffffffffffffffff
call fcn.00405bb0
mov eax, dword [0x546560]
mov dword [esp + 0x10], eax
mov eax, dword [0x55d048]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x10]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x1c]
push edx
call fcn.004059f0
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push eax
call fcn.00405440
lea ecx, [esp + 0x10]
call fcn.00405700
mov eax, dword [esp + 0x18]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x10]
call fcn.00405a90
mov eax, dword [esp + 0x18]
mov ecx, dword [0x546564]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x465017
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x465017
mov eax, dword [esp + 0x18]
add eax, 0xfffffff4
push eax
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x465042
add eax, 0xfffffff4
push eax
call ebx
test eax, eax
jg 0x465042
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 8]
push eax
call fcn.004b8df0
add esp, 4
lea ecx, [esp + 8]
push 0x104
call fcn.00413620
push eax
call fcn.0043cce0
mov esi, dword [esp + 0x28]
add esp, 4
lea ecx, [esp + 8]
push ecx
mov ecx, esi
call fcn.00405440
lea ecx, [esp + 8]
call fcn.00405700
mov eax, esi
pop esi
pop ebx
add esp, 0x18
ret