Function at 0x41cc10
Capabilities:
Get common file path
Get program files directory
Query environment variable

Disassembly:
mov eax, 0x1270
call fcn.0044e2b0
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x126c], eax
push ebx
push esi
push edi
xor eax, eax
push 0x208
mov esi, ecx
push eax
lea ecx, [esp + 0x222]
push ecx
mov word [esp + 0x224], ax
call fcn.004416b0
xor edx, edx
push 0x208
push edx
lea eax, [esp + 0x852]
push eax
mov word [esp + 0x854], dx
call fcn.004416b0
xor ecx, ecx
push 0x208
push ecx
lea edx, [esp + 0xe82]
push edx
mov word [esp + 0xe84], cx
call fcn.004416b0
xor eax, eax
push 0x208
push eax
lea ecx, [esp + 0x65e]
push ecx
mov word [esp + 0x660], ax
call fcn.004416b0
xor edx, edx
push 0x208
push edx
lea eax, [esp + 0x46]
push eax
mov word [esp + 0x48], dx
call fcn.004416b0
xor ecx, ecx
push 0x208
push ecx
lea edx, [esp + 0x46a]
push edx
mov word [esp + 0x46c], cx
call fcn.004416b0
add esp, 0x48
xor eax, eax
push 0x208
push eax
lea ecx, [esp + 0xc5e]
push ecx
mov word [esp + 0xc60], ax
call fcn.004416b0
xor edx, edx
push 0x208
push edx
lea eax, [esp + 0x1082]
push eax
mov word [esp + 0x1084], dx
call fcn.004416b0
xor ecx, ecx
push 0x208
push ecx
lea edx, [esp + 0xa6a]
push edx
mov word [esp + 0xa6c], cx
call fcn.004416b0
add esp, 0x24
push 0x104
lea eax, [esp + 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ebx, 0x5c
test eax, eax
je 0x41cdef
lea eax, [esp + 0x218]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41cd60
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x216], bx
je 0x41cd93
push 0x4576d8
lea ecx, [esp + 0x21c]
push 0x104
push ecx
call fcn.0043f083
add esp, 0xc
lea edx, [esp + 0x218]
push edx
lea eax, [esi + 0x1c]
push 0x10e
push eax
mov dword [esi + 0x18], 0
call fcn.0043efc3
lea ecx, [esp + 0x224]
push ecx
push 0x480f0c
lea edx, [esp + 0xe74]
call fcn.0041e430
lea edx, [esp + 0xe74]
push edx
lea eax, [esi + 0x45c]
push 0x10e
push eax
mov dword [esi + 0x458], 2
call fcn.0043efc3
add esp, 0x20
push 0x104
lea ecx, [esp + 0x840]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x41ce69
lea eax, [esp + 0x83c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41ce10
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x83a], bx
je 0x41ce43
push 0x4576d8
lea edx, [esp + 0x840]
push 0x104
push edx
call fcn.0043f083
add esp, 0xc
lea eax, [esp + 0x83c]
push eax
lea ecx, [esi + 0x23c]
push 0x10e
push ecx
mov dword [esi + 0x238], 1
call fcn.0043efc3
add esp, 0xc
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0
push 0x23
lea edx, [esp + 0x638]
push edx
push 0
call edi
test eax, eax
je 0x41cee9
lea eax, [esp + 0x630]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41ce90
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x62e], bx
je 0x41cec3
push 0x4576d8
lea eax, [esp + 0x634]
push 0x104
push eax
call fcn.0043f083
add esp, 0xc
lea ecx, [esp + 0x630]
push ecx
lea edx, [esi + 0x67c]
push 0x10e
push edx
mov dword [esi + 0x678], 3
call fcn.0043efc3
add esp, 0xc
call fcn.0041dd80
test eax, eax
je 0x41cf79
lea ecx, [esp + 0xa48]
push ecx
push 0
push eax
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jl 0x41cf79
lea eax, [esp + 0xa48]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41cf20
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0xa46], bx
je 0x41cf53
push 0x4576d8
lea edx, [esp + 0xa4c]
push 0x104
push edx
call fcn.0043f083
add esp, 0xc
lea eax, [esp + 0xa48]
push eax
lea ecx, [esi + 0x111c]
push 0x10e
push ecx
mov dword [esi + 0x1118], 8
call fcn.0043efc3
add esp, 0xc
call fcn.00407be0
test eax, eax
je 0x41d0eb
push 0x104
lea edx, [esp + 0x10]
push edx
push str._ProgramW6432_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x41d039
lea eax, [esp + 0xc]
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41cfb0
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0xa], bx
je 0x41cfdd
push 0x4576d8
lea eax, [esp + 0x10]
push 0x104
push eax
call fcn.0043f083
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea edx, [esi + 0x89c]
push 0x10e
push edx
mov dword [esi + 0x898], 4
call fcn.0043efc3
lea eax, [esp + 0x18]
push eax
push str._sCommon_Files_
lea edx, [esp + 0xc68]
call fcn.0041e430
lea ecx, [esp + 0xc68]
push ecx
lea edx, [esi + 0xcdc]
push 0x10e
push edx
mov dword [esi + 0xcd8], 6
call fcn.0043efc3
add esp, 0x20
push 0
push 0x2a
lea eax, [esp + 0x42c]
push eax
push 0
call edi
test eax, eax
je 0x41d190
lea eax, [esp + 0x424]
lea edx, [eax + 2]
jmp 0x41d060
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d060
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x422], bx
je 0x41d093
push 0x4576d8
lea ecx, [esp + 0x428]
push 0x104
push ecx
call fcn.0043f083
add esp, 0xc
lea edx, [esp + 0x424]
push edx
lea eax, [esi + 0xabc]
push 0x10e
push eax
mov dword [esi + 0xab8], 5
call fcn.0043efc3
lea ecx, [esp + 0x430]
push ecx
push str._sCommon_Files_
lea edx, [esp + 0x1080]
call fcn.0041e430
mov dword [esi + 0xef8], 7
lea edx, [esp + 0x1080]
add esi, 0xefc
jmp 0x41d181
push 0
push 0x26
lea eax, [esp + 0x14]
push eax
push 0
call edi
test eax, eax
je 0x41d190
lea eax, [esp + 0xc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d107
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0xa], bx
je 0x41d134
push 0x4576d8
lea ecx, [esp + 0x10]
push 0x104
push ecx
call fcn.0043f083
add esp, 0xc
lea edx, [esp + 0xc]
push edx
lea eax, [esi + 0x89c]
push 0x10e
push eax
mov dword [esi + 0x898], 4
call fcn.0043efc3
lea ecx, [esp + 0x18]
push ecx
push str._sCommon_Files_
lea edx, [esp + 0xc68]
call fcn.0041e430
mov dword [esi + 0xcd8], 6
lea edx, [esp + 0xc68]
add esi, 0xcdc
push edx
push 0x10e
push esi
call fcn.0043efc3
add esp, 0x20
mov ecx, dword [esp + 0x1278]
pop edi
pop esi
pop ebx
xor ecx, esp
mov eax, 1
call fcn.0043e4c7
add esp, 0x1270
ret