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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101529bc
mov eax, dword fs:[0]
push eax
sub esp, 0xa2c
mov eax, dword [0x101a154c]
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
mov ebx, ecx
mov dword [ebp - 0xa28], ebx
mov dword [ebp - 0xa18], 0
mov dword [ebp - 0xa14], str.DESKTOP
mov dword [ebp - 0xa10], 1
mov dword [ebp - 0xa0c], str.INTERNET
mov dword [ebp - 0xa08], 2
mov dword [ebp - 0xa04], str.PROGRAMS
mov dword [ebp - 0xa00], 3
mov dword [ebp - 0x9fc], str.CONTROLS
mov dword [ebp - 0x9f8], 4
mov dword [ebp - 0x9f4], str.PRINTERS
mov dword [ebp - 0x9f0], 5
mov dword [ebp - 0x9ec], str.PERSONAL
mov dword [ebp - 0x9e8], 6
mov dword [ebp - 0x9e4], str.FAVORITES
mov dword [ebp - 0x9e0], 7
mov dword [ebp - 0x9dc], str.STARTUP
mov dword [ebp - 0x9d8], 8
mov dword [ebp - 0x9d4], str.RECENT
mov dword [ebp - 0x9d0], 9
mov dword [ebp - 0x9cc], str.SENDTO
mov dword [ebp - 0x9c8], 0xa
mov dword [ebp - 0x9c4], str.BITBUCKET
mov dword [ebp - 0x9c0], 0xb
mov dword [ebp - 0x9bc], str.STARTMENU
mov dword [ebp - 0x9b8], 5
mov dword [ebp - 0x9b4], str.MYDOCUMENTS
mov dword [ebp - 0x9b0], 0xd
mov dword [ebp - 0x9ac], str.MYMUSIC
mov dword [ebp - 0x9a8], 0xe
mov dword [ebp - 0x9a4], str.MYVIDEO
mov dword [ebp - 0x9a0], 0x10
mov dword [ebp - 0x99c], str.DESKTOPDIRECTORY
mov dword [ebp - 0x998], 0x11
mov dword [ebp - 0x994], str.DRIVES
mov dword [ebp - 0x990], 0x12
mov dword [ebp - 0x98c], str.NETWORK
mov dword [ebp - 0x988], 0x13
mov dword [ebp - 0x984], str.NETHOOD
mov dword [ebp - 0x980], 0x14
mov dword [ebp - 0x97c], str.FONTS
mov dword [ebp - 0x978], 0x15
mov dword [ebp - 0x974], str.TEMPLATES
mov dword [ebp - 0x970], 0x16
mov dword [ebp - 0x96c], str.COMMON_STARTMENU
mov dword [ebp - 0x968], 0x17
mov dword [ebp - 0x964], str.COMMON_PROGRAMS
mov dword [ebp - 0x960], 0x18
mov dword [ebp - 0x95c], str.COMMON_STARTUP
mov dword [ebp - 0x958], 0x19
mov dword [ebp - 0x954], str.COMMON_DESKTOPDIRECTORY
mov dword [ebp - 0x950], 0x1a
mov dword [ebp - 0x94c], str.APPDATA
mov dword [ebp - 0x948], 0x1b
mov dword [ebp - 0x944], str.PRINTHOOD
mov dword [ebp - 0x940], 0x1c
mov dword [ebp - 0x93c], str.LOCAL_APPDATA
mov dword [ebp - 0x938], 0x1d
mov dword [ebp - 0x934], str.ALTSTARTUP
mov dword [ebp - 0x930], 0x1e
mov dword [ebp - 0x92c], str.COMMON_ALTSTARTUP
mov dword [ebp - 0x928], 0x1f
mov dword [ebp - 0x924], str.COMMON_FAVORITES
mov dword [ebp - 0x920], 0x20
mov dword [ebp - 0x91c], str.INTERNET_CACHE
mov dword [ebp - 0x918], 0x21
mov dword [ebp - 0x914], str.COOKIES
mov dword [ebp - 0x910], 0x22
mov dword [ebp - 0x90c], str.HISTORY
mov dword [ebp - 0x908], 0x23
mov dword [ebp - 0x904], str.COMMON_APPDATA
mov dword [ebp - 0x900], 0x24
mov dword [ebp - 0x8fc], str.WINDOWS
mov dword [ebp - 0x8f8], 0x25
mov dword [ebp - 0x8f4], str.SYSTEM
mov dword [ebp - 0x8f0], 0x26
mov dword [ebp - 0x8ec], str.PROGRAM_FILES
mov dword [ebp - 0x8e8], 0x27
mov dword [ebp - 0x8e4], str.MYPICTURES
mov dword [ebp - 0x8e0], 0x28
mov dword [ebp - 0x8dc], str.PROFILE
mov dword [ebp - 0x8d8], 0x29
mov dword [ebp - 0x8d4], str.SYSTEMX86
lea edi, [ebp - 0xa18]
mov dword [ebp - 0x8d0], 0x2a
mov dword [ebp - 0x8cc], str.PROGRAM_FILESX86
mov dword [ebp - 0x8c8], 0x2b
mov dword [ebp - 0x8c4], str.PROGRAM_FILES_COMMON
mov dword [ebp - 0x8c0], 0x2c
mov dword [ebp - 0x8bc], str.PROGRAM_FILES_COMMONX86
mov dword [ebp - 0x8b8], 0x2d
mov dword [ebp - 0x8b4], str.COMMON_TEMPLATES
mov dword [ebp - 0x8b0], 0x2e
mov dword [ebp - 0x8ac], str.COMMON_DOCUMENTS
mov dword [ebp - 0x8a8], 0x2f
mov dword [ebp - 0x8a4], str.COMMON_ADMINTOOLS
mov dword [ebp - 0x8a0], 0x30
mov dword [ebp - 0x89c], str.ADMINTOOLS
mov dword [ebp - 0x898], 0x31
mov dword [ebp - 0x894], str.CONNECTIONS
mov dword [ebp - 0x890], 0x35
mov dword [ebp - 0x88c], str.COMMON_MUSIC
mov dword [ebp - 0x888], 0x36
mov dword [ebp - 0x884], str.COMMON_PICTURES
mov dword [ebp - 0x880], 0x37
mov dword [ebp - 0x87c], str.COMMON_VIDEO
mov dword [ebp - 0x878], 0x38
mov dword [ebp - 0x874], str.RESOURCES
mov dword [ebp - 0x870], 0x39
mov dword [ebp - 0x86c], str.RESOURCES_LOCALIZED
mov dword [ebp - 0x868], 0x3a
mov dword [ebp - 0x864], str.COMMON_OEM_LINKS
mov dword [ebp - 0x860], 0x3b
mov dword [ebp - 0x85c], str.CDBURN_AREA
mov dword [ebp - 0x858], 0x3d
mov dword [ebp - 0x854], str.COMPUTERSNEARME
mov esi, dword [edi]
lea eax, [ebp - 0x220]
push 0x210
push 0
push eax
mov dword [ebp - 0xa1c], 0
call fcn.101213d0
add esp, 0xc
lea eax, [ebp - 0x220]
push 0
push esi
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x210
lea eax, [ebp - 0x850]
push 0
push eax
call fcn.101213d0
add esp, 0xc
lea ecx, [ebp - 0x220]
xor edx, edx
lea eax, [ebp - 0x850]
cmp dx, word [ebp - 0x220]
cmovne eax, ecx
lea ecx, [ebp - 0xa1c]
push eax
call fcn.10012f50
mov eax, dword [ebp - 0xa1c]
mov dword [ebp - 4], 0
cmp dword [eax - 0xc], 0
jne 0x1003ed2d
cmp esi, 0x20
jne 0x1003ed2d
push 0x210
lea eax, [ebp - 0x430]
push 0
push eax
call fcn.101213d0
add esp, 0xc
lea eax, [ebp - 0x430]
push 0x108
push eax
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0x210
lea eax, [ebp - 0x640]
push 0
push eax
call fcn.101213d0
xor eax, eax
add esp, 0xc
cmp ax, word [ebp - 0x430]
jne 0x1003ec74
lea eax, [ebp - 0x640]
jmp 0x1003ec8d
push str.Temporary_Internet_Files
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push eax
lea ecx, [ebp - 0xa20]
call fcn.10012f50
mov eax, dword [ebp - 0xa20]
mov esi, dword [ebp - 0xa1c]
add esi, 0xfffffff0
mov byte [ebp - 4], 1
lea edx, [eax - 0x10]
cmp edx, esi
je 0x1003ed11
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x1003ecf6
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x1003ecf6
push edx
call fcn.10019b20
add esp, 4
mov dword [ebp - 0xa24], eax
or ecx, 0xffffffff
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x1003eceb
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xa24]
add eax, 0x10
mov dword [ebp - 0xa1c], eax
jmp 0x1003ed05
push dword [eax - 0xc]
lea ecx, [ebp - 0xa1c]
push eax
call fcn.1001c8c0
mov ebx, dword [ebp - 0xa28]
mov eax, dword [ebp - 0xa20]
lea edx, [eax - 0x10]
mov byte [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003ed2d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0xa1c]
cmp dword [eax - 0xc], 0
je 0x1003edc9
push dword [edi + 4]
lea ecx, [ebp - 0xa30]
call fcn.10012f50
mov eax, dword [ebp - 0xa1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
push eax
call fcn.10019b20
add eax, 0x10
add esp, 4
mov dword [ebp - 0xa2c], eax
push dword [ebp - 0xa24]
lea eax, [ebp - 0xa30]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0xa38]
mov ecx, ebx
push eax
call fcn.1003d1c0
mov edx, dword [ebp - 0xa2c]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003edab
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa30]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003edc9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xa1c]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1003edee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 8
lea eax, [ebp - 0x850]
cmp edi, eax
jne 0x1003eb90
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.100f8fe1
mov esp, ebp
pop ebp
ret