Function at 0x401e70
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x310
lea eax, [ebp - 0x18]
mov esi, ecx
xor ebx, ebx
lea edi, [ebp - 0x31c]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x402aa0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
push 0x208
push ebx
push edi
call fcn.00472a40
add esp, 0xc
push ebx
push 0x19
push edi
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x402294
cmp word [ebp - 0x31c], 0
mov dword [ebp - 0x20], esi
je 0x401ee8
xor ebx, ebx
cmp word [ebp + ebx*2 - 0x31a], 0
lea ebx, [ebx + 1]
jne 0x401eda
lea esi, [ebp - 0x114]
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
push ebx
push edi
call fcn.00408f00
lea eax, [ebp - 0xfc]
mov dword [ebp - 0x10], 9
mov ecx, esi
push eax
call fcn.00409a90
mov dword [ebp - 0x10], 0xa
lea eax, [ebp - 0xe4]
lea ecx, [ebp - 0xfc]
push 0x15
push str.2345Soft2345Explorer
push eax
call fcn.0040a4c0
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x10], 0xb
push eax
call fcn.0040b5a0
add esp, 4
test al, al
jne 0x401f64
lea eax, [ebp - 0xe4]
push eax
call fcn.0040b380
add esp, 4
test al, al
je 0x402273
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0xe4]
push 0xa
push str.config.ini
push eax
call fcn.0040a4c0
mov eax, 0xc
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xcc]
push dword [ebp - 0x20]
push eax
call fcn.00411780
add esp, 8
mov eax, 7
lea ecx, [ebp - 0x54]
cmp dword [ebp - 0x40], eax
jbe 0x401fa4
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0xb8], eax
lea eax, [ebp - 0xcc]
jbe 0x401fb8
mov eax, dword [ebp - 0xcc]
push ecx
push eax
push str.RollbackType
push str.StartupInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x10], 0xd
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00403770
add esp, 4
mov eax, 7
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x54]
lea esi, [ebp - 0x3c]
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x20], ecx
cmovbe edx, ecx
cmp dword [ebp - 0x28], eax
mov eax, esi
mov ecx, edx
jbe 0x40200c
mov eax, dword [ebp - 0x3c]
push ecx
push eax
push str.ParentProcessName
push str.StartupInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, esi
mov dword [ebp - 0x10], 0
call fcn.004024a4
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x10], 0xd
push eax
call fcn.00402fe0
add esp, 4
mov eax, 0x10
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x10], 0xf
add eax, dword [ebp - 0x2c]
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
mov word [ecx], 0
push eax
call fcn.0040250c
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], 7
lea edx, [ebp - 0x3c]
jbe 0x40207c
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0xb4]
push eax
push edx
call fcn.004026a2
lea ecx, [ebp - 0xb4]
push 0x10
push 0x49016a
call fcn.004026a2
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x10], 0x11
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
mov word [ecx], 0
add eax, 0x1a
push eax
call fcn.0040250c
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], 7
jbe 0x4020d5
mov edx, dword [ebp - 0x3c]
jmp 0x4020d8
lea edx, [ebp - 0x3c]
lea ecx, [ebp - 0x9c]
push eax
push edx
call fcn.004026a2
lea ecx, [ebp - 0x9c]
push 0x1a
push str.2345Explorer_important.exe
call fcn.004026a2
cmp dword [ebp - 0x40], 7
jbe 0x402103
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x10], 0x12
lea ecx, [ebp - 0x6c]
push eax
push ecx
call fcn.00403300
add esp, 8
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x58], 0xf
lea edx, [ebp - 0x6c]
jbe 0x40212c
mov edx, dword [ebp - 0x6c]
mov ecx, 0x14
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x84]
push eax
push edx
push ecx
call fcn.004126f0
add esp, 0xc
cmp dword [ebp - 0x70], 7
lea esi, [ebp - 0x84]
mov eax, esi
jbe 0x402159
mov eax, dword [ebp - 0x84]
push dword [ebp - 0x20]
push eax
push str.RollbackBeforeVersion
push str.StartupInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, esi
mov dword [ebp - 0x10], 1
call fcn.004024a4
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x10], 2
mov dword [ebp - 0x20], ecx
call fcn.00402440
cmp dword [ebp - 0x40], 7
jbe 0x402198
mov eax, dword [ebp - 0x54]
jmp 0x40219b
lea eax, [ebp - 0x54]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x10], 0x12
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00403300
add esp, 8
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x58], 0xf
jbe 0x4021c7
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], 0x13
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x20]
push ecx
call fcn.004126f0
add esp, 0xc
cmp dword [ebp - 0x70], 7
lea esi, [ebp - 0x84]
mov eax, esi
jbe 0x4021f5
mov eax, dword [ebp - 0x84]
push dword [ebp - 0x24]
push eax
push str.RollbackAfterVersion
push str.StartupInfo
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov ecx, esi
mov dword [ebp - 0x10], 3
call fcn.004024a4
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x10], 4
call fcn.00402440
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x10], 5
call fcn.004024a4
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x10], 6
call fcn.004024a4
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x10], 7
call fcn.004024a4
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x10], 8
call fcn.004024a4
lea ecx, [ebp - 0x54]
call fcn.00408fb0
lea ecx, [ebp - 0xe4]
call fcn.00408fb0
lea ecx, [ebp - 0xfc]
call fcn.00408fb0
lea ecx, [ebp - 0x114]
call fcn.00408fb0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x310
pop esi
pop edi
pop ebx
pop ebp
ret