Function at 0x41c270
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52f56f
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x58cfe0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], eax
test eax, eax
je 0x41c663
xor ecx, ecx
mov word [eax], cx
test esi, esi
je 0x41c663
cmp word [esi], cx
je 0x41c663
movups xmm0, xmmword [0x54ae20]
push str.CommonDesktop
push esi
movups xmmword [ebp - 0x20], xmm0
or edi, 0xffffffff
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c2eb
mov esi, str.Common_Desktop
jmp 0x41c336
push str.CommonPrograms
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c304
mov esi, str.Common_Programs
jmp 0x41c336
push str.CommonStartMenu
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c31d
mov esi, str.Common_Start_Menu
jmp 0x41c336
push str.CommonStartup
push esi
call fcn.0050d5a0
add esp, 8
mov esi, str.Common_Startup
test eax, eax
cmovne esi, dword [ebp - 0x34]
push str.CommonFilesDir
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c357
movups xmm0, xmmword [0x56059c]
lea edi, [eax + 0x2b]
jmp 0x41c52f
push str.CommonFilesDir__x86_
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c378
movups xmm0, xmmword [0x56062c]
lea edi, [eax + 0x2c]
jmp 0x41c52f
push str.CommonW6432Dir
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c396
movups xmm0, xmmword [0x56074c]
jmp 0x41c52f
push str.ProgramFilesDir
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c3b7
movups xmm0, xmmword [0x56082c]
lea edi, [eax + 0x26]
jmp 0x41c52f
push str.ProgramFilesDir__x86_
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c3d8
movups xmm0, xmmword [0x56060c]
lea edi, [eax + 0x2a]
jmp 0x41c52f
push str.ProgramW6432Dir
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c3f6
movups xmm0, xmmword [0x56083c]
jmp 0x41c52f
push str.Common_AppData
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c417
movups xmm0, xmmword [0x56079c]
lea edi, [eax + 0x23]
jmp 0x41c52f
push str.Common_Desktop
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c438
movups xmm0, xmmword [0x56078c]
lea edi, [eax + 0x19]
jmp 0x41c52f
push str.Common_Documents
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c459
movups xmm0, xmmword [0x5607bc]
lea edi, [eax + 0x2e]
jmp 0x41c52f
push str.Common_Programs
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c47a
movups xmm0, xmmword [0x56075c]
lea edi, [eax + 0x17]
jmp 0x41c52f
push str.Common_Start_Menu
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c49b
movups xmm0, xmmword [0x56063c]
lea edi, [eax + 0x16]
jmp 0x41c52f
push str.Common_Startup
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c4b9
movups xmm0, xmmword [0x56068c]
lea edi, [eax + 0x18]
jmp 0x41c52f
push str.Common_Templates
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c4d7
movups xmm0, xmmword [0x56071c]
lea edi, [eax + 0x2d]
jmp 0x41c52f
push str.CommonMusic
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c4f5
movups xmm0, xmmword [0x5605dc]
lea edi, [eax + 0x35]
jmp 0x41c52f
push str.CommonPictures
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c513
movups xmm0, xmmword [0x5607cc]
lea edi, [eax + 0x36]
jmp 0x41c52f
push str.CommonVideo
push esi
call fcn.0050d5a0
add esp, 8
test eax, eax
jne 0x41c533
movups xmm0, xmmword [0x56081c]
lea edi, [eax + 0x37]
movups xmmword [ebp - 0x20], xmm0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x34], 0xc
mov edx, 0x54ae20
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41c56d
add ecx, 4
add edx, 4
sub dword [ebp - 0x34], 4
jae 0x41c542
test edi, edi
jns 0x41c56d
push dword [ebp + 0x10]
mov edi, dword [ebp - 0x38]
push edi
push esi
call fcn.0041ca00
add esp, 0xc
jmp 0x41c665
push 1
xorps xmm0, xmm0
lea ecx, [ebp - 0x30]
push str.shell32
movups xmmword [ebp - 0x30], xmm0
call fcn.004873a0
mov dword [ebp - 4], 0
push str.SHGetKnownFolderPath
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x20]
mov edx, 0x54ae20
mov dword [ebp - 0x34], 0xc
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41c5ec
add ecx, 4
add edx, 4
sub dword [ebp - 0x34], 4
jae 0x41c5b0
test edi, edi
js 0x41c63f
push dword [ebp - 0x38]
push 0
push 0
push edi
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x41c63f
mov edi, dword [ebp - 0x38]
xor eax, eax
cmp word [edi], ax
setne al
mov dword [ebp - 0x34], eax
mov esi, eax
jmp 0x41c650
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x41c5c2
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], 0
push ecx
push 0
push 0
lea ecx, [ebp - 0x20]
push ecx
call eax
test eax, eax
jne 0x41c5c2
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
test eax, eax
je 0x41c5dd
push 0
push eax
push 0x104
push edi
call fcn.004823d0
add esp, 0x10
push dword [ebp - 0x34]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
xor eax, eax
cmp word [edi], ax
setne al
mov dword [ebp - 0x34], eax
mov esi, eax
jmp 0x41c650
push dword [ebp + 0x10]
push dword [ebp - 0x38]
push esi
call fcn.0041ca00
add esp, 0xc
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004873e0
mov eax, esi
jmp 0x41c665
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00507257
mov esp, ebp
pop ebp
ret