Function at 0x40e974
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe08
push ebx
mov eax, 0x5c82ac
call fcn.00496c14
mov dword [ebp - 0x40], 1
lea edx, [ebp + 8]
lea eax, [ebp + 8]
call fcn.004a4554
inc dword [ebp - 0x40]
mov word [ebp - 0x4c], 8
mov dword [ebp - 0xf4], 0x94
lea edx, [ebp - 0xf4]
push edx
call sub.KERNEL32.DLL_GetVersionExA
test eax, eax
je 0x40ec14
cmp dword [ebp - 0xe4], 2
je 0x40ec14
push 0x104
lea ecx, [ebp - 0x1f8]
push ecx
call sub.KERNEL32.DLL_GetWindowsDirectoryA
mov word [ebp - 0x4c], 0x14
lea eax, [ebp - 0xc]
call fcn.00401ad8
push eax
inc dword [ebp - 0x40]
mov edx, str.win.ini
lea eax, [ebp - 8]
call fcn.004a451c
inc dword [ebp - 0x40]
lea edx, [ebp - 8]
push edx
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 4]
call fcn.004a451c
inc dword [ebp - 0x40]
pop edx
pop ecx
call fcn.004a4718
lea ecx, [ebp - 0xc]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4592f4]
call fcn.0040aca4
mov dword [ebp - 0x60], eax
dec dword [ebp - 0x40]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 8]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 4]
mov edx, 2
call fcn.004a46c0
lea eax, [ebp - 0x18]
call fcn.00401ad8
mov ecx, eax
inc dword [ebp - 0x40]
lea edx, [ebp + 8]
mov eax, 0x5bfeb0
call fcn.004a4b00
lea edx, [ebp - 0x18]
push dword [edx]
mov edx, 0x5bfeac
lea eax, [ebp - 0x14]
call fcn.004a451c
inc dword [ebp - 0x40]
push dword [eax]
mov word [ebp - 0x4c], 0x20
mov edx, str.windows
lea eax, [ebp - 0x10]
call fcn.004a451c
inc dword [ebp - 0x40]
mov edx, dword [eax]
mov eax, dword [ebp - 0x60]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 4]
dec dword [ebp - 0x40]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004a46c0
mov word [ebp - 0x4c], 0x2c
lea eax, [ebp - 0x24]
call fcn.00401ad8
push eax
inc dword [ebp - 0x40]
mov edx, str._system.ini
lea eax, [ebp - 0x20]
call fcn.004a451c
inc dword [ebp - 0x40]
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 0x1c]
call fcn.004a451c
inc dword [ebp - 0x40]
pop edx
pop ecx
call fcn.004a4718
lea ecx, [ebp - 0x24]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4592f4]
call fcn.0040aca4
mov dword [ebp - 0x60], eax
dec dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004a46c0
lea eax, [ebp - 0x30]
call fcn.00401ad8
mov ecx, eax
inc dword [ebp - 0x40]
lea edx, [ebp + 8]
mov eax, 0x5bff26
call fcn.004a4b00
lea edx, [ebp - 0x30]
push dword [edx]
mov edx, str.shell
lea eax, [ebp - 0x2c]
call fcn.004a451c
inc dword [ebp - 0x40]
push dword [eax]
mov word [ebp - 0x4c], 0x38
mov edx, str.boot
lea eax, [ebp - 0x28]
call fcn.004a451c
inc dword [ebp - 0x40]
mov edx, dword [eax]
mov eax, dword [ebp - 0x60]
pop ecx
mov ebx, dword [eax]
call dword [ebx + 4]
dec dword [ebp - 0x40]
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.004a46c0
dec dword [ebp - 0x40]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004a46c0
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
je 0x40ec14
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov dword [ebp - 0x34], edx
mov word [ebp - 0x4c], 0x50
mov edx, 3
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x4c], 0x44
dec dword [ebp - 0x40]
lea eax, [ebp + 8]
mov edx, 2
call fcn.004a46c0
mov ecx, dword [ebp - 0x5c]
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret