Function at 0x40ab28
Capabilities:
Get common file path
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x1e38
call fcn.00412030
mov eax, dword [0x413004]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x1e24], ecx
lea ecx, [ebp - 0x11d4]
mov dword [ebp - 0x1e34], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0x1e28], edx
mov dword [ebp - 0x1e30], ebx
mov dword [ebp - 0x1e20], eax
call fcn.004107b7
lea ecx, [ebp - 0xb8c]
call fcn.0040fa55
lea ecx, [ebp - 0xb8c]
call fcn.0040fade
xor edi, edi
test eax, eax
je 0x40abad
push ebx
push edi
push 0x40307c
push 0x4028a4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
neg esi
sbb esi, esi
inc esi
jmp 0x40abb0
xor esi, esi
inc esi
push ebx
push 0x28000000
push 0x402964
push 0x402948
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push ebx
push 0x70002
push 0x402860
push 0x402948
mov dword [ebp - 0x1e2c], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push dword [ebp - 0x1e30]
mov edx, dword [ebp - 0x1e2c]
mov ebx, eax
mov ecx, ebx
call fcn.0040a8ab
test eax, eax
jne 0x40ac29
cmp dword [ebp + 0x18], edi
jne 0x40afb2
mov esi, dword [ebp - 0x1e24]
lea eax, [ebp - 0x424]
push 0x209
push eax
push 0xe7
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x10
jmp 0x40ae42
call fcn.00408508
mov ecx, dword [ebp - 0x1e34]
mov dword [ecx], eax
cmp dword [ebp - 0xfbc], edi
je 0x40af07
cmp ebx, dword [ebp - 0xfc8]
jb 0x40ac77
mov eax, dword [ebp - 0xfc4]
mov ecx, dword [ebp - 0x1e2c]
cmp ecx, eax
jb 0x40ac77
test esi, esi
je 0x40ad06
cmp ebx, dword [ebp - 0xfc8]
jne 0x40ac84
shr eax, 0x10
mov edx, 0x992
cmp ax, dx
jbe 0x40ac84
mov ecx, dword [ebp - 0x1e28]
mov dword [ecx], edi
jmp 0x40af46
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
movzx eax, bx
push eax
shr ebx, 0x10
lea eax, [ebp - 0x634]
push ebx
push 0x403098
push 0x900
push edi
push edi
push 0x105
push eax
call fcn.00410f98
add esp, 0x28
cmp dword [ebp + 0x18], edi
jne 0x40afb2
mov esi, dword [ebp - 0x1e24]
lea eax, [ebp - 0xa4c]
mov ebx, 0x209
push ebx
push eax
push 0xd8
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0xa4c]
push eax
push 0x900
push edi
push edi
lea eax, [ebp - 0x424]
push ebx
push eax
call fcn.00410f98
add esp, 0x1c
jmp 0x40af32
cmp ebx, dword [ebp - 0xfc8]
jne 0x40ad2f
cmp ecx, eax
jne 0x40ad2f
lea ecx, [ebp - 0xb8c]
call fcn.0040fade
mov ecx, dword [ebp - 0x1e28]
neg eax
sbb eax, eax
inc eax
mov dword [ecx], eax
jmp 0x40af46
lea ecx, [ebp - 0xb8c]
call fcn.0040fade
test eax, eax
je 0x40ad66
call fcn.00408fdb
test eax, eax
jne 0x40ad66
cmp dword [ebp + 0x18], edi
jne 0x40afb2
push 0x208
lea eax, [ebp - 0x424]
push eax
push 0xeb
jmp 0x40ae33
lea ecx, [ebp - 0xb8c]
call fcn.0040fade
test eax, eax
je 0x40ae4d
push dword [ebp - 0x1e30]
lea ecx, [ebp - 0x1e1c]
call fcn.0040eb66
mov ebx, 0x4030b0
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [ebp - 0x1c08]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add esi, eax
lea eax, [ebp - 0x1c12]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, esi
cmp eax, 0x104
ja 0x40ae4d
push ebx
lea eax, [ebp - 0x1c08]
push eax
lea eax, [ebp - 0x1c12]
push eax
push 0x4015e8
push 0x900
push edi
push edi
lea eax, [ebp - 0xa4c]
push 0x209
push eax
call fcn.00410f98
add esp, 0x24
test eax, eax
js 0x40ae4d
lea eax, [ebp - 0xa4c]
push eax
lea ecx, [ebp - 0xdac]
call fcn.004104d1
mov eax, dword [ebp - 0xb98]
xor eax, dword [ebp - 0xfc0]
test eax, 0x3ff
je 0x40ae4d
cmp dword [ebp + 0x18], edi
jne 0x40afb2
push 0x208
lea eax, [ebp - 0x424]
push eax
push 0xed
mov esi, dword [ebp - 0x1e24]
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
mov ebx, dword [ebp - 0x1e20]
jmp 0x40af9e
lea ecx, [ebp - 0x15fc]
call fcn.0041060e
cmp dword [ebp - 0x13e4], edi
je 0x40aeed
cmp dword [ebp - 0x13f0], 0x70000
mov eax, dword [ebp - 0x13ec]
je 0x40ae82
cmp dword [ebp - 0x13f0], 0x60000
jne 0x40ae89
cmp eax, 0x75e0000
ja 0x40aea1
cmp dword [ebp - 0x13f0], 0x70001
jne 0x40aeed
add eax, 0xf7fe0000
cmp eax, 0x910000
ja 0x40aeed
cmp dword [ebp + 0x18], edi
jne 0x40afb2
mov esi, dword [ebp - 0x1e24]
lea eax, [ebp - 0x424]
push 0x208
push eax
push 0xda
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
mov ebx, dword [ebp - 0x1e20]
lea eax, [ebp - 0x424]
push 0x134
push ebx
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
je 0x40afb2
jmp 0x40aef9
mov esi, dword [ebp - 0x1e24]
mov ebx, dword [ebp - 0x1e20]
mov ecx, dword [ebp - 0x1e28]
mov dword [ecx], 1
jmp 0x40af52
test esi, esi
je 0x40af3a
cmp dword [ebp + 0x18], edi
jne 0x40afb2
mov esi, dword [ebp - 0x1e24]
lea eax, [ebp - 0x424]
push 0x104
push eax
push 0xd0
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
mov ebx, dword [ebp - 0x1e20]
jmp 0x40af9d
mov ecx, dword [ebp - 0x1e28]
mov dword [ecx], 1
mov ebx, dword [ebp - 0x1e20]
mov esi, dword [ebp - 0x1e24]
cmp dword [ebp + 0x10], edi
jne 0x40afaf
push 0x104
lea eax, [ebp - 0xd9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x40af7a
lea ecx, [ebp - 0xd9c]
call fcn.004098fb
jmp 0x40af7c
mov eax, edi
test eax, eax
jne 0x40afaf
cmp dword [ebp + 0x18], edi
jne 0x40afb2
push 0x209
lea eax, [ebp - 0x424]
push eax
push 0xcf
push esi
call dword [sym.imp.USER32.dll_LoadStringW]
push edi
push ebx
lea eax, [ebp - 0x424]
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40afb2
xor edi, edi
inc edi
mov ecx, dword [ebp - 8]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00411980
mov esp, ebp
pop ebp
ret 0x14