Function at 0x41a7ae
Capabilities:
Check if file exists
Get common file path
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5af648
mov eax, dword fs:[0]
push eax
mov eax, 0x22cc
call fcn.00593490
mov eax, dword [0x637190]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x22d8]
call fcn.0046d5d4
push 7
xor edi, edi
xor eax, eax
pop ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x2254], ecx
mov dword [ebp - 0x2258], edi
mov word [ebp - 0x2268], ax
mov dword [ebp - 0x226c], ecx
mov dword [ebp - 0x2270], edi
mov word [ebp - 0x2280], ax
mov dword [ebp - 0x223c], ecx
mov dword [ebp - 0x2240], edi
mov word [ebp - 0x2250], ax
mov dword [ebp - 0x2224], ecx
mov dword [ebp - 0x2228], edi
mov word [ebp - 0x2238], ax
mov dword [ebp - 0x2284], ecx
mov dword [ebp - 0x2288], edi
mov word [ebp - 0x2298], ax
push 0x2f
push esi
lea ecx, [ebp - 0x22d8]
mov byte [ebp - 4], 5
call fcn.0046eb6a
lea ecx, [ebp - 0x22d8]
call fcn.0046d95f
cmp eax, 4
jne 0x41ad54
push edi
lea ecx, [ebp - 0x22d8]
call fcn.0046dbf8
mov esi, eax
cmp word [esi], di
jne 0x41a894
mov eax, edi
jmp 0x41a89b
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2268]
call fcn.00404be0
push 1
lea ecx, [ebp - 0x22d8]
call fcn.0046dbf8
mov esi, eax
cmp word [esi], di
jne 0x41a8c0
mov eax, edi
jmp 0x41a8c7
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2280]
call fcn.00404be0
push 2
lea ecx, [ebp - 0x22d8]
call fcn.0046dbf8
mov esi, eax
cmp word [esi], di
jne 0x41a8ec
mov eax, edi
jmp 0x41a8f3
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2250]
call fcn.00404be0
push 3
lea ecx, [ebp - 0x22d8]
call fcn.0046dbf8
mov esi, eax
cmp word [esi], di
jne 0x41a918
mov eax, edi
jmp 0x41a91f
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2238]
call fcn.00404be0
push 8
pop ebx
cmp dword [ebp - 0x226c], ebx
lea eax, [ebp - 0x2280]
mov esi, 0x5c9860
cmovae eax, dword [ebp - 0x2280]
push esi
push eax
call fcn.00591f41
pop ecx
pop ecx
test eax, eax
jne 0x41ad54
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push esi
cmovae eax, dword [ebp - 0x2238]
push eax
call fcn.00591f41
pop ecx
pop ecx
test eax, eax
jne 0x41ad54
cmp dword [ebp - 0x2254], ebx
lea eax, [ebp - 0x2268]
push 0x5c9864
cmovae eax, dword [ebp - 0x2268]
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x41ad54
cmp dword [ebp - 0x2254], ebx
lea eax, [ebp - 0x2268]
push str.HKEY_LOCAL_MACHINE
cmovae eax, dword [ebp - 0x2268]
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x41ab76
lea ecx, [ebp - 0x22c0]
call fcn.00463f29
cmp dword [ebp - 0x226c], ebx
lea esi, [ebp - 0x2280]
lea eax, [ebp - 0x2250]
mov byte [ebp - 4], 6
cmovae esi, dword [ebp - 0x2280]
cmp dword [ebp - 0x223c], ebx
push 0x5c7af8
cmovae eax, dword [ebp - 0x2250]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
jne 0x41aa23
push edi
push 0x5c4f10
lea ecx, [ebp - 0x2250]
call fcn.00404be0
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push 0x5c7af8
cmovae eax, dword [ebp - 0x2238]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
jne 0x41aa58
push edi
push 0x5c4f10
lea ecx, [ebp - 0x2238]
call fcn.00404be0
test esi, esi
je 0x41aa65
cmp word [esi], 0x5c
jne 0x41aa65
add esi, 2
push 0x2000000
push esi
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x22c0]
call fcn.004643e8
test eax, eax
jne 0x41aa95
lea ecx, [ebp - 0x22c0]
mov byte [ebp - 4], 5
call fcn.00463f77
mov esi, edi
jmp 0x41ad57
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push 0x5c4f10
cmovae eax, dword [ebp - 0x2238]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x41ab62
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push 0x5c9870
cmovae eax, dword [ebp - 0x2238]
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x22c0]
lea eax, [ebp - 0x2250]
jne 0x41ab21
cmp dword [ebp - 0x223c], ebx
cmovae eax, dword [ebp - 0x2250]
push eax
call fcn.0046427c
test eax, eax
je 0x41aa7f
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x2220]
push 0x1001
push eax
call fcn.00591ddd
add esp, 0x10
jmp 0x41ab62
cmp dword [ebp - 0x223c], ebx
cmovae eax, dword [ebp - 0x2250]
push eax
call fcn.0046427c
mov ecx, eax
test ecx, ecx
je 0x41aa7f
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
cmovae eax, dword [ebp - 0x2238]
push eax
push ecx
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x41aa7f
lea ecx, [ebp - 0x22c0]
mov byte [ebp - 4], 5
call fcn.00463f77
jmp 0x41ad4f
mov esi, 0x105
lea eax, [ebp - 0x21c]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x41abff
lea eax, [ebp - 0x21c]
push 0x5c
push eax
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
je 0x41aba7
cmp word [eax + 2], di
je 0x41abbc
push 0x5c4f0c
lea eax, [ebp - 0x21c]
push esi
push eax
call fcn.00591c0a
add esp, 0xc
cmp word [ebp - 0x21c], 0
jne 0x41abca
mov eax, edi
jmp 0x41abd7
lea eax, [ebp - 0x21c]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x2298]
call fcn.00404be0
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x2268]
push eax
lea ecx, [ebp - 0x2298]
call fcn.004049b6
cmp dword [ebp - 0x2284], ebx
lea eax, [ebp - 0x2298]
cmovae eax, dword [ebp - 0x2298]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41aa8e
cmp dword [ebp - 0x2254], ebx
lea ecx, [ebp - 0x2268]
lea edx, [ebp - 0x2250]
cmovae ecx, dword [ebp - 0x2268]
lea eax, [ebp - 0x2280]
cmp dword [ebp - 0x223c], ebx
push ecx
cmovae edx, dword [ebp - 0x2250]
lea ecx, [ebp - 0x2220]
cmp dword [ebp - 0x226c], ebx
push 0x1001
cmovae eax, dword [ebp - 0x2280]
push ecx
push 0x5c4f10
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push 0x2a
cmovae eax, dword [ebp - 0x2238]
push eax
call fcn.00591c76
pop ecx
pop ecx
test eax, eax
jne 0x41acc5
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
cmovae eax, dword [ebp - 0x2238]
push eax
lea eax, [ebp - 0x2220]
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x41aa8e
jmp 0x41ad4f
lea ecx, [ebp - 0x22b0]
call fcn.0046d5d4
cmp dword [ebp - 0x2224], ebx
lea eax, [ebp - 0x2238]
push 0x2a
cmovae eax, dword [ebp - 0x2238]
lea ecx, [ebp - 0x22b0]
push eax
mov byte [ebp - 4], 7
call fcn.0046eb6a
push edi
lea ecx, [ebp - 0x22b0]
call fcn.0046dbf8
push edi
lea ecx, [ebp - 0x22b0]
mov esi, eax
call fcn.0046dc88
inc eax
test esi, esi
jne 0x41ad18
mov eax, edi
jmp 0x41ad21
push eax
push esi
call fcn.00591dbe
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x2220]
push eax
push esi
call fcn.00592342
add esp, 0xc
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x22b0]
test eax, eax
je 0x41ad4a
call fcn.0046d690
jmp 0x41aa8e
call fcn.0046d690
xor esi, esi
inc esi
jmp 0x41ad57
or esi, 0xffffffff
xor ebx, ebx
lea ecx, [ebp - 0x2298]
push edi
inc ebx
push ebx
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x2238]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x2250]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x2280]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x2268]
call fcn.00404970
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x22d8]
call fcn.0046d690
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0058f6bb
mov esp, ebp
pop ebp
ret 4