Function at 0x41efa0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44f5eb
mov eax, dword fs:[0]
push eax
sub esp, 0x4c4
mov eax, dword [0x468738]
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
lea eax, [ebp - 0x4d0]
mov edi, ecx
push eax
mov dword [ebp - 0x428], edi
mov esi, edx
call fcn.004200b0
lea ecx, [ebp - 0x420]
push ecx
push 0x104
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push esi
lea edx, [ebp - 0x420]
push edx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x4cc]
call fcn.00420e00
test eax, eax
jne 0x41f04d
mov edx, dword [ebp - 0x4d0]
mov ecx, dword [edx + 4]
mov eax, dword [ebp + ecx - 0x4c4]
lea ecx, [ebp + ecx - 0x4d0]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x41f06e
or eax, 4
jmp 0x41f06e
mov eax, dword [ebp - 0x4d0]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0x498]
lea ecx, [ebp + ecx - 0x4d0]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push 0
call fcn.00405a10
cmp dword [ebp - 0x478], 0
je 0x41f467
mov eax, dword [edi]
mov ebx, dword [eax]
mov dword [ebp - 0x424], ebx
cmp ebx, eax
je 0x41f42e
jmp 0x41f09c
mov ebx, dword [ebp - 0x424]
mov ecx, dword [ebx + 8]
dec ecx
mov eax, 0x45834c
cmp ecx, 0xb
ja case.default.0x41f0aa
jmp dword [ecx*4 + 0x41f4b0]
mov eax, str.File
jmp case.default.0x41f0aa
mov eax, str.Folder
jmp case.default.0x41f0aa
mov eax, str.Shortcut
jmp case.default.0x41f0aa
mov eax, str.Registry
jmp case.default.0x41f0aa
mov eax, str.Service
jmp case.default.0x41f0aa
mov eax, str.Process
jmp case.default.0x41f0aa
mov eax, str.RegisterCOM
jmp case.default.0x41f0aa
mov eax, 0x458360
jmp case.default.0x41f0aa
mov eax, 0x458374
jmp case.default.0x41f0aa
mov eax, str.Pause
jmp case.default.0x41f0aa
mov eax, str.EnvVar
jmp case.default.0x41f0aa
mov eax, str.Custom
push eax
push ecx
lea ecx, [ebp - 0x4d0]
push str.Type_
push ecx
call fcn.00421e40
add esp, 0xc
push eax
call fcn.00404630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004234b0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f152
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f152
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f172
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f16b
or eax, 4
push 0
call fcn.00405a10
mov edx, dword [ebx + 0xc]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Sequence_
push eax
call fcn.00421e40
add esp, 0xc
push eax
call fcn.0041fb20
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004234b0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f1c1
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f1c1
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f1e1
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f1da
or eax, 4
push 0
call fcn.00405a10
mov edx, dword [ebx + 0x28]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Line_
push eax
call fcn.00421e40
add esp, 0xc
push eax
call fcn.0041fb20
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004234b0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f230
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f230
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f250
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f249
or eax, 4
push 0
call fcn.00405a10
movzx edx, byte [ebx + 0x20]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Filtered_
push eax
call fcn.00421e40
add esp, 0xc
push eax
call fcn.0041f780
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004234b0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f2a0
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f2a0
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f2c0
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f2b9
or eax, 4
push 0
call fcn.00405a10
mov eax, dword [ebx + 0x14]
mov edi, dword [eax]
cmp edi, eax
je 0x41f3b3
lea eax, [edi + 0xc]
lea edx, [eax + 0x1c]
push edx
push ecx
push 0x45af70
push ecx
push eax
push ecx
lea eax, [ebp - 0x4d0]
push 0x45af74
push eax
call fcn.00421e40
add esp, 0xc
push eax
call fcn.004043a0
add esp, 0xc
push eax
call fcn.00421e40
add esp, 0xc
push eax
call fcn.004043a0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004234b0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x41f33c
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f33c
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test ebx, ebx
je 0x41f35c
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], 0
jne 0x41f355
or eax, 4
push 0
call fcn.00405a10
cmp byte [edi + 0x45], 0
jne 0x41f3a2
mov eax, dword [edi + 8]
cmp byte [eax + 0x45], 0
jne 0x41f381
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x41f3a2
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x41f375
jmp 0x41f3a2
mov eax, dword [edi + 4]
cmp byte [eax + 0x45], 0
jne 0x41f3a0
lea ebx, [ebx]
cmp edi, dword [eax + 8]
jne 0x41f3a0
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x45], 0
je 0x41f390
mov edi, eax
mov edx, dword [ebp - 0x424]
cmp edi, dword [edx + 0x14]
jne 0x41f2cd
mov ebx, edx
push 0xa
lea ecx, [ebp - 0x4d0]
call fcn.004234b0
mov eax, dword [ebp - 0x4d0]
mov eax, dword [eax + 4]
xor esi, esi
test byte [ebp + eax - 0x4c4], 6
jne 0x41f3ef
mov eax, dword [ebp + eax - 0x498]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f3ef
mov esi, 4
mov ecx, dword [ebp - 0x4d0]
mov ecx, dword [ecx + 4]
lea ecx, [ebp + ecx - 0x4d0]
test esi, esi
je 0x41f418
mov eax, dword [ecx + 0xc]
or eax, esi
cmp dword [ecx + 0x38], 0
jne 0x41f411
or eax, 4
push 0
call fcn.00405a10
mov eax, dword [ebx]
mov edx, dword [ebp - 0x428]
mov dword [ebp - 0x424], eax
cmp eax, dword [edx]
jne 0x41f096
lea eax, [ebp - 0x4cc]
call fcn.00420f10
test eax, eax
jne 0x41f467
mov eax, dword [ebp - 0x4d0]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0x4c4]
lea ecx, [ebp + ecx - 0x4d0]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x41f460
or eax, 4
push 0
call fcn.00405a10
lea ecx, [ebp - 0x470]
mov dword [ebp - 4], 0xffffffff
call fcn.00420170
lea ecx, [ebp - 0x470]
push ecx
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::ios_base.0
call fcn.00436c31
add esp, 4
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.004377d1
mov esp, ebp
pop ebp
ret