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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push esi
xor esi, esi
cmp eax, esi
push edi
mov edi, ecx
mov dword [ebp - 4], eax
je 0x403a4c
inc dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, esi
mov dword [ebp - 0xc], eax
je 0x403a5a
inc dword [eax]
push ebx
push 4
mov ecx, edi
call fcn.004039a2
mov ebx, 0x104
lea eax, [ebp - 0x144]
push ebx
push eax
call fcn.00414105
lea eax, [ebp - 0x144]
push str._Cfg
push eax
call fcn.00408770
add esp, 0x10
lea eax, [ebp - 0x144]
push eax
push esi
push esi
push 0x26
push esi
mov esi, dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
call esi
lea eax, [ebp - 0x144]
lea ecx, [edi + 0x1c]
push eax
call fcn.004013b0
lea eax, [ebp - 0x144]
push ebx
push eax
call fcn.00414105
lea eax, [ebp - 0x144]
push str._Cfg
push eax
call fcn.00408770
add esp, 0x10
lea eax, [ebp - 0x144]
push eax
xor eax, eax
push eax
push eax
push 0x8023
push eax
call esi
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x10]
call fcn.00401110
lea eax, [ebp - 0x144]
push ebx
push eax
call fcn.00414105
lea eax, [ebp - 0x144]
push str._Cfg
push eax
call fcn.00408770
add esp, 0x10
lea eax, [ebp - 0x144]
push eax
xor eax, eax
push eax
push eax
push 0x801a
push eax
call esi
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp + 0xc]
call fcn.00401110
lea eax, [ebp - 0x144]
push eax
xor eax, eax
push eax
push eax
push 0x8005
push eax
call esi
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x14]
call fcn.00401110
lea eax, [ebp - 0x144]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x144]
lea esi, [edi + 0x20]
push eax
mov ecx, esi
call fcn.004013b0
push 0x2f
push 0x5c
pop ebx
push ebx
mov ecx, esi
call fcn.00403742
push 0x2f
pop esi
push esi
push ebx
lea ecx, [ebp - 0x10]
call fcn.00403742
push esi
push ebx
lea ecx, [ebp + 0xc]
call fcn.00403742
push esi
push ebx
lea ecx, [ebp - 0x14]
call fcn.00403742
push esi
push ebx
lea ebx, [edi + 0x1c]
mov ecx, ebx
call fcn.00403742
push 1
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x10]
call fcn.004038d1
mov esi, 0x4152f0
push esi
mov ecx, eax
call fcn.00403535
push dword [ebp - 8]
test eax, eax
setne byte [ebp + 0xb]
call fcn.004011a0
cmp byte [ebp + 0xb], 0
pop ecx
je 0x403be7
push esi
lea ecx, [ebp - 0x10]
call fcn.004014c0
push 1
lea eax, [ebp - 8]
push eax
lea ecx, [ebp + 0xc]
call fcn.004038d1
push esi
mov ecx, eax
call fcn.00403535
push dword [ebp - 8]
test eax, eax
setne byte [ebp + 0xb]
call fcn.004011a0
cmp byte [ebp + 0xb], 0
pop ecx
je 0x403c1b
push esi
lea ecx, [ebp + 0xc]
call fcn.004014c0
push 1
lea eax, [ebp - 8]
push eax
mov ecx, ebx
call fcn.004038d1
push esi
mov ecx, eax
call fcn.00403535
push dword [ebp - 8]
test eax, eax
setne byte [ebp + 0xb]
call fcn.004011a0
cmp byte [ebp + 0xb], 0
pop ecx
je 0x403c4d
push esi
mov ecx, ebx
call fcn.004014c0
push 1
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.004038d1
push esi
mov ecx, eax
call fcn.00403535
push dword [ebp - 8]
test eax, eax
setne byte [ebp + 0xb]
call fcn.004011a0
cmp byte [ebp + 0xb], 0
pop ecx
je 0x403c81
push esi
lea ecx, [ebp - 0x14]
call fcn.004014c0
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push esi
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [edi + 0x20]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [edi + 0x20]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 8]
call fcn.004011a0
push dword [ebp - 0x38]
call fcn.004011a0
push dword [ebp - 0x40]
call fcn.004011a0
add esp, 0x10
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [edi + 8]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x2c]
call fcn.004011a0
pop ecx
pop ecx
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp + 0xc]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [edi + 0xc]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x18]
call fcn.004011a0
pop ecx
pop ecx
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x18]
push eax
push esi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0xc]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [edi + 0x10]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x18]
call fcn.004011a0
push dword [ebp - 0x2c]
call fcn.004011a0
push dword [ebp - 0x1c]
call fcn.004011a0
add esp, 0x10
lea eax, [ebp - 0x14]
push eax
lea ecx, [edi + 0x14]
call fcn.00401330
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x14]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [edi + 0x18]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x1c]
call fcn.004011a0
push dword [ebp - 0x18]
call fcn.004011a0
push dword [ebp - 0x24]
call fcn.004011a0
add esp, 0x10
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x24]
push eax
push esi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
mov ecx, ebx
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x24]
call fcn.004011a0
push dword [ebp - 0x1c]
call fcn.004011a0
push dword [ebp - 0x34]
call fcn.004011a0
mov ebx, dword [edi]
add esp, 0x10
push str._KConfig_GlobalSettings.cfg
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x10]
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [ebx + 8]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x28]
call fcn.004011a0
mov ebx, dword [edi]
pop ecx
pop ecx
push str._KConfig_GlobalSettings.cfg
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp + 0xc]
add ebx, 0xc
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [ebx + 8]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x20]
call fcn.004011a0
mov ebx, dword [edi]
pop ecx
pop ecx
push str._Settings.cfg
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x20]
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x10]
add ebx, 0x18
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [ebx + 8]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x20]
call fcn.004011a0
push dword [ebp - 0x28]
call fcn.004011a0
push dword [ebp - 0x30]
call fcn.004011a0
mov ebx, dword [edi]
add esp, 0x10
push str._Settings.cfg
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x30]
push eax
push esi
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp + 0xc]
add ebx, 0x24
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
mov ecx, eax
call fcn.00402db6
mov ecx, eax
call fcn.004036c1
push eax
lea ecx, [ebx + 8]
call fcn.00401330
push dword [ebp + 8]
call fcn.004011a0
push dword [ebp - 0x30]
call fcn.004011a0
push dword [ebp - 0x20]
call fcn.004011a0
push dword [ebp - 0x3c]
call fcn.004011a0
add esp, 0x10
xor esi, esi
pop ebx
mov ecx, dword [edi]
add ecx, esi
call fcn.004035ca
add esi, 0xc
cmp esi, 0x24
jle 0x403fdd
push dword [ebp - 0x14]
call fcn.004011a0
push dword [ebp + 0xc]
call fcn.004011a0
push dword [ebp - 0x10]
call fcn.004011a0
push dword [ebp - 0xc]
call fcn.004011a0
push dword [ebp - 4]
call fcn.004011a0
add esp, 0x14
pop edi
pop esi
leave
ret 8