Function at 0x525aff
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x189c
call fcn.0054c740
push edi
mov dword [ebp - 0x189c], ecx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x525b33
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0x10
test eax, eax
je 0x525b3a
xor eax, eax
jmp 0x525fb1
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
mov edx, dword [0x5caef4]
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x210], 0
mov eax, dword [0x5caef8]
mov dword [ebp - 0x314], eax
mov cl, byte [0x5caefc]
mov byte [ebp - 0x310], cl
mov ecx, 0x3e
xor eax, eax
lea edi, [ebp - 0x30f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp + 8]
push edx
push 0x200
lea eax, [ebp - 0x514]
push eax
push 0x68587c
push 0x5caf00
push 0x5caf0c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 8]
push ecx
push 0x5caf18
lea edx, [ebp - 0x514]
push edx
call fcn.0054d536
add esp, 0xc
push 0x40
push 0
lea eax, [ebp - 0x554]
push eax
call fcn.0054bf90
add esp, 0xc
push 0x5caf1c
lea ecx, [ebp - 0x554]
push ecx
call fcn.0054c6e3
add esp, 8
push 0x40
push 0
lea edx, [ebp - 0x1594]
push edx
call fcn.0054bf90
add esp, 0xc
push 0x1000
push 0
lea eax, [ebp - 0x1554]
push eax
call fcn.0054bf90
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x1898]
push ecx
call fcn.0054bf90
add esp, 0xc
lea edx, [ebp - 0x1898]
push edx
call fcn.00529440
add esp, 4
push 0x5caf28
lea eax, [ebp - 0x1898]
push eax
call fcn.0054bea0
add esp, 8
mov dword [ebp - 4], 0
jmp 0x525c66
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jge 0x525e95
push 0x200
push 0
lea eax, [ebp - 0x514]
push eax
call fcn.0054bf90
add esp, 0xc
push pe_nt_image_headers32
push 0
lea ecx, [ebp - 0x314]
push ecx
call fcn.0054bf90
add esp, 0xc
push 0x40
push 0
lea edx, [ebp - 0x1594]
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 4]
push eax
push 0x5caf3c
lea ecx, [ebp - 0x1594]
push ecx
call fcn.0054c6e3
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
push 0x200
lea eax, [ebp - 0x514]
push eax
push 0x685880
lea ecx, [ebp - 0x1594]
push ecx
lea edx, [ebp - 0x554]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x514]
push eax
call fcn.0054ce70
add esp, 4
test eax, eax
jne 0x525d0a
jmp 0x525c5d
lea ecx, [ebp - 0x214]
push ecx
lea edx, [ebp - 0x514]
push edx
call fcn.0054f304
add esp, 8
mov dword [ebp - 0x210], eax
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x210], 0
je 0x525d80
mov eax, dword [ebp - 4]
shl eax, 6
lea ecx, [ebp + eax - 0x1554]
mov edx, dword [ebp - 0xc]
lea eax, [ecx + edx*4]
push eax
push 0x5caf40
mov ecx, dword [ebp - 0x210]
push ecx
call fcn.0054d536
add esp, 0xc
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0x214]
push eax
push 0
call fcn.0054f304
add esp, 8
mov dword [ebp - 0x210], eax
jmp 0x525d2d
mov ecx, dword [ebp - 0xc]
sub ecx, 2
push ecx
lea edx, [ebp - 0x314]
push edx
mov eax, dword [ebp - 4]
shl eax, 6
lea ecx, [ebp + eax - 0x1554]
push ecx
mov ecx, dword [ebp - 0x189c]
call fcn.005258bb
test eax, eax
je 0x525e90
push 0x200
push 0
lea edx, [ebp - 0x514]
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 4]
add eax, 1
push eax
push 0x5caf44
lea ecx, [ebp - 0x514]
push ecx
call fcn.0054c6e3
add esp, 0xc
lea edx, [ebp - 0x1898]
push edx
lea eax, [ebp - 0x314]
push eax
lea ecx, [ebp - 0x514]
push ecx
push 0x5caf50
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x200
push 0
lea edx, [ebp - 0x514]
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 4]
add eax, 1
push eax
push 0x5caf58
lea ecx, [ebp - 0x514]
push ecx
call fcn.0054c6e3
add esp, 0xc
push 0x200
push 0
lea edx, [ebp - 0x20c]
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 4]
shl eax, 6
lea ecx, [ebp + eax - 0x1554]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx + edx*4 - 4]
push eax
push 0x5caf64
lea ecx, [ebp - 0x20c]
push ecx
call fcn.0054c6e3
add esp, 0xc
lea edx, [ebp - 0x1898]
push edx
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x514]
push ecx
push 0x5caf68
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x525c5d
mov edx, dword [ebp - 0x189c]
mov eax, dword [ebp - 8]
mov dword [edx + 4], eax
mov dword [ebp - 4], 0
jmp 0x525eb3
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jge 0x525fac
push 0x200
push 0
lea eax, [ebp - 0x514]
push eax
call fcn.0054bf90
add esp, 0xc
mov ecx, dword [ebp - 4]
add ecx, 1
push ecx
push 0x5caf70
lea edx, [ebp - 0x514]
push edx
call fcn.0054c6e3
add esp, 0xc
lea eax, [ebp - 0x1898]
push eax
push 0x200
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x42c
mov edx, dword [ebp - 0x189c]
lea eax, [edx + ecx + 0x231]
push eax
push 0x685884
lea ecx, [ebp - 0x514]
push ecx
push 0x5caf7c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x200
push 0
lea edx, [ebp - 0x514]
push edx
call fcn.0054bf90
add esp, 0xc
mov eax, dword [ebp - 4]
add eax, 1
push eax
push 0x5caf84
lea ecx, [ebp - 0x514]
push ecx
call fcn.0054c6e3
add esp, 0xc
lea edx, [ebp - 0x1898]
push edx
push 0x200
lea eax, [ebp - 0x1794]
push eax
push 0x685888
lea ecx, [ebp - 0x514]
push ecx
push 0x5caf90
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x1794]
push edx
call fcn.0054c571
add esp, 4
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x42c
mov edx, dword [ebp - 0x189c]
mov dword [edx + ecx + 8], eax
jmp 0x525eaa
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret 4