Function at 0x41f97d
Capabilities:
Get common file path

Disassembly:
push ebp
sub esp, 0x618
lea ebp, [esp - 4]
mov eax, dword [0x47dad4]
xor eax, ebp
mov dword [ebp + 0x618], eax
push 0xa8
mov eax, 0x461a3b
call fcn.0044a6d8
mov eax, dword [ebp + 0x628]
mov ebx, dword [ebp + 0x624]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x634]
xor esi, esi
push esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], esi
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x62c]
mov dword [ebp - 0x10], esi
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, esi
je 0x41fa35
cdq
push edx
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.0040f3b5
push eax
lea eax, [ebp - 0x7c]
push str.SHGetSpecialFolderLocation_failed:
push eax
mov dword [ebp - 4], esi
call fcn.00408aa3
add esp, 0x18
push 0xffffffffffffffff
push esi
push eax
mov ecx, 0x47c7f0
mov byte [ebp - 4], 1
call fcn.00408577
push esi
push 1
lea ecx, [ebp - 0x7c]
call fcn.00407efb
lea ecx, [ebp - 0x60]
push esi
push 1
call fcn.00407efb
mov ecx, ebx
call fcn.004081f5
jmp 0x41fbed
lea eax, [ebp + 0x208]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x10]
mov edi, dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 0x18], eax
call edi
cmp dword [ebp - 0x18], 1
je 0x41fa9f
push esi
lea eax, [ebp - 0x7c]
push esi
push eax
call fcn.0040f3b5
push eax
lea eax, [ebp - 0x60]
push str.SHGetPathFromIDList_failed:
push eax
mov dword [ebp - 4], 2
call fcn.00408aa3
add esp, 0x18
mov byte [ebp - 4], 3
push 0xffffffffffffffff
push esi
push eax
mov ecx, 0x47c7f0
call fcn.00408577
push esi
push 1
lea ecx, [ebp - 0x60]
call fcn.00407efb
lea ecx, [ebp - 0x7c]
jmp 0x41fa21
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x630]
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, esi
je 0x41fadf
cdq
push edx
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0040f3b5
push eax
lea eax, [ebp - 0x60]
push str.SHGetSpecialFolderLocation_failed:
push eax
mov dword [ebp - 4], 4
call fcn.00408aa3
add esp, 0x18
mov byte [ebp - 4], 5
jmp 0x41fa81
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x24]
mov dword [ebp - 4], 6
call fcn.0041aac2
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
lea eax, [ebp]
mov dword [ebp - 0x3c], eax
pop ecx
lea eax, [ebp + 0x208]
mov dword [ebp - 0x2c], eax
pop ecx
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x34], 0x41
mov dword [ebp - 0x30], 0x41e322
mov dword [ebp - 0x28], esi
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
push dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
call edi
cmp dword [ebp - 0x14], esi
jne 0x41fb5e
push str.SHBrowseForFolder_returned_0
mov ecx, 0x47c7f0
call fcn.0040877d
mov ecx, ebx
call fcn.004081f5
jmp 0x41fbe5
lea eax, [ebp + 0x410]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
call edi
cmp dword [ebp - 0x18], 1
je 0x41fbd6
push esi
lea eax, [ebp - 0x98]
push esi
push eax
call fcn.0040f3b5
push eax
lea eax, [ebp - 0xb4]
push str.SHGetPathFromIDList_failed:
push eax
mov byte [ebp - 4], 7
call fcn.00408aa3
add esp, 0x18
push 0xffffffffffffffff
push esi
push eax
mov ecx, 0x47c7f0
mov byte [ebp - 4], 8
call fcn.00408577
push esi
push 1
lea ecx, [ebp - 0xb4]
call fcn.00407efb
push esi
push 1
lea ecx, [ebp - 0x98]
call fcn.00407efb
jmp 0x41fb52
lea eax, [ebp + 0x410]
push eax
push ebx
call fcn.0041bc26
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.00406ffd
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x618]
xor ecx, ebp
call fcn.0044a6c9
add ebp, 0x61c
leave
ret