Function at 0x404e25
Capabilities:
Get common file path
Get program files directory

Disassembly:
push 0x810
mov eax, 0x56b3e1
call fcn.0054b8b0
mov ebx, ecx
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x810]
mov esi, dword [ebp + 0x10]
push 0x800
push 0
push eax
mov dword [ebp - 0x818], edi
call fcn.0054d270
add esp, 0xc
lea ecx, [ebp - 0x814]
push 0x57bef9
call fcn.00401c3d
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp eax, 0xd
ja case.default.0x404e79
jmp dword [eax*4 + 0x4050c5]
push ecx
push 0x26
jmp 0x405007
push ecx
push 0x2a
lea eax, [ebp - 0x810]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [ebp - 0x810]
push eax
call fcn.005502e0
pop ecx
test eax, eax
jne case.default.0x404e79
push esi
push eax
push edi
mov ecx, ebx
call fcn.00404e25
mov ecx, dword [ebp - 0x814]
add ecx, 0xfffffff0
jmp 0x4050b5
push 1
push ecx
lea eax, [ebp - 0x818]
mov ecx, ebx
push eax
call fcn.00404e25
push 0x57bef9
push str.__x86_
lea ecx, [ebp - 0x818]
mov byte [ebp - 4], 1
call fcn.0040236b
push dword [ebp - 0x818]
lea eax, [ebp - 0x810]
push eax
call fcn.005543b0
pop ecx
pop ecx
mov ecx, dword [ebp - 0x818]
lea ecx, [ecx - 0x10]
mov byte [ebp - 4], 0
call fcn.00402327
jmp case.default.0x404e79
push ecx
push 6
jmp 0x405007
push 1
push 2
lea eax, [ebp - 0x81c]
mov ecx, ebx
push eax
call fcn.00404e25
push str.Links
push eax
lea eax, [ebp - 0x818]
mov byte [ebp - 4], 2
push eax
call fcn.00402a79
add esp, 0xc
push eax
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], 3
call fcn.00401d34
mov ecx, dword [ebp - 0x818]
lea ecx, [ecx - 0x10]
call fcn.00402327
mov ecx, dword [ebp - 0x81c]
jmp 0x404f0a
lea eax, [ebp - 0x810]
push eax
push 0x800
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
jmp case.default.0x404e79
push 0x800
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
jmp case.default.0x404e79
push 0x800
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp case.default.0x404e79
push ecx
push ecx
jmp 0x405007
push 0x400
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x810]
push eax
call fcn.005502e0
pop ecx
cmp eax, 3
jae 0x404fec
push 0x57bef9
mov ecx, edi
call fcn.00401c3d
jmp 0x4050ac
mov byte [ebp - 0x80d], 0
jmp case.default.0x404e79
push ecx
push 0x28
jmp 0x405007
push ecx
push 0x1a
jmp 0x405007
push ecx
push 0x1c
jmp 0x405007
push ecx
push 0x23
lea eax, [ebp - 0x810]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov eax, dword [ebp - 0x814]
cmp dword [eax - 0xc], 0
jne 0x405047
lea eax, [ebp - 0x810]
push eax
call fcn.005502e0
pop ecx
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x814]
call fcn.0040253e
mov eax, dword [ebp - 0x814]
xor ecx, ecx
test esi, esi
sete cl
add eax, 0xfffffff0
push ecx
push ecx
mov esi, esp
push eax
mov dword [ebp - 0x81c], esi
call fcn.00401ea5
add eax, 0x10
pop ecx
mov dword [esi], eax
mov ecx, ebx
lea eax, [ebp - 0x81c]
push eax
call fcn.004051d9
push eax
lea ecx, [ebp - 0x814]
mov byte [ebp - 4], 0xd
call fcn.00401d34
mov ecx, dword [ebp - 0x81c]
mov byte [ebp - 4], 0
lea ecx, [ecx - 0x10]
call fcn.00402327
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
push eax
call fcn.00401ea5
add eax, 0x10
pop ecx
mov dword [edi], eax
mov ecx, dword [ebp - 0x814]
lea ecx, [ecx - 0x10]
call fcn.00402327
mov eax, edi
call fcn.0054b85f
ret 0xc