Function at 0x40de15
Capabilities:
Get common file path
Query environment variable
Set environment variable

Disassembly:
mov eax, 0x4ff90e
call fcn.004af370
push ecx
mov eax, 0x1134
call fcn.004aeb50
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
call fcn.004d41f0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 4], edi
call fcn.0042260c
test eax, eax
pop ecx
je 0x40de78
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x20]
push eax
call fcn.004028b4
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
jmp 0x40e12f
mov ecx, dword [ebp - 0x20]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.0040141b
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x28]
push eax
push 0x540c40
push 0x15
push edi
push 0x505800
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, edi
jl 0x40dede
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0040d8be
mov eax, 0x70000
cmp dword [ebp - 0x1c], eax
pop ecx
pop ecx
jl 0x40dede
jne 0x40e136
cmp dword [ebp - 0x14], 0x200000
jge 0x40e136
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x14], edi
call fcn.004d40c0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x504c24
mov dword [ebp - 4], 1
push 0x504c20
mov byte [ebp - 4], 2
call fcn.00404edf
add esp, 0x10
mov dword [ebp - 0x14], eax
jmp 0x40df21
or dword [ebp - 4], 0xffffffff
call fcn.004d4100
cmp dword [ebp - 0x14], edi
je 0x40e136
lea eax, [ebp - 0x14]
push eax
call fcn.00402a49
push dword [eax]
mov esi, str.SUPPORT
push str.MSVCRT.DLL
push 0x50597c
push esi
mov dword [ebp - 4], 4
call fcn.0040dd11
mov ecx, dword [ebp - 0x14]
add esp, 0x14
mov ebx, eax
neg ebx
sbb bl, bl
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
inc bl
call fcn.0040141b
test bl, bl
jne 0x40e028
push 0x14
push 2
push str.OLEAUT32.DLL
push 0x505968
push esi
call fcn.0040d9af
add esp, 0x14
test eax, eax
je 0x40e028
push 0x105
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004af490
add esp, 0xc
push 0x104
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x144]
push eax
call fcn.004af4f0
cmp byte [ebp + eax - 0x145], 0x5c
pop ecx
je 0x40dfec
lea eax, [ebp - 0x144]
push 0x504c10
push eax
call fcn.004af6e0
pop ecx
pop ecx
lea eax, [ebp - 0x144]
push eax
push str.URLMON.DLL
push 0x505958
push esi
call fcn.0040dd11
add esp, 0x10
test eax, eax
je 0x40e028
lea eax, [ebp - 0x144]
push eax
push str.WININET.DLL
push 0x505948
push esi
call fcn.0040dd11
add esp, 0x10
test eax, eax
jne 0x40e03c
push dword [ebp - 0x18]
call fcn.004d41d0
mov dword [esp], 0x504b37
jmp 0x40e13b
mov esi, 0x1000
push esi
lea eax, [ebp - 0x1144]
push edi
push eax
call fcn.004af490
add esp, 0xc
push esi
lea eax, [ebp - 0x1144]
push eax
mov esi, str.path
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
lea eax, [ebp - 0x1144]
push 0x50593c
push eax
call fcn.004af6e0
lea eax, [ebp - 0x14]
push eax
call fcn.00402a49
push dword [eax]
lea eax, [ebp - 0x1144]
push eax
call fcn.004af6e0
mov ecx, dword [ebp - 0x14]
add esp, 0x14
add ecx, 0xfffffff0
call fcn.0040141b
lea eax, [ebp - 0x1144]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
lea eax, [ebp - 0x1c]
push eax
call fcn.00402a49
mov dword [esp], 0x505930
push eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 4], 5
call fcn.00402e2f
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 7
call fcn.0040141b
mov esi, dword [ebp - 0x14]
push esi
call fcn.00401939
test eax, eax
pop ecx
jne 0x40e117
push 0x1021
push esi
lea ecx, [ebp - 0x3c]
call fcn.004d6310
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x3c]
push dword [ebp - 0x18]
mov byte [ebp - 4], 8
call fcn.004d5880
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.004d5c00
push dword [ebp - 0x18]
call fcn.004d41d0
pop ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x14]
push eax
call fcn.004028b4
lea ecx, [esi - 0x10]
call fcn.0040141b
jmp 0x40e143
push 0x504b37
mov ecx, dword [ebp + 8]
call fcn.00403935
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret