Function at 0x40e994
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe08
push ebx
mov eax, 0x5ca348
call fcn.00496be4
mov dword [ebp - 0x40], 1
lea edx, [ebp + 8]
lea eax, [ebp + 8]
call fcn.004a4524
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 0x40ec34
cmp dword [ebp - 0xe4], 2
je 0x40ec34
push 0x104
lea ecx, [ebp - 0x1f8]
push ecx
call sub.KERNEL32.DLL_GetWindowsDirectoryA
mov word [ebp - 0x4c], 0x14
lea eax, [ebp - 0xc]
call fcn.00401af8
push eax
inc dword [ebp - 0x40]
mov edx, str.win.ini
lea eax, [ebp - 8]
call fcn.004a44ec
inc dword [ebp - 0x40]
lea edx, [ebp - 8]
push edx
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 4]
call fcn.004a44ec
inc dword [ebp - 0x40]
pop edx
pop ecx
call fcn.004a46e8
lea ecx, [ebp - 0xc]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4592c4]
call fcn.0040acc4
mov dword [ebp - 0x60], eax
dec dword [ebp - 0x40]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 8]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 4]
mov edx, 2
call fcn.004a4690
lea eax, [ebp - 0x18]
call fcn.00401af8
mov ecx, eax
inc dword [ebp - 0x40]
lea edx, [ebp + 8]
mov eax, 0x5c1f54
call fcn.004a4ad0
lea edx, [ebp - 0x18]
push dword [edx]
mov edx, 0x5c1f50
lea eax, [ebp - 0x14]
call fcn.004a44ec
inc dword [ebp - 0x40]
push dword [eax]
mov word [ebp - 0x4c], 0x20
mov edx, str.windows
lea eax, [ebp - 0x10]
call fcn.004a44ec
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.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.004a4690
mov word [ebp - 0x4c], 0x2c
lea eax, [ebp - 0x24]
call fcn.00401af8
push eax
inc dword [ebp - 0x40]
mov edx, str._system.ini
lea eax, [ebp - 0x20]
call fcn.004a44ec
inc dword [ebp - 0x40]
lea edx, [ebp - 0x20]
push edx
lea edx, [ebp - 0x1f8]
lea eax, [ebp - 0x1c]
call fcn.004a44ec
inc dword [ebp - 0x40]
pop edx
pop ecx
call fcn.004a46e8
lea ecx, [ebp - 0x24]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4592c4]
call fcn.0040acc4
mov dword [ebp - 0x60], eax
dec dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004a4690
lea eax, [ebp - 0x30]
call fcn.00401af8
mov ecx, eax
inc dword [ebp - 0x40]
lea edx, [ebp + 8]
mov eax, 0x5c1fca
call fcn.004a4ad0
lea edx, [ebp - 0x30]
push dword [edx]
mov edx, str.shell
lea eax, [ebp - 0x2c]
call fcn.004a44ec
inc dword [ebp - 0x40]
push dword [eax]
mov word [ebp - 0x4c], 0x38
mov edx, str.boot
lea eax, [ebp - 0x28]
call fcn.004a44ec
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.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.004a4690
dec dword [ebp - 0x40]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004a4690
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
je 0x40ec34
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.004a4690
mov ecx, dword [ebp - 0x5c]
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret