Function at 0x41f100
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45015b
mov eax, dword fs:[0]
push eax
sub esp, 0x4c4
mov eax, dword [0x469738]
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.00420040
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.00420da0
test eax, eax
jne 0x41f1ad
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 0x41f1ce
or eax, 4
jmp 0x41f1ce
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.00405a20
cmp dword [ebp - 0x478], 0
je 0x41f5c7
mov eax, dword [edi]
mov ebx, dword [eax]
mov dword [ebp - 0x424], ebx
cmp ebx, eax
je 0x41f58e
jmp 0x41f1fc
mov ebx, dword [ebp - 0x424]
mov ecx, dword [ebx + 8]
dec ecx
mov eax, 0x45934c
cmp ecx, 0xb
ja case.default.0x41f20a
jmp dword [ecx*4 + 0x41f610]
mov eax, str.File
jmp case.default.0x41f20a
mov eax, str.Folder
jmp case.default.0x41f20a
mov eax, str.Shortcut
jmp case.default.0x41f20a
mov eax, str.Registry
jmp case.default.0x41f20a
mov eax, str.Service
jmp case.default.0x41f20a
mov eax, str.Process
jmp case.default.0x41f20a
mov eax, str.RegisterCOM
jmp case.default.0x41f20a
mov eax, 0x459360
jmp case.default.0x41f20a
mov eax, 0x459374
jmp case.default.0x41f20a
mov eax, str.Pause
jmp case.default.0x41f20a
mov eax, str.EnvVar
jmp case.default.0x41f20a
mov eax, str.Custom
push eax
push ecx
lea ecx, [ebp - 0x4d0]
push str.Type_
push ecx
call fcn.00421d80
add esp, 0xc
push eax
call fcn.00404630
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004233e0
mov edx, dword [esi]
mov eax, dword [edx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f2b2
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f2b2
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f2d2
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f2cb
or eax, 4
push 0
call fcn.00405a20
mov edx, dword [ebx + 0xc]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Sequence_
push eax
call fcn.00421d80
add esp, 0xc
push eax
call fcn.0040c360
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004233e0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f321
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f321
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f341
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f33a
or eax, 4
push 0
call fcn.00405a20
mov edx, dword [ebx + 0x28]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Line_
push eax
call fcn.00421d80
add esp, 0xc
push eax
call fcn.0040c360
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004233e0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f390
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f390
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f3b0
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f3a9
or eax, 4
push 0
call fcn.00405a20
movzx edx, byte [ebx + 0x20]
push edx
push ecx
lea eax, [ebp - 0x4d0]
push str.Filtered_
push eax
call fcn.00421d80
add esp, 0xc
push eax
call fcn.0041f8e0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004233e0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor edi, edi
test byte [eax + esi + 0xc], 6
jne 0x41f400
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f400
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test edi, edi
je 0x41f420
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], 0
jne 0x41f419
or eax, 4
push 0
call fcn.00405a20
mov eax, dword [ebx + 0x14]
mov edi, dword [eax]
cmp edi, eax
je 0x41f513
lea eax, [edi + 0xc]
lea edx, [eax + 0x1c]
push edx
push ecx
push 0x45bf70
push ecx
push eax
push ecx
lea eax, [ebp - 0x4d0]
push 0x45bf74
push eax
call fcn.00421d80
add esp, 0xc
push eax
call fcn.004043a0
add esp, 0xc
push eax
call fcn.00421d80
add esp, 0xc
push eax
call fcn.004043a0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.004233e0
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x41f49c
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f49c
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test ebx, ebx
je 0x41f4bc
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], 0
jne 0x41f4b5
or eax, 4
push 0
call fcn.00405a20
cmp byte [edi + 0x45], 0
jne 0x41f502
mov eax, dword [edi + 8]
cmp byte [eax + 0x45], 0
jne 0x41f4e1
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
jne 0x41f502
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x41f4d5
jmp 0x41f502
mov eax, dword [edi + 4]
cmp byte [eax + 0x45], 0
jne 0x41f500
lea ebx, [ebx]
cmp edi, dword [eax + 8]
jne 0x41f500
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x45], 0
je 0x41f4f0
mov edi, eax
mov edx, dword [ebp - 0x424]
cmp edi, dword [edx + 0x14]
jne 0x41f42d
mov ebx, edx
push 0xa
lea ecx, [ebp - 0x4d0]
call fcn.004233e0
mov eax, dword [ebp - 0x4d0]
mov eax, dword [eax + 4]
xor esi, esi
test byte [ebp + eax - 0x4c4], 6
jne 0x41f54f
mov eax, dword [ebp + eax - 0x498]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x41f54f
mov esi, 4
mov ecx, dword [ebp - 0x4d0]
mov ecx, dword [ecx + 4]
lea ecx, [ebp + ecx - 0x4d0]
test esi, esi
je 0x41f578
mov eax, dword [ecx + 0xc]
or eax, esi
cmp dword [ecx + 0x38], 0
jne 0x41f571
or eax, 4
push 0
call fcn.00405a20
mov eax, dword [ebx]
mov edx, dword [ebp - 0x428]
mov dword [ebp - 0x424], eax
cmp eax, dword [edx]
jne 0x41f1f6
lea eax, [ebp - 0x4cc]
call fcn.00420eb0
test eax, eax
jne 0x41f5c7
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 0x41f5c0
or eax, 4
push 0
call fcn.00405a20
lea ecx, [ebp - 0x470]
mov dword [ebp - 4], 0xffffffff
call fcn.00420100
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.004377b1
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.00438351
mov esp, ebp
pop ebp
ret