Function at 0x4071bd
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0x340
mov eax, 0x5a4081
call fcn.0056beab
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x2b0], esi
mov dword [ebp - 0x2ac], esi
mov dword [ebp - 0x2a8], esi
mov dword [ebp - 4], esi
push 7
pop eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x248], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x268], esi
mov word [ebp - 0x278], cx
mov dword [ebp - 0x24c], esi
mov word [ebp - 0x25c], ax
mov byte [ebp - 4], 1
push 0x208
mov word [ebp - 0x224], ax
lea eax, [ebp - 0x222]
push esi
push eax
call fcn.0055fda0
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push esi
push esi
push 0x28
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, eax
cmp edi, esi
jge 0x40730c
lea eax, [ebp - 0x34c]
push eax
call fcn.00403aba
mov esi, eax
push str.GFE::Applications::ApplicationDetector::GetSettingsForSHIM:_SHGetFolderPath_failed_with
push esi
mov byte [ebp - 4], 2
call fcn.0040635f
pop ecx
pop ecx
push edi
push esi
call fcn.004108f3
lea eax, [ebp - 0x240]
push eax
mov eax, esi
call fcn.00403b24
mov byte [ebp - 4], 3
cmp dword [ebp - 0x22c], 8
mov eax, dword [ebp - 0x240]
jae 0x4072a8
lea eax, [ebp - 0x240]
push eax
push 2
pop ecx
call fcn.0047feaf
pop ecx
push 1
xor edi, edi
lea esi, [ebp - 0x240]
call fcn.00404589
lea eax, [ebp - 0x34c]
mov byte [ebp - 4], 1
call fcn.004027ed
lea eax, [ebp - 0x2b0]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
cmp ebx, eax
je 0x407458
mov esi, ebx
call fcn.0040f294
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebp - 0x2b0], edi
mov dword [ebp - 0x2ac], edi
mov dword [ebp - 0x2a8], edi
jmp 0x407458
mov edi, dword [ebp - 0x2a0]
lea eax, [ebp - 0x234]
push eax
call fcn.004084bc
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x234]
sub eax, ecx
push 0x1c
cdq
pop edi
idiv edi
cmp eax, esi
jbe 0x4073b0
mov dword [ebp - 0x29c], ecx
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x224]
push eax
lea esi, [ebp - 0x294]
call fcn.004037ae
push dword [ebp - 0x29c]
call fcn.00410505
pop ecx
push 1
xor edi, edi
mov byte [ebp - 0x295], al
call fcn.00404589
cmp byte [ebp - 0x295], 0
je 0x4073a1
lea eax, [ebp - 0x224]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407385
mov ecx, dword [ebp - 0x29c]
sub eax, edx
sar eax, 1
push 0xd
call fcn.0040ecd2
add dword [ebp - 0x29c], 0x1c
dec dword [ebp - 0x2a0]
jne 0x407346
push str.SearchPaths
lea eax, [ebp - 0x278]
push eax
call fcn.00404560
push 0x5ca458
lea esi, [ebp - 0x294]
call fcn.004037ae
mov eax, esi
push eax
lea eax, [ebp - 0x25c]
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 7
call fcn.00410487
pop ecx
push 1
xor edi, edi
mov byte [ebp - 4], 6
call fcn.00404589
lea ecx, [ebp - 0x278]
lea edx, [ebp - 0x2b0]
call fcn.0040e517
lea eax, [ebp - 0x2b0]
mov dword [ebx], edi
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
cmp ebx, eax
je 0x40744d
mov esi, ebx
call fcn.0040f294
mov eax, dword [ebp - 0x2b0]
mov dword [ebx], eax
mov eax, dword [ebp - 0x2ac]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x2a8]
mov dword [ebx + 8], eax
mov dword [ebp - 0x2b0], edi
mov dword [ebp - 0x2ac], edi
mov dword [ebp - 0x2a8], edi
lea esi, [ebp - 0x234]
call fcn.0040f046
push 1
xor edi, edi
lea esi, [ebp - 0x25c]
call fcn.00404589
push 1
lea esi, [ebp - 0x278]
call fcn.00404589
lea esi, [ebp - 0x2b0]
call fcn.0040f294
mov eax, ebx
call fcn.0056bf2e
ret 4